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
Adventurer
Adventurer
547 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
4 Replies
Adventurer
Adventurer
438 Views
Registered: ‎08-07-2014

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

@nanz, @guozhenp 

 

Any help in this issue ?

 

regards

 

0 Kudos
Moderator
Moderator
429 Views
Registered: ‎08-25-2009

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

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."
Adventurer
Adventurer
427 Views
Registered: ‎08-07-2014

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

@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
Moderator
Moderator
396 Views
Registered: ‎08-25-2009

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

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