X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fdpaa2.rst;h=e2f385d4243a8efd21611906c469f0e5e75122c6;hb=e00767ee04c179f452840a9801af466b10257194;hp=46225b657d1fe729dfbfede7f0b52ee61643699f;hpb=846a8305f277f3d335b156779ad230d3d1325e8e;p=dpdk.git diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst index 46225b657d..e2f385d424 100644 --- a/doc/guides/nics/dpaa2.rst +++ b/doc/guides/nics/dpaa2.rst @@ -1,32 +1,6 @@ -.. BSD LICENSE - Copyright (C) NXP. 2016. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of NXP nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2016 NXP + DPAA2 Poll Mode Driver ====================== @@ -49,6 +23,8 @@ Contents summary - Overview of DPAA2 objects - DPAA2 driver architecture overview +.. _dpaa2_overview: + DPAA2 Overview ~~~~~~~~~~~~~~ @@ -421,9 +397,15 @@ Features of the DPAA2 PMD are: - Multiple queues for TX and RX - Receive Side Scaling (RSS) +- MAC/VLAN filtering - Packet type information - Checksum offload - Promiscuous mode +- Multicast mode +- Port hardware statistics +- Jumbo frames +- Link flow control +- Scattered and gather for TX and RX Supported DPAA2 SoCs -------------------- @@ -441,7 +423,7 @@ compatible board: 1. **ARM 64 Tool Chain** - For example, the `*aarch64* Linaro Toolchain `_. + For example, the `*aarch64* Linaro Toolchain `_. 2. **Linux Kernel** @@ -471,17 +453,17 @@ separately: SDK and related information can be obtained from: `NXP QorIQ SDK `_. -- **DPDK Helper Scripts** +- **DPDK Extra Scripts** DPAA2 based resources can be configured easily with the help of ready scripts - as provided in the DPDK helper repository. + as provided in the DPDK Extra repository. - `DPDK Helper Scripts `_. + `DPDK Extras Scripts `_. Currently supported by DPDK: -- NXP SDK **2.0+**. -- MC Firmware version **10.0.0** and higher. +- NXP SDK **17.08+**. +- MC Firmware version **10.3.1** and higher. - Supported architectures: **arm64 LE**. - Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup the basic DPDK environment. @@ -489,7 +471,7 @@ Currently supported by DPDK: .. note:: Some part of fslmc bus code (mc flib - object library) routines are - dual licensed (BSD & GPLv2). + dual licensed (BSD & GPLv2), however they are used as BSD in DPDK in userspace. Pre-Installation Configuration ------------------------------ @@ -512,89 +494,83 @@ Please note that enabling debugging options may affect system performance. - ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER`` (default ``n``) - Toggle display of generic debugging messages + 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. -- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT`` (default ``n``) - - Toggle display of initialization related messages. - -- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX`` (default ``n``) - - Toggle display of receive fast path run-time message - -- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX`` (default ``n``) - - Toggle display of transmit fast path run-time message - -- ``CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX_FREE`` (default ``n``) +Driver compilation and testing +------------------------------ - Toggle display of transmit fast path buffer free run-time message +Refer to the document :ref:`compiling and testing a PMD for a NIC ` +for details. +#. Running testpmd: -Driver Compilation -~~~~~~~~~~~~~~~~~~ + Follow instructions available in the document + :ref:`compiling and testing a PMD for a NIC ` + to run testpmd. -To compile the DPAA2 PMD for Linux arm64 gcc target, run the -following ``make`` command: + Example output: -.. code-block:: console + .. code-block:: console - cd - make config T=arm64-dpaa2-linuxapp-gcc install + ./testpmd -c 0xff -n 1 -- -i --portmask=0x3 --nb-cores=1 --no-flush-rx + + ..... + EAL: Registered [pci] bus. + EAL: Registered [fslmc] bus. + EAL: Detected 8 lcore(s) + EAL: Probing VFIO support... + EAL: VFIO support initialized + ..... + PMD: DPAA2: Processing Container = dprc.2 + EAL: fslmc: DPRC contains = 51 devices + EAL: fslmc: Bus scan completed + ..... + Configuring Port 0 (socket 0) + Port 0: 00:00:00:00:00:01 + Configuring Port 1 (socket 0) + Port 1: 00:00:00:00:00:02 + ..... + Checking link statuses... + Port 0 Link Up - speed 10000 Mbps - full-duplex + Port 1 Link Up - speed 10000 Mbps - full-duplex + Done + testpmd> + +Enabling logs +------------- -.. _dpaa2_testpmd_example: +For enabling logging for DPAA2 PMD, following log-level prefix can be used: -Running testpmd -~~~~~~~~~~~~~~~ + .. code-block:: console -This section demonstrates how to launch ``testpmd`` with DPAA2 device -managed by ``librte_pmd_dpaa2`` in the Linux operating system. + --log-level=bus.fslmc: -- ... -#. Configure the resource container: +Using ``bus.fslmc`` as log matching criteria, all FSLMC bus logs can be enabled +which are lower than logging ``level``. - Configure resources in MC and create the DPRC container: + Or - .. code-block:: console + .. code-block:: console - export the DPRC container - e.g. export DPRCT=dprc.2 + --log-level=pmd.net.dpaa2: -- ... -#. Start ``testpmd`` with basic parameters: +Using ``pmd.net.dpaa2`` as log matching criteria, all PMD logs can be enabled +which are lower than logging ``level``. - .. code-block:: console +Whitelisting & Blacklisting +--------------------------- - ./arm64-dpaa2-linuxapp-gcc/testpmd -c 0xff -n 1 \ - -- -i --portmask=0x3 --nb-cores=1 --no-flush-rx +For blacklisting a DPAA2 device, following commands can be used. - Example output: + .. code-block:: console - .. code-block:: console + -b "fslmc:dpni.x" -- ... - ..... - EAL: Registered [pci] bus. - EAL: Registered [fslmc] bus. - EAL: Detected 8 lcore(s) - EAL: Probing VFIO support... - EAL: VFIO support initialized - ..... - PMD: DPAA2: Processing Container = dprc.2 - EAL: fslmc: DPRC contains = 51 devices - EAL: fslmc: Bus scan completed - ..... - Configuring Port 0 (socket 0) - Port 0: 00:00:00:00:00:01 - Configuring Port 1 (socket 0) - Port 1: 00:00:00:00:00:02 - ..... - Checking link statuses... - Port 0 Link Up - speed 10000 Mbps - full-duplex - Port 1 Link Up - speed 10000 Mbps - full-duplex - Done - testpmd> +Where x is the device object id as configured in resource container. Limitations ----------- @@ -611,3 +587,10 @@ The DPAA2 SoC family support a maximum of a 10240 jumbo frame. The value is fixed and cannot be changed. So, even when the ``rxmode.max_rx_pkt_len`` member of ``struct rte_eth_conf`` is set to a value lower than 10240, frames up to 10240 bytes can still reach the host interface. + +Other Limitations +~~~~~~~~~~~~~~~~~ + +- RSS hash key cannot be modified. +- RSS RETA cannot be configured. +- Secondary process packet I/O is not supported.