X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fguides%2Fnics%2Fdpaa2.rst;h=c9deb53349ab5fb4c509dcdc6497e0cce63a8a35;hb=8bdc7882f376590bd33f6ecfd3d5c0d19d4cad44;hp=8e38efff4a2746dc4168fbd28bf44826111e19a5;hpb=a10a988a0ba6fed1690ffc0218e5d3e189fcad2d;p=dpdk.git diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst index 8e38efff4a..c9deb53349 100644 --- a/doc/guides/nics/dpaa2.rst +++ b/doc/guides/nics/dpaa2.rst @@ -1,11 +1,11 @@ .. SPDX-License-Identifier: BSD-3-Clause - Copyright 2016 NXP + Copyright 2016,2020 NXP DPAA2 Poll Mode Driver ====================== -The DPAA2 NIC PMD (**librte_pmd_dpaa2**) provides poll mode driver +The DPAA2 NIC PMD (**librte_net_dpaa2**) provides poll mode driver support for the inbuilt NIC found in the **NXP DPAA2** SoC family. More information can be found at `NXP Official Website @@ -300,7 +300,7 @@ The diagram below shows the dpaa2 drivers involved in a networking scenario and the objects bound to each driver. A brief description of each driver follows. -.. code-block: console +.. code-block:: console +------------+ @@ -379,7 +379,7 @@ active -- Ethernet, crypto, compression, etc. DPBP based Mempool driver ~~~~~~~~~~~~~~~~~~~~~~~~~ -The DPBP driver is bound to a DPBP objects and provides sevices to +The DPBP driver is bound to a DPBP objects and provides services to create a hardware offloaded packet buffer mempool. DPAA2 NIC Driver @@ -409,8 +409,7 @@ Features of the DPAA2 PMD are: Supported DPAA2 SoCs -------------------- - -- LS2080A/LS2040A +- LX2160A - LS2084A/LS2044A - LS2088A/LS2048A - LS1088A/LS1048A @@ -418,52 +417,12 @@ Supported DPAA2 SoCs Prerequisites ------------- -There are three main pre-requisities for executing DPAA2 PMD on a DPAA2 -compatible board: - -1. **ARM 64 Tool Chain** - - For example, the `*aarch64* Linaro Toolchain `_. - -2. **Linux Kernel** - - It can be obtained from `NXP's Github hosting `_. - -3. **Rootfile system** - - Any *aarch64* supporting filesystem can be used. For example, - Ubuntu 15.10 (Wily) or 16.04 LTS (Xenial) userland which can be obtained - from `here `_. - -As an alternative method, DPAA2 PMD can also be executed using images provided -as part of SDK from NXP. The SDK includes all the above prerequisites necessary -to bring up a DPAA2 board. - -The following dependencies are not part of DPDK and must be installed -separately: - -- **NXP Linux SDK** - - NXP Linux software development kit (SDK) includes support for family - of QorIQ® ARM-Architecture-based system on chip (SoC) processors - and corresponding boards. - - It includes the Linux board support packages (BSPs) for NXP SoCs, - a fully operational tool chain, kernel and board specific modules. - - SDK and related information can be obtained from: `NXP QorIQ SDK `_. - -- **DPDK Extra Scripts** - - DPAA2 based resources can be configured easily with the help of ready scripts - as provided in the DPDK Extra repository. - - `DPDK Extras Scripts `_. +See :doc:`../platform/dpaa2` for setup information Currently supported by DPDK: -- NXP SDK **17.08+**. -- MC Firmware version **10.3.1** and higher. +- NXP LSDK **19.08+**. +- MC Firmware version **10.18.0** and higher. - Supported architectures: **arm64 LE**. - Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup the basic DPDK environment. @@ -473,32 +432,6 @@ Currently supported by DPDK: Some part of fslmc bus code (mc flib - object library) routines are dual licensed (BSD & GPLv2), however they are used as BSD in DPDK in userspace. -Pre-Installation Configuration ------------------------------- - -Config File Options -~~~~~~~~~~~~~~~~~~~ - -The following options can be modified in the ``config`` file. -Please note that enabling debugging options may affect system performance. - -- ``CONFIG_RTE_LIBRTE_FSLMC_BUS`` (default ``n``) - - By default it is enabled only for defconfig_arm64-dpaa2-* config. - Toggle compilation of the ``librte_bus_fslmc`` driver. - -- ``CONFIG_RTE_LIBRTE_DPAA2_PMD`` (default ``n``) - - By default it is enabled only for defconfig_arm64-dpaa2-* config. - Toggle compilation of the ``librte_pmd_dpaa2`` driver. - -- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER`` (default ``n``) - - Toggle display of debugging messages/logic - -- ``CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA`` (default ``y``) - - Toggle to use physical address vs virtual address for hardware accelerators. Driver compilation and testing ------------------------------ @@ -516,7 +449,7 @@ for details. .. code-block:: console - ./testpmd -c 0xff -n 1 -- -i --portmask=0x3 --nb-cores=1 --no-flush-rx + ./dpdk-testpmd -c 0xff -n 1 -- -i --portmask=0x3 --nb-cores=1 --no-flush-rx ..... EAL: Registered [pci] bus. @@ -540,6 +473,15 @@ for details. Done testpmd> + +* Use dev arg option ``drv_loopback=1`` to loopback packets at + driver level. Any packet received will be reflected back by the + driver on same port. e.g. ``fslmc:dpni.1,drv_loopback=1`` + +* Use dev arg option ``drv_no_prefetch=1`` to disable prefetching + of the packet pull command which is issued in the previous cycle. + e.g. ``fslmc:dpni.1,drv_no_prefetch=1`` + Enabling logs ------------- @@ -547,7 +489,7 @@ For enabling logging for DPAA2 PMD, following log-level prefix can be used: .. code-block:: console - --log-level=bus.fslmc, -- ... + --log-level=bus.fslmc: -- ... Using ``bus.fslmc`` as log matching criteria, all FSLMC bus logs can be enabled which are lower than logging ``level``. @@ -556,11 +498,35 @@ which are lower than logging ``level``. .. code-block:: console - --log-level=pmd.net.dpaa2, -- ... + --log-level=pmd.net.dpaa2: -- ... -Using ``pmd.dpaa2`` as log matching criteria, all PMD logs can be enabled +Using ``pmd.net.dpaa2`` as log matching criteria, all PMD logs can be enabled which are lower than logging ``level``. +Whitelisting & Blacklisting +--------------------------- + +For blacklisting a DPAA2 device, following commands can be used. + + .. code-block:: console + + -b "fslmc:dpni.x" -- ... + +Where x is the device object id as configured in resource container. + +Running secondary debug app without blacklist +--------------------------------------------- + +dpaa2 hardware imposes limits on some H/W access devices like Management +Control Port and H/W portal. This causes issue in their shared usages in +case of multi-process applications. It can overcome by using +whitelist/blacklist in primary and secondary applications. + +In order to ease usage of standard debugging apps like dpdk-procinfo, dpaa2 +driver reserves extra Management Control Port and H/W portal which can be +used by debug application to debug any existing application without +blacklisting these devices in primary process. + Limitations ----------- @@ -582,4 +548,3 @@ Other Limitations - RSS hash key cannot be modified. - RSS RETA cannot be configured. -- Secondary process packet I/O is not supported.