Software Design - 2020.2 English

Versal ACAP VMK180 Targeted Reference Design (UG1432)

Document ID
UG1432
Release Date
2021-01-08
Version
2020.2 English

The design uses the AXI Ethernet driver present in Linux kernel to configure MRMAC and initialize four lanes to 10G ethernet rates. The driver initializes MCDMA’s S2MM and MM2S channel descriptors and enables them to transfer data to and from system memory. The driver also does interrupt handling when a packet is received or transmitted via DMA.

Linux Ethernet Driver Features

The Linux ethernet driver has following features:
  • Supports 4x10G Ethernet subsystem
  • IEEE 1588 support for 4x10G Ethernet subsystem
  • Configuration support for 4 x 10G MRMAC
  • Support for common ethtool queries
  • NAPI support
  • Support for jumbo frames
  • Supports AXI MCDMA DMA configuration
  • Multi-queue support
The Ethernet driver flow is shown in the following figure.
Figure 1. Ethernet Driver Structure

The application in user space uses Linux socket interface to communicate with ethernet device. The user application sends/receives data via socket interface calls, the socket layers sends the data to/receives data from protocol layer. The protocol layer adds required headers to data based on protocol requested by application at transmission and removes the protocol headers during reception of packet. The MRMAC Ethernet driver forwards the packet from host memory to the device at transmission and from the device to host memory at reception, using MCDMA.