05-25-2012 11:39 AM
I have a few questions about SGI:
1. Does Xilinx-Linux use Zynq's SGI?
2. If yes to 1, is there a way to register a callback function to execute when an SGI occurs? and how to trigger a SGI interrupt?
3. If no to 1, how do I register an ISR to handle SGI interrupt(s)? and how to trigger a SGI interrupt (other than using devmem to poke SGI register)?
4. Do you have sample code?
06-04-2013 09:54 AM
12-17-2014 12:55 AM
Even I want the same, except I want to use UIO driver for handling SGI on Linux side.
BTW, i was able to generate SGI interrupts of ID0-ID4 by simply writing to GIC register ICDSGIR manually from Linux mmap'ing the GIC address space.
I saw that interrupts were indeed generated by viewing at /proc/interrupts file
03-18-2015 05:30 AM
Did you ever get a solution to this problem? It seems like a great idea for an AMP configuration for the BareMetal CPU to signal the Linux CPU through a SGI.
03-18-2015 05:44 AM
06-23-2015 12:09 PM
could you be more specific?
The video you pointed to is about the DMA and doesn't mention anything about SGI.
I also read/watched this: http://www.xilinx.com/member/zynq_videos/pdf/Zynq-Inter-A9-Communication.pdf
It seems that what we want to do is possible, but the video doesn't say anything about any implementation or example available...
Generating interrupts from Linux (CPU0) to the Baremetal application (CPU1) is not an issue, it is as easy as:
Generating an interrupt from the CPU0 to CPU1 is also quite simple:
XScuGic_SoftwareIntr(&GicInst,<SGI_N>, XSCUGIC_SPI_CPU0_MASK /*CPU DST*/); //CPU0=1, CPU1=2
Doing the same from the Linux application is rather undocumented...
Trying to register a SGI interrupt using:
is always producing an error. Even thaugh /proc/interrupts do not shows that are in use...
Do you have any input here?
01-31-2017 06:48 AM
We are using Zynq7000 in AMP mode, Linux(CPU 0) and Freertos (CPU 1).
Need to send interrupt from CPU 0 to CPU 1.
In Linux Application when I use #include <asm/irqchip/arm-gic.h>
fatal error: linux/irqchip/arm-gic.h: No such file or directory
Do you have any suggestion, Is any kernel configuration is needed??
08-26-2018 06:42 PM - edited 08-26-2018 06:44 PM
I have the same question. Have you an answer for this problem？
Linux（cpu0） send SGI to Baremetal（cpu1）.