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