On 23-12-16 09:15, Eric Wong wrote:
On Thu, Dec 22, 2016 at 10:30 PM, Mike Looijmans
<[email protected]> wrote:
The devicetree only guards that other drivers won't steal your interrupts
away. It does not cause the remoteproc driver to activate or assign them.
Your firmware has to register and activate the interrupt by itself. If Linux
complains about your interrupt, you probably routed it to the wrong CPU.
Yes, my firmware does register and activate the interrupt. I was
under the (apparently mistaken) impression that specifying the
interrupts in the remoteproc devicetree entry does the routing
somehow. If it doesn't, then I'm not sure how/where the interrupt
routing is being accomplished in my system. I'm not aware of doing
anything else that might route the interrupt. Where are the typical
place(s) where interrupt routing is done in a Linux AMP system using
Yocto and meta-xilinx?
It's mostly done in hardware. Both CPU's have one or two dedicated lines for
interrupts that can be used in logic. Perfect for systems that only need one,
or for very latency critical tasks. Or for attaching a PL interrupt controller.
The SOC interrupt controller, which you're likely using, has a bitmask per IRQ
to specify to what CPU it must be delivered. Probably you're using some
library function to register them, and if you've told it that you're running
on CPU #1, it will set the registers of the IRQ controller such that the
interrupts are routed only to CPU #1.
Aside from not knowing precisely how interrupt routing is occurring,
all the FPGA interrupts are working fine (being serviced by the RTOS
on CPU1 and Linux on CPU0 has no issues with them), but only as long
as the interrupt line idles low and triggered by the leading rising
edge of a pulse. For reasons, there was one of these interrupts that
I wanted to idle high and triggered by the trailing rising edge of a
negative pulse, but that has not been cooperating. Something really
doesn't like the interrupt line to be idling high. When I make this
interrupt like the others, things are fine.
The PS-PL IRQ controller does not support active-low signals. Simply put an
inverter into the signal line to make them active-high.
An interrupt that constantly fires will disrupt the hardware, as it will be
constantly asking for attention. This may 'starve' other interrupts in the
controller.
Kind regards,
Mike Looijmans
System Expert
TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: [email protected]
Website: www.topicproducts.com
Please consider the environment before printing this e-mail
--
_______________________________________________
meta-xilinx mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-xilinx