cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
venkatakrishs
Observer
Observer
424 Views
Registered: ‎02-21-2021

No IRQ found while initializing Xilinx Emaclite in Linux.

I am developing an Ethernet project in ARTY board with Xilinx Emaclite Driver in Linux. Currently I am facing the issue of "No IRQ found" while probing Xilinx Emaclite Driver. I also tried to get the returning resource's starting address and found it to be NULL. The Interrupt ID for ethernet is 29 which is mentioned in the device tree. Linux version 5.5.0-rc1

The kernel log is as follows :

[ 49.857971] Device Tree Probing
[ 49.937011] Device Tree Probing for EmacLite Started...
[ 50.154144] xilinx_emaclite 44000.ethernet: Device Tree Probing
[ 50.664703] xilinx_emaclite 44000.ethernet: no IRQ found

The Device Tree is mentioned below :

CPU0_intc: interrupt-controller {
   #interrupt-cells = <1>;
   interrupt-controller;
   compatible = "riscv,cpu-intc";
};

ethernet: ethernet@44000{
   device_type = "network";
   compatible = "xlnx,xps-ethernetlite-3.00.a", "xlnx,xps-ethernetlite-1.00.a";
   interrupt-parent = <&CPU0_intc>;
   interrupts = <29>;
   local-mac-address = [00 0a 35 00 00 00];
   phy-handle = <&phy1>;
   reg = <0x0 0x44000 0x0 0x4000>;
   xlnx,duplex = <0x1>;
   xlnx,include-global-buffers = <0x1>;
   xlnx,include-internal-loopback = <0x1>;
   xlnx,include-mdio = <0x1>;
   xlnx,instance = "axi_ethernetlite_inst";
   xlnx,rx-ping-pong = <0x1>;
   xlnx,s-axi-id-width = <0x1>;
   xlnx,tx-ping-pong = <0x1>;
   xlnx,use-internal = <0x0>;
   axi_ethernetlite_0_mdio: mdio {
      #address-cells = <0x1>;
      #size-cells = <0x0>;
      phy1: phy@7 {
         device_type = "ethernet-phy";
         compatible = "ti,dp83848";
         reg = <7>;
      };
   };
};

Note : The ethernet address starts at 0x44000.

I cannot understand why the IRQ is not getting recognized.

Tags (3)
0 Kudos
3 Replies
nanz
Moderator
Moderator
339 Views
Registered: ‎08-25-2009

Hi @venkatakrishs ,

Can you please check this thread and see if you could get some hints from it:

https://forums.xilinx.com/t5/Embedded-Linux/ETHERNETLITE-with-linux/td-p/698493

You could also check if your design is working in baremetal first before porting over to Linux. 

 


-------------------------------------------------------------------------------------------

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

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
venkatakrishs
Observer
Observer
276 Views
Registered: ‎02-21-2021

Hi @nanz,

Thanks for your response. I have been looking through the link.But, Is it possible to make it work with Platform Level Interrupt Controller rather than the default AXI Interrupt.

Also, will configuring the compatible in dts for plic as gic(generic interrupt controller) make the plic work as gic?

Thanks.

0 Kudos
nanz
Moderator
Moderator
251 Views
Registered: ‎08-25-2009

Hi @venkatakrishs ,

I believe this should also work. In the meantime, can I suggest you posting this question on Embedded Linux forum so the embedded experts will be able to provide you more inputs on how the interrupts work. Thank you!


-------------------------------------------------------------------------------------------

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

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos