01-03-2019 04:48 AM
01-03-2019 04:59 AM
Sorry for the format, I have no idea why it looks so strange. I will repost it again.
I am running Petalinux 201.4 on Ultrazed board.
I have a custom IP which will generate two rising edge interrupt signal every 100 us.
I connect the two port to the PL-PS SPI interrupt (GIC NO: 121, 122)
Because I have not set the trigger type in the vivado project (default will be level trigger).
So I have to modify this edge property in the system-user.dtsi manually as follow:
/include/
"system-conf.dtsi"
/ {
};
/ {
chosen { bootargs = "earlycon clk_ignore_unused earlyprintk root=/dev/mmcblk1p2 rw rootwait rootfstype=ext4 mem=1024M uio_pdrv_genirq.of_id=generic-uio";
};
};
&TriggerGen_IP_0 {
compatible = "generic-uio";
interrupts = <0 89 1 0 90 1>;
};
Then I rebuild the petalinux and boot up the system.
It seems I can only see and get Interrput 121(89+32) edge type.
But I can not see or get the 122.
Does anyone can help? Thank you!
01-03-2019 05:05 AM
The UIO does not support multiple interrupt sources
You would need to update the source here:
drivers/uio/uio_pdrv_genirq.c
if (ret >= 1) {
uioinfo->irq = ret;
uioinfo->handler = uio_pdrv_genirq_handler;
uioinfo->irqcontrol = uio_pdrv_genirq_irqcontrol;
uioinfo->open = uio_pdrv_genirq_open;
uioinfo->release = uio_pdrv_genirq_release;
}
You would need to update the handler and irqcontrol functions too.
I have never tried this.
01-03-2019 07:43 AM
01-03-2019 08:11 AM
Let me know how you get on. If I have spare time I'll try this when I get back to office
06-03-2020 07:38 AM
I'm having this same issue trying to use PL to PS interrupts where my IP generates interrupts. Has a solution been found? Thx...