1 .. SPDX-License-Identifier: BSD-3-Clause
7 The ENETC NIC PMD (**librte_pmd_enetc**) provides poll mode driver
8 support for the inbuilt NIC found in the **NXP LS1028** SoC.
10 More 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>`_.
16 This section provides an overview of the NXP ENETC
17 and how it is integrated into the DPDK.
25 - Supported ENETC SoCs
27 - Driver compilation and testing
32 ENETC is a PCI Integrated End Point(IEP). IEP implements
33 peripheral devices in an SoC such that software sees them as PCIe device.
34 ENETC is an evolution of BDR(Buffer Descriptor Ring) based networking
37 This infrastructure simplifies adding support for IEP and facilitates in following:
39 - Device discovery and location
40 - Resource requirement discovery and allocation (e.g. interrupt assignment,
41 device register address)
48 - Packet type information
56 ENETC PMD is traditional DPDK PMD which provides necessary interface between
57 RTE framework and ENETC internal drivers.
59 - Driver registers the device vendor table in PCI subsystem.
60 - RTE framework scans the PCI bus for connected devices.
61 - This scanning will invoke the probe function of ENETC driver.
62 - The probe function will set the basic device registers and also setups BD rings.
63 - On packet Rx the respective BD Ring status bit is set which is then used for
65 - Then Tx is done first followed by Rx.
75 There are three main pre-requisities for executing ENETC PMD on a ENETC
78 1. **ARM 64 Tool Chain**
80 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>`_.
84 It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_.
86 3. **Rootfile system**
88 Any *aarch64* supporting filesystem can be used. For example,
89 Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained
90 from `here <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_.
92 The following dependencies are not part of DPDK and must be installed
97 NXP Layerscape software development kit (LSDK) includes support for family
98 of QorIQ® ARM-Architecture-based system on chip (SoC) processors
99 and corresponding boards.
101 It includes the Linux board support packages (BSPs) for NXP SoCs,
102 a fully operational tool chain, kernel and board specific modules.
104 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 Driver compilation and testing
107 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
109 Follow instructions available in the document
110 :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
111 to launch **testpmd**
113 To compile in performance mode, please set ``CONFIG_RTE_CACHE_LINE_SIZE=64``