diff options
Diffstat (limited to 'doc/guides/platform')
-rw-r--r-- | doc/guides/platform/dpaa.rst | 103 | ||||
-rw-r--r-- | doc/guides/platform/dpaa2.rst | 109 | ||||
-rw-r--r-- | doc/guides/platform/index.rst | 2 | ||||
-rw-r--r-- | doc/guides/platform/octeontx.rst | 116 |
4 files changed, 325 insertions, 5 deletions
diff --git a/doc/guides/platform/dpaa.rst b/doc/guides/platform/dpaa.rst new file mode 100644 index 00000000..39048715 --- /dev/null +++ b/doc/guides/platform/dpaa.rst @@ -0,0 +1,103 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 NXP + +NXP QorIQ DPAA Board Support Package +==================================== + +This doc has information about steps to setup QorIq dpaa +based layerscape platform and information about common offload +hw block drivers of **NXP QorIQ DPAA** SoC family. + +Supported DPAA SoCs +-------------------- + +* LS1046A/LS1026A +* LS1043A/LS1023A + +More information about SoC can be found at `NXP Official Website +<https://www.nxp.com/products/processors-and-microcontrollers/arm-based- +processors-and-mcus/qoriq-layerscape-arm-processors:QORIQ-ARM>`_. + + +Common Offload HW Block Drivers +------------------------------- + +1. **Nics Driver** + + See :doc:`../nics/dpaa` for NXP dpaa nic driver information. + +2. **Cryptodev Driver** + + See :doc:`../cryptodevs/dpaa_sec` for NXP dpaa cryptodev driver information. + +3. **Eventdev Driver** + + See :doc:`../eventdevs/dpaa` for NXP dpaa eventdev driver information. + + +Steps To Setup Platform +----------------------- + +There are four main pre-requisities for executing DPAA PMD on a DPAA +compatible board: + +1. **ARM 64 Tool Chain** + + 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>`_. + +2. **Linux Kernel** + + It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained + from `here + <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_. + +4. **FMC Tool** + + Before any DPDK application can be executed, the Frame Manager Configuration + Tool (FMC) need to be executed to set the configurations of the queues. This + includes the queue state, RSS and other policies. + This tool can be obtained from `NXP (Freescale) Public Git Repository <https://source.codeaurora.org/external/qoriq/qoriq-components/fmc>`_. + + This tool needs configuration files which are available in the + :ref:`DPDK Extra Scripts <extra_scripts>`, described below for DPDK usages. + +As an alternative method, DPAA 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 DPAA 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 <http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX>`_. + + +.. _extra_scripts: + +- **DPDK Extra Scripts** + + DPAA based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + + `DPDK Extras Scripts <https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk-extras>`_. + +Currently supported by DPDK: + +- NXP SDK **2.0+** (preferred: LSDK 18.09). +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` + to setup the basic DPDK environment. diff --git a/doc/guides/platform/dpaa2.rst b/doc/guides/platform/dpaa2.rst new file mode 100644 index 00000000..5a64406e --- /dev/null +++ b/doc/guides/platform/dpaa2.rst @@ -0,0 +1,109 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 NXP + +NXP QorIQ DPAA2 Board Support Package +===================================== + +This doc has information about steps to setup NXP QoriQ DPAA2 platform +and information about common offload hw block drivers of +**NXP QorIQ DPAA2** SoC family. + +Supported DPAA2 SoCs +-------------------- + +- LX2160A +- LS2084A/LS2044A +- LS2088A/LS2048A +- LS1088A/LS1048A + +More information about SoC can be found at `NXP Official Website +<https://www.nxp.com/products/processors-and-microcontrollers/arm-based- +processors-and-mcus/qoriq-layerscape-arm-processors:QORIQ-ARM>`_. + + +Common Offload HW Block Drivers +------------------------------- + +1. **Nics Driver** + + See :doc:`../nics/dpaa2` for NXP dpaa2 nic driver information. + +2. **Cryptodev Driver** + + See :doc:`../cryptodevs/dpaa2_sec` for NXP dpaa2 cryptodev driver information. + +3. **Eventdev Driver** + + See :doc:`../eventdevs/dpaa2` for NXP dpaa2 eventdev driver information. + +4. **Rawdev AIOP CMDIF Driver** + + See :doc:`../rawdevs/dpaa2_cmdif` for NXP dpaa2 AIOP command interface driver information. + +5. **Rawdev QDMA Driver** + + See :doc:`../rawdevs/dpaa2_qdma` for NXP dpaa2 QDMA driver information. + + +Steps To Setup Platform +----------------------- + +There are four main pre-requisities for executing DPAA2 PMD on a DPAA2 +compatible board: + +1. **ARM 64 Tool Chain** + + 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>`_. + +2. **Linux Kernel** + + It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained + from `here + <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_. + +4. **Resource Scripts** + + DPAA2 based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + +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 <http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX>`_. + + +.. _extra_scripts: + +- **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 <https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk-extras>`_. + +Currently supported by DPDK: + +- NXP SDK **2.0+** (preferred: LSDK 18.09). +- MC Firmware version **10.10.0** and higher. +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` + to setup the basic DPDK environment. diff --git a/doc/guides/platform/index.rst b/doc/guides/platform/index.rst index ca6113d6..98c66389 100644 --- a/doc/guides/platform/index.rst +++ b/doc/guides/platform/index.rst @@ -10,4 +10,6 @@ The following are platform specific guides and setup information. :maxdepth: 2 :numbered: + dpaa + dpaa2 octeontx diff --git a/doc/guides/platform/octeontx.rst b/doc/guides/platform/octeontx.rst index 9f75d2a8..3bde91f9 100644 --- a/doc/guides/platform/octeontx.rst +++ b/doc/guides/platform/octeontx.rst @@ -15,11 +15,15 @@ More information about SoC can be found at `Cavium, Inc Official Website Common Offload HW Block Drivers ------------------------------- -1. **Eventdev Driver** +1. **Crypto Driver** + See :doc:`../cryptodevs/octeontx` for octeontx crypto driver + information. + +2. **Eventdev Driver** See :doc:`../eventdevs/octeontx` for octeontx ssovf eventdev driver information. -2. **Mempool Driver** +3. **Mempool Driver** See :doc:`../mempool/octeontx` for octeontx fpavf mempool driver information. @@ -35,6 +39,12 @@ OCTEON TX compatible board: Platform drivers) are available on Github at `octeontx-kmod <https://github.com/caviumnetworks/octeontx-kmod>`_ along with build, install and dpdk usage instructions. +.. note:: + + The PF driver and the required microcode for the crypto offload block will be + available with OCTEON TX SDK only. So for using crypto offload, follow the steps + mentioned in :ref:`setup_platform_using_OCTEON_TX_SDK`. + 2. **ARM64 Tool Chain** For example, the *aarch64* Linaro Toolchain, which can be obtained from @@ -48,8 +58,104 @@ OCTEON TX compatible board: As an alternative method, Platform drivers can also be executed using images provided as part of SDK from Cavium. The SDK includes all the above prerequisites necessary - to bring up a OCTEON TX board. - - SDK and related information can be obtained from: `Cavium support site <https://support.cavium.com/>`_. + to bring up a OCTEON TX board. Please refer :ref:`setup_platform_using_OCTEON_TX_SDK`. - Follow the DPDK :doc:`../linux_gsg/index` to setup the basic DPDK environment. + +.. _setup_platform_using_OCTEON_TX_SDK: + +Setup Platform Using OCTEON TX SDK +---------------------------------- + +The OCTEON TX platform drivers can be compiled either natively on +**OCTEON TX** :sup:`®` board or cross-compiled on an x86 based platform. + +The **OCTEON TX** :sup:`®` board must be running the linux kernel based on +OCTEON TX SDK 6.2.0 patch 3. In this, the PF drivers for all hardware +offload blocks are already built in. + +Native Compilation +~~~~~~~~~~~~~~~~~~ + +If the kernel and modules are cross-compiled and copied to the target board, +some intermediate binaries required for native build would be missing on the +target board. To make sure all the required binaries are available in the +native architecture, the linux sources need to be compiled once natively. + +.. code-block:: console + + cd /lib/modules/$(uname -r)/source + make menuconfig + make + +The above steps would rebuild the modules and the required intermediate binaries. +Once the target is ready for native compilation, the OCTEON TX platform +drivers can be compiled with the following steps, + +.. code-block:: console + + cd <dpdk directory> + make config T=arm64-thunderx-linuxapp-gcc + make + +The example applications can be compiled using the following: + +.. code-block:: console + + cd <dpdk directory> + export RTE_SDK=$PWD + export RTE_TARGET=build + cd examples/<application> + make + +Cross Compilation +~~~~~~~~~~~~~~~~~ + +The DPDK applications can be cross-compiled on any x86 based platform. The +OCTEON TX SDK need to be installed on the build system. The SDK package will +provide the required toolchain etc. + +Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` for further steps on +compilation. The 'host' & 'CC' to be used in the commands would change, +in addition to the paths to which libnuma related files have to be +copied. + +The following steps can be used to perform cross-compilation with OCTEON TX +SDK 6.2.0 patch 3: + +.. code-block:: console + + cd <sdk_install_dir> + source env-setup + + git clone https://github.com/numactl/numactl.git + cd numactl + git checkout v2.0.11 -b v2.0.11 + ./autogen.sh + autoconf -i + ./configure --host=aarch64-thunderx-linux CC=aarch64-thunderx-linux-gnu-gcc --prefix=<numa install dir> + make install + +The above steps will prepare build system with numa additions. Now this build system can be used +to build applications for **OCTEON TX** :sup:`®` platforms. + +.. code-block:: console + + cd <dpdk directory> + export RTE_SDK=$PWD + export RTE_KERNELDIR=$THUNDER_ROOT/linux/kernel/linux + make config T=arm64-thunderx-linuxapp-gcc + make -j CROSS=aarch64-thunderx-linux-gnu- CONFIG_RTE_KNI_KMOD=n CONFIG_RTE_EAL_IGB_UIO=n EXTRA_CFLAGS="-isystem <numa_install_dir>/include" EXTRA_LDFLAGS="-L<numa_install_dir>/lib -lnuma" + +If NUMA support is not required, it can be disabled as explained in +:doc:`../linux_gsg/cross_build_dpdk_for_arm64`. + +Following steps could be used in that case. + +.. code-block:: console + + make config T=arm64-thunderx-linuxapp-gcc + make CROSS=aarch64-thunderx-linux-gnu- + + +SDK and related information can be obtained from: `Cavium support site <https://support.cavium.com/>`_. |