12-21-2016 11:41 AM
When I read the code in xaxicdma_example_simple_intr.c, I saw two interrupt controllers, generic interrupt controller and xilinx interrupt controller, whose drivers defined in xscugic.h and xintc.h.
What is the difference? When should I use one over the other?
This is a piece of code from xaxicdma_example_simple_intr.c
#ifdef XPAR_INTC_0_DEVICE_ID #define DMA_CTRL_DEVICE_ID XPAR_AXICDMA_0_DEVICE_ID #define INTC_DEVICE_ID XPAR_INTC_0_DEVICE_ID #define DMA_CTRL_IRPT_INTR XPAR_INTC_0_AXICDMA_0_VEC_ID #else #define DMA_CTRL_DEVICE_ID XPAR_AXICDMA_0_DEVICE_ID #define INTC_DEVICE_ID XPAR_SCUGIC_SINGLE_DEVICE_ID #define DMA_CTRL_IRPT_INTR XPAR_FABRIC_AXICDMA_0_VEC_ID #endif
what does XPAR_INTC_0_DEVICE_ID mean? When will it be defined?
06-27-2017 03:47 PM
I had this exact question!
Looking at the modification history of xuartps_intr_example.c I think it might have something to do with the Zynq Ultrascale+ MP:
* 3.1 kvn 04/10/15 Added code to support Zynq Ultrascale+ MP. * 3.1 mus 01/14/16 Added support for intc interrupt controller
06-27-2017 10:35 PM
@bang0306 Xilinx interrupt controller is the PL based interrupt controller IP Xilinx made. Generic interrupt controller is the one built into the ARM SoC side.