Xilinx / open-nic-driver

AMD OpenNIC driver includes the Linux kernel driver
GNU General Public License v2.0
58 stars 40 forks source link

Support for aarch64 #44

Closed RocketDelivery closed 1 year ago

RocketDelivery commented 1 year ago

Hi. Unlike other boards supported by OpenNIC, SN1000 and U45N have built-in ARM core. Can the OpenNIC driver be compiled for aarch64 and be used in the built-in ARM core on SN1000 and U45N?

cneely-amd commented 1 year ago

Let me just say that the Linux kernel module in this case is implementing a netdriver on the host, where the packets are being received.

It sounds like you are maybe wanting the ARM cores to function as the receiving endpoint for the packets?

@zhiyisun, can you maybe comment on what functions are intended for the the ARM cores?

Thanks, --Chris

zhiyisun commented 1 year ago

Yes, I tested onic kernel driver on ARM core of U45N. I can transmit and receive traffic on ARM cores. There are two items you may check.

  1. script to change the data path in the user plugin. Refer to: "Data path: MAC <-> QDMA subsystem 1" on https://github.com/Xilinx/open-nic-shell/blob/main/README.md.

  2. QDMA_SUBSYSTEM_OFFSET in https://github.com/Xilinx/open-nic-driver/blob/main/onic_register.h needs to be changed according to the system address map "QDMA subsystem 1" defined in https://github.com/Xilinx/open-nic-shell/blob/main/src/system_config/system_config_address_map.sv.

from:

#define QDMA_SUBSYSTEM_OFFSET               0x1000

to:

#define QDMA_SUBSYSTEM_OFFSET               0x12000

Hope it helps.

RocketDelivery commented 1 year ago

Sounds good. Thank you!