1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2018 NXP 3 4ENETC Poll Mode Driver 5====================== 6 7The ENETC NIC PMD (**librte_net_enetc**) provides poll mode driver 8support for the inbuilt NIC found in the **NXP LS1028** SoC. 9 10More information can be found at `NXP Official Website 11<https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/qoriq-layerscape-arm-processors/qoriq-layerscape-1028a-industrial-applications-processor:LS1028A>`_. 12 13ENETC 14----- 15 16This section provides an overview of the NXP ENETC 17and how it is integrated into the DPDK. 18 19Contents summary 20 21- ENETC overview 22- ENETC features 23- PCI bus driver 24- NIC driver 25- Supported ENETC SoCs 26- Prerequisites 27- Driver compilation and testing 28 29ENETC Overview 30~~~~~~~~~~~~~~ 31 32ENETC is a PCI Integrated End Point(IEP). IEP implements 33peripheral devices in an SoC such that software sees them as PCIe device. 34ENETC is an evolution of BDR(Buffer Descriptor Ring) based networking 35IPs. 36 37This infrastructure simplifies adding support for IEP and facilitates in following: 38 39- Device discovery and location 40- Resource requirement discovery and allocation (e.g. interrupt assignment, 41 device register address) 42- Event reporting 43 44ENETC Features 45~~~~~~~~~~~~~~ 46 47- Link Status 48- Packet type information 49- Basic stats 50- Promiscuous 51- Multicast 52- Jumbo packets 53- Queue Start/Stop 54- Deferred Queue Start 55- CRC offload 56 57NIC Driver (PMD) 58~~~~~~~~~~~~~~~~ 59 60ENETC PMD is traditional DPDK PMD which provides necessary interface between 61RTE framework and ENETC internal drivers. 62 63- Driver registers the device vendor table in PCI subsystem. 64- RTE framework scans the PCI bus for connected devices. 65- This scanning will invoke the probe function of ENETC driver. 66- The probe function will set the basic device registers and also setups BD rings. 67- On packet Rx the respective BD Ring status bit is set which is then used for 68 packet processing. 69- Then Tx is done first followed by Rx. 70 71Supported ENETC SoCs 72~~~~~~~~~~~~~~~~~~~~ 73 74- LS1028 75 76Prerequisites 77~~~~~~~~~~~~~ 78 79There are three main pre-requisites for executing ENETC PMD on a ENETC 80compatible board: 81 821. **ARM 64 Tool Chain** 83 84 For example, the `*aarch64* Linaro Toolchain <https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz>`_. 85 862. **Linux Kernel** 87 88 It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_. 89 903. **Rootfile system** 91 92 Any *aarch64* supporting filesystem can be used. For example, 93 Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained 94 from `here <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_. 95 96The following dependencies are not part of DPDK and must be installed 97separately: 98 99- **NXP Linux LSDK** 100 101 NXP Layerscape software development kit (LSDK) includes support for family 102 of QorIQ® ARM-Architecture-based system on chip (SoC) processors 103 and corresponding boards. 104 105 It includes the Linux board support packages (BSPs) for NXP SoCs, 106 a fully operational tool chain, kernel and board specific modules. 107 108 LSDK and related information can be obtained from: `LSDK <https://www.nxp.com/support/developer-resources/run-time-software/linux-software-and-development-tools/layerscape-software-development-kit:LAYERSCAPE-SDK>`_ 109 110Driver compilation and testing 111~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 113Follow instructions available in the document 114:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` 115to launch **testpmd** 116