cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant
Participant
696 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
Highlighted
Participant
Participant
654 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
Highlighted
Visitor
Visitor
589 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
Highlighted
Participant
Participant
568 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
Highlighted
Visitor
Visitor
560 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