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: 
Highlighted
Visitor ngnear
Visitor
335 Views
Registered: ‎10-31-2018

Xen does not support more than one PL to PS interrupt for axi device?

Board I am using: zcu104

Operating system: Petalinux Linux

Hypervisor: Xen

I was trying to add axi_dma_0 and axi_timer_0 to my processor block, and I followed Using the AXI DMA in Vivado to set up the AXI DMA and UG1209 for AXI TIMER. It worked flawlessly when I tested it in bare-metal.

Now, I just need to do a Xen-passthrough so the program will work in a domU bare-metal guest (with a dom0 Linux host). But I ran into a strange issue, when I merge 3 signals into xlconcat block, only one is available in Xen, the rest will encounter a "Device or Resource Busy" error, claiming they are used dom0.

In the figure below, I connected 3 interrupt signals to xlconcat block, and the xlconcat port is connected to pl_ps_irq1. The first signal is for axi_timer_0, the rest two are for axi_dma_0, one for mm2s_introut, the other one fr s2mm_introut. (don't mind the "1:0" for the pl_ps_irq1, it was "2:0" when I generated the hardware, this picture is for illustration purpose only)

Capture2.JPG

When I read into PG201, it seems that I would occupy 137, 138, and 139 interrupt ID. As shown below.

Capture.JPG

However, for some reason, only irq 138 could be pass-through, when I try to connect to the other two it says "Device or Resource Busy". If I try to connect to ports other than 137, 138, and 139, it then says "Operation not permitted".

Is this a technical limitation for Xen, or I should route all 3 signals to 138, and Linux will route the 3 signals to proper axi devices? 

It could very well be some mistakes I made on my end, any advice is appreciated.

Thanks!

0 Kudos
1 Reply
Visitor jeffkubascik
Visitor
228 Views
Registered: ‎05-30-2018

Re: Xen does not support more than one PL to PS interrupt for axi device?

The Xen kernel looks at the device tree to determine what IRQs are enabled for pass-through.  There must be a device tree node marked with status = "disabled" and xen,passthrough = <1> for Xen to allow the IRQ pass-through to a guest domain.

The following node is simple enough for Xen to allow the IRQ pass-through.

mydev@a0000000 {
	status = "disabled";
	interrupt-parent = <&gic>;
	interrupts = <0 137 4>;
	xen,passthrough = <1>;
};

Sincerely,

Jeff

 

Jeff Kubascik
Embedded Systems Engineer - DornerWorks

Run FreeRTOS on Xen https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Partner-FreeRTOS-as-a-Xen-Virtual-Machine/ba-p...
0 Kudos