UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer ryandunn19
Observer
266 Views
Registered: ‎06-05-2018

Zynq-7000 Configure PPI IRQ with Kernel Module

I am trying to setup a private interrupt (PPI) from the PL to the PS. I added the nIRQ for CPU1 to the PS7 block diagram (Core1_nIRQ) and connected it to an AXI Interrupt Controller (axi_intc) IP. Through the AXI interrupt controller, an IRQ is being requested at 5 second intervals for testing purposes.

Following this AR: https://www.xilinx.com/support/answers/62363.html, I adapted the code for my design. The main difference is that I'm not using the AXI timer IP, nor am I using a shared interrupt. I attached this code as a reference (xilaxiirq.c). When I tried to insmod this driver, I get the following error:

insmod: ERROR: could not insert module xilaxiirq.ko: Input/output error

Running dmesg provides some a little more insight:

xilaxiirq_int: Cannot register IRQ 31

I tried installing the driver with and without a device tree entry, with the exact same result. Here is the device tree entry:

ps7_axi_intc_0: xilaxiirq@44a40000 {
    interrupt-parent = <&ps7_scugic_0>;
    interrupts = <1 15 0x204>;
};

The "interrupts" line I got from here: https://www.mjmwired.net/kernel/Documentation/devicetree/bindings/arm/gic.txt

I'm not sure if the issue is with the device tree or the driver. I have seen some examples of device tree entries with a "compatible" and "reg" line, but the AR did not specify these so I don't think they're necessary. 

Any insights or suggestions would be appreciated.

Tags (4)
0 Kudos
4 Replies
Observer ryandunn19
Observer
224 Views
Registered: ‎06-05-2018

Re: Zynq-7000 Configure PPI IRQ with Kernel Module

Update:

I switched to the shared interrupt (SPI ID# 61) and it appears to be working. However, this does not answer my question as to why the PPI is not being registered. I would like to be able to direct the interrupt to a specific CPU if necessary.

New device tree "interrupts" line: 

interrupts = <0 29 4>;

Only change in xilaxiirq.c:

#define IRQ_NUM 61
0 Kudos
Visitor sachinbarkul
Visitor
159 Views
Registered: ‎05-10-2018

Re: Zynq-7000 Configure PPI IRQ with Kernel Module

Hi,

i am also faced same issue if you got any solution regarding this pls. reply me.

 

0 Kudos
Observer ryandunn19
Observer
138 Views
Registered: ‎06-05-2018

Re: Zynq-7000 Configure PPI IRQ with Kernel Module

I have not been able to find a solution to this problem, so I have been using shared interrupts. It seems like that is sufficient for my specific application. Some of the documentation has implied that the private interrupts are a "legacy" interrupt and the shared interrupts are recommended to use. If this is the case, the PPI's should still function correctly but the usage is not clear.

0 Kudos
Visitor sachinbarkul
Visitor
130 Views
Registered: ‎05-10-2018

Re: Zynq-7000 Configure PPI IRQ with Kernel Module

Thanks for reply,
I already use all 16 f2ps spi interrupts in my application & one more interrupt needed in linux so try to use PPI interrupt.
Thanks again
0 Kudos