diff options
Diffstat (limited to 'doc/guides/nics/mrvl.rst')
-rw-r--r-- | doc/guides/nics/mrvl.rst | 78 |
1 files changed, 50 insertions, 28 deletions
diff --git a/doc/guides/nics/mrvl.rst b/doc/guides/nics/mrvl.rst index fbfdf478..b7f32921 100644 --- a/doc/guides/nics/mrvl.rst +++ b/doc/guides/nics/mrvl.rst @@ -29,6 +29,8 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.. _mrvl_poll_mode_driver: + MRVL Poll Mode Driver ====================== @@ -87,31 +89,40 @@ Limitations Prerequisites ------------- -- Custom Linux Kernel sources available - `here <https://github.com/MarvellEmbeddedProcessors/linux-marvell/tree/linux-4.4.52-armada-17.08>`__. +- Custom Linux Kernel sources + + .. code-block:: console + + git clone https://github.com/MarvellEmbeddedProcessors/linux-marvell.git -b linux-4.4.52-armada-17.10 + +- Out of tree `mvpp2x_sysfs` kernel module sources -- Out of tree `mvpp2x_sysfs` kernel module sources available - `here <https://github.com/MarvellEmbeddedProcessors/mvpp2x-marvell/tree/mvpp2x-armada-17.08>`__. + .. code-block:: console -- MUSDK (Marvell User-Space SDK) sources available - `here <https://github.com/MarvellEmbeddedProcessors/musdk-marvell/tree/musdk-armada-17.08>`__. + git clone https://github.com/MarvellEmbeddedProcessors/mvpp2x-marvell.git -b mvpp2x-armada-17.10 - MUSDK is a light-weight library that provides direct access to Marvell's - PPv2 (Packet Processor v2). Alternatively prebuilt MUSDK library can be - requested from `Marvell Extranet <https://extranet.marvell.com>`_. Once - approval has been granted, library can be found by typing ``musdk`` in - the search box. +- MUSDK (Marvell User-Space SDK) sources - MUSDK must be configured with the following features: + .. code-block:: console - .. code-block:: console + git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-armada-17.10 - --enable-bpool-dma=64 + MUSDK is a light-weight library that provides direct access to Marvell's + PPv2 (Packet Processor v2). Alternatively prebuilt MUSDK library can be + requested from `Marvell Extranet <https://extranet.marvell.com>`_. Once + approval has been granted, library can be found by typing ``musdk`` in + the search box. + + MUSDK must be configured with the following features: + + .. code-block:: console + + --enable-bpool-dma=64 - DPDK environment - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup - DPDK environment. + Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup + DPDK environment. Config File Options @@ -123,11 +134,6 @@ The following options can be modified in the ``config`` file. Toggle compilation of the librte_pmd_mrvl driver. -- ``CONFIG_RTE_MRVL_MUSDK_DMA_MEMSIZE`` (default ``41943040``) - - Size in bytes of the contiguous memory region that MUSDK will allocate - for run-time DMA-able data buffers. - QoS Configuration ----------------- @@ -142,7 +148,7 @@ Configuration syntax [port <portnum> default] default_tc = <default_tc> - qos_mode = <qos_priority> + mapping_priority = <mapping_priority> [port <portnum> tc <traffic_class>] rxq = <rx_queue_list> @@ -160,7 +166,7 @@ Where: - ``<default_tc>``: Default traffic class (e.g. 0) -- ``<qos_priority>``: QoS priority for mapping (`ip`, `vlan`, `ip/vlan` or `vlan/ip`). +- ``<mapping_priority>``: QoS priority for mapping (`ip`, `vlan`, `ip/vlan` or `vlan/ip`). - ``<traffic_class>``: Traffic Class to be configured. @@ -209,18 +215,34 @@ Usage example .. code-block:: console ./testpmd --vdev=eth_mrvl,iface=eth0,iface=eth2,cfg=/home/user/mrvl.conf \ - -c 7 -- -i -a --disable-hw-vlan-strip --rxq=2 + -c 7 -- -i -a --rxq=2 Building DPDK ------------- -Driver needs precompiled MUSDK library during compilation. Please consult -``doc/musdk_get_started.txt`` for the detailed build instructions. +Driver needs precompiled MUSDK library during compilation. + +.. code-block:: console + + export CROSS_COMPILE=<toolchain>/bin/aarch64-linux-gnu- + ./bootstrap + ./configure --host=aarch64-linux-gnu --enable-bpool-dma=64 + make install + +MUSDK will be installed to `usr/local` under current directory. +For the detailed build instructions please consult ``doc/musdk_get_started.txt``. Before the DPDK build process the environmental variable ``LIBMUSDK_PATH`` with the path to the MUSDK installation directory needs to be exported. +.. code-block:: console + + export LIBMUSDK_PATH=<musdk>/usr/local + export CROSS=aarch64-linux-gnu- + make config T=arm64-armv8a-linuxapp-gcc + sed -ri 's,(MRVL_PMD=)n,\1y,' build/.config + make Usage Example ------------- @@ -242,7 +264,7 @@ Additionally interfaces used by DPDK application need to be put up: .. code-block:: console ip link set eth0 up - ip link set eth1 up + ip link set eth2 up In order to run testpmd example application following command can be used: @@ -250,4 +272,4 @@ In order to run testpmd example application following command can be used: ./testpmd --vdev=eth_mrvl,iface=eth0,iface=eth2 -c 7 -- \ --burst=128 --txd=2048 --rxd=1024 --rxq=2 --txq=2 --nb-cores=2 \ - -i -a --disable-hw-vlan-strip --rss-udp + -i -a --rss-udp |