On Thu, Dec 10, 2015 at 10:20:49AM +0000, Qais Yousef wrote:
Any interrupt is sent by the device, received by an interrupt
The IPIs have two properties that are different from a regular interrupts:
1. An IPI is not only received, it could also be sent.
controller, so this isn't really anything fundamentally different.
2. The IPI is dynamic. There's an actual allocation from a pool ofIt's not really clear to me what that means, and why it requires any
available
IPIs happening when we ask for one to be reserved.
particular different information in the device tree.
The difference might be borderline..Ah, ok, so is what you're trying to describe here (from the host OS
Do you have any rough idea on what a possible extension could look like?
Reusing means writing less code, which is always better of course :)
By the way, on MIPS GIC, we can use interrupts property to describe an IPI
the host system will receive. But to send one to the coprocessor, we need to
define an outgoing IPI.
and CPU point of view) a purely outgoing signal to the coproc?
In this case, the firmware will be hardcoded to send an interrupt to aOr is the signal that goes to the coproc then somehow being translated
specific hwirq, so one can then describe it in DT as a regular interrupt to
the host system. Hardcoding is not ideal and less portable though.
into a host interrupt? If that's so you should be able to represent
the coproc as an interrupt controller or interrupt nexus.
So, I'm not entirely sure what point Rob was making. The aboveTo clarify, what you're saying we can't pass strings, right?};This isn't actually parseable. You need a known length of cells after a phandle.
coproc2 {
ipi-refs = <&coproc1 "in">, <&coproc1 "coproc2data">, <&coproc1
"corpoc2ctrl">;
certainly isn't valid dts syntax - strings can't appear within
the < > construct. But if you make the obvious fix to:
ipi-refs = <&coproc1>, "in", <&coproc1>, "coproc2data";
then it's certainly a parseable property format. It's kind of clunky
mixing integers and strings that way, but it's possible and there are
existing bindings using properties in a similar format.