cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
1,063 Views
Registered: ‎08-07-2014

ZCU102: How to use 10G/25G Ethernet Subsystem without AXI DMA in Linux ? (ethernet Link up on baremetal, but link down on Linux)

Hi!

Initial info: I'm using Vivado and Petalinux 2017.2;

I'm working on a design that uses de 10G/25G Ethernet Subsystem without interfacing Xilinx AXI DMA. In fact we've developed our own DMA engine, which resides inside the hierarchical cell pictured below.  The idea is to do all packet processing in PL.

BD.png

The design works in baremetal. ZCU102's 10G Interface 0 (axis_rx_0) is connected to a 10G NIC in my workstation. In baremetal, once the design is loaded to PL, without any Ethernet Subsystem configuration by software, the link goes UP and I can send packets from my workstation and they get processed. So, my assumption is that the default Ethernet Subsystem's configuration after reset is just right for me.
However, when I boot PetaLinux kernel, generated using design's HDF, the etherner link goes UP after ZCU102 board powerup, during FSBL and U-BOOT execution, but goes DOWN somewhere in the middle of kernel boot.

My assumption was "axi_ethernet" Kernel driver was configuring/disabling it. It makes sense because we usually activates network interfaces in Linux after its configuration with "ip" command (like "ip set dev XXXX up").
So, I tried some scenarios, not sure if they are the best approach though:
1) Removed "axi_ethernet" kernel driver from kernel, so in theory the Ethernet Subsystem wouldn't be configured by driver. No success: Link down

2) Modified device tree  (see below) making Ethernet Subsystem's node empty, so kernel driver wouldn't "configure" the subsystem. No success: Link down

              xxv_ethernet_0: ethernet@80010000 {
                };

3) Removed Ethernet Subsystem's node altogether from device tree, so kernel wouldn't "see" the subsystem.  No success: Link down.

Is there a way to not make Linux interact/configure Ethernet Subsystem ? I also wonder if Linux is actually modifyting 10G's MDIO/PHY, and disabing ethernet link. However, the only device tree entry for it is associated to "ethernet" node, and was also removed in the tests (2) and (3).

Any help/insights?

Thanks!

Brasilino

Tags (4)
0 Kudos
Reply
4 Replies
Highlighted
Adventurer
Adventurer
954 Views
Registered: ‎08-07-2014

@nanz, @guozhenp 

 

Any help in this issue ?

 

regards

 

0 Kudos
Reply
Highlighted
Moderator
Moderator
945 Views
Registered: ‎08-25-2009

Hi @brasilino ,

I am afraid you will have to use AXI DMA with the core as in Linux driver, we are looking for AXI DMA which is supposed to be connected to our 10G/25G core.

Currently in our driver, DMA is integrated inside of the AXI Ethernet driver. We have a plan to seperate DMA driver out of the ethernet driver in a future release.

 

"Don't forget to reply, kudo and accept as solution."
Highlighted
Adventurer
Adventurer
943 Views
Registered: ‎08-07-2014

@nanz 

 

Thanks for you reply. So, which would be my best option if I want to do all network processing in hardware/FPGA? I don't want any OS/PS involvement

at all.

 

regards

Brasilino

0 Kudos
Reply
Highlighted
Moderator
Moderator
912 Views
Registered: ‎08-25-2009

Hi @brasilino ,

What do you mean that you do not want to have any OS/PS involvement at all?

Can you please describe a bit more on what you would like to do /achive?

"Don't forget to reply, kudo and accept as solution."
0 Kudos
Reply