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: 
Visitor phani.kara
Visitor
1,753 Views
Registered: ‎11-10-2016

Zynq Ultrascale+ MPSoC Interrupt Priorities

Hi,

 

I am rather confused with interrupt priority assignments in ZynqMP. I am following these 2 documents -

 

From page 271 of the Doc2 (TRM), All of the SGI and SPI interrupt requests are assigned a unique ID number. The controller
uses the ID number to arbitrate. The interrupt distributor holds the list of pending
interrupts for each CPU and then selects the highest priority interrupt before issuing it to
the CPU interface. Interrupts of equal priority are resolved by selecting the lowest ID.

 

Query 1 : In Doc 1, the interrupt ID numbers are mostly 1 and in the Doc2 (TRM), there is no mention of ID numbers but only the IRQ Numbers. So which ID is being referred to here? 

 

Query 2 : From the table System interrupts from Doc2(TRM) and assuming the ID numbers are actually the IRQ numbers, does it make a lot of sense for UART, SPI etc to have a higher priority by default than, for example, TTC timer?

 

Query 3 : How to explicitly assign the FPGA interrupts the highest priority in, for example, Linux?

 

Thanks in advance,

Phani Kiran Kara

0 Kudos
2 Replies
Visitor phani.kara
Visitor
1,733 Views
Registered: ‎11-10-2016

Re: Zynq Ultrascale+ MPSoC Interrupt Priorities

If anyone could point out a hint, I can write the Linux driver/device tree myself. Thanks in advance.

0 Kudos
Highlighted
Moderator
Moderator
1,693 Views
Registered: ‎10-06-2016

Re: Zynq Ultrascale+ MPSoC Interrupt Priorities

Hi @phani.kara

 

Query 1:

The Interrupt ID and the IRQ number refers to the same, take a look to the IRQ-F2P (PL to PS interrupts) numbers (121-128 & 136-143). I think that your confusion comes with the PS to PL interrupts, referred to the common peripherals but driven to the PL rather than to the processor by itself.

 

Query 2:

I think that you miss the point of "Interrupts of equal priority are resolved by selecting the lowest ID".

 

Query 3:

I'm not sure how to configure the priority in Linux as I cannot find a way to set it in the DTS. For standalone mode the SCUGIC driver does provide a function to configure XScuGic_SetPriorityTriggerType so you can take a look to it :)

 

Regards,
Ibai


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos