cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mbeziouch
Observer
Observer
518 Views
Registered: ‎12-09-2017

Using Xilinx Interrupt controller INTC

Hello,
I have an architecture targetting Zynq-7000 with more than 16 interrupts, so I need to regroup some of them by using the xilinx AXI interrupt controller (INTC).
I tried building a demonstration architecture using the Xilinx AXI UART 16550 IP connected to INTC, and the INTC irq output connected to PS interrupt input.
I used the exemple SW provided by xilinx: xuartns550_intr_example.c (https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/uartns550/examples/xuartns550_intr_example.c) but it seems that the interrupt at the output of INTC is not detected by PS.
Below is a snapshot of the Device tree of my system:

		axi_intc_uart: interrupt-controller@41800000 {
			#interrupt-cells = <2>;
			compatible = "xlnx,xps-intc-1.00.a";
			interrupt-controller ;
			interrupt-parent = <&intc>;
			interrupts = <0 29 4>;
			reg = <0x41800000 0x10000>;
			xlnx,kind-of-intr = <0x0>;
			xlnx,num-intr-inputs = <0x1>;
		};
		axi_uart16550_0: serial@43c00000 {
			clock-frequency = <100000000>;
			clock-names = "ref_clk";
			clocks = <&clkc 0>;
			compatible = "xlnx,xps-uart16550-2.00.a", "ns16550a";
			current-speed = <115200>;
			device_type = "serial";
			interrupt-parent = <&axi_intc_uart>;
			interrupts = <0 2>;
			port-number = <0>;
			reg = <0x43c00000 0x10000>;
			reg-offset = <0x1000>;
			reg-shift = <2>;
			xlnx,external-xin-clk-hz = <0x17d7840>;
			xlnx,external-xin-clk-hz-d = <0x19>;
			xlnx,has-external-rclk = <0x0>;
			xlnx,has-external-xin = <0x0>;
			xlnx,is-a-16550 = <0x1>;
			xlnx,s-axi-aclk-freq-hz-d = "100.0";
			xlnx,use-modem-ports = <0x1>;
			xlnx,use-user-ports = <0x1>;
		};

I would appreciate any help for my case.

Thanks you

0 Kudos
0 Replies