xref: /dpdk/doc/guides/nics/mvneta.rst (revision b583b9a1bb49e86aa0937d55415713282000c536)
14ccc8d77SZyta Szpak..  SPDX-License-Identifier: BSD-3-Clause
24ccc8d77SZyta Szpak    Copyright(c) 2018 Marvell International Ltd.
34ccc8d77SZyta Szpak    Copyright(c) 2018 Semihalf.
44ccc8d77SZyta Szpak    All rights reserved.
54ccc8d77SZyta Szpak
64ccc8d77SZyta SzpakMVNETA Poll Mode Driver
74ccc8d77SZyta Szpak=======================
84ccc8d77SZyta Szpak
98809f78cSBruce RichardsonThe MVNETA PMD (**librte_net_mvneta**) provides poll mode driver support
104ccc8d77SZyta Szpakfor the Marvell NETA 1/2.5 Gbps adapter.
114ccc8d77SZyta Szpak
124ccc8d77SZyta SzpakDetailed information about SoCs that use PPv2 can be obtained here:
134ccc8d77SZyta Szpak
144ccc8d77SZyta Szpak* https://www.marvell.com/embedded-processors/armada-3700/
154ccc8d77SZyta Szpak
164ccc8d77SZyta Szpak
174ccc8d77SZyta SzpakFeatures
184ccc8d77SZyta Szpak--------
194ccc8d77SZyta Szpak
204ccc8d77SZyta SzpakFeatures of the MVNETA PMD are:
214ccc8d77SZyta Szpak
224ccc8d77SZyta Szpak- Start/stop
234ccc8d77SZyta Szpak- tx/rx_queue_setup
24ce7ea764SZyta Szpak- tx/rx_burst
254ccc8d77SZyta Szpak- Speed capabilities
264ccc8d77SZyta Szpak- Jumbo frame
27112ef725SZyta Szpak- MTU update
28cf9ccda9SZyta Szpak- Promiscuous mode
29f3118fb0SZyta Szpak- Unicast MAC filter
3088d3cb3cSZyta Szpak- Link status
314ccc8d77SZyta Szpak- CRC offload
32ce7ea764SZyta Szpak- L3 checksum offload
33ce7ea764SZyta Szpak- L4 checksum offload
34ce7ea764SZyta Szpak- Packet type parsing
35e9d5faffSZyta Szpak- Basic stats
364ccc8d77SZyta Szpak
374ccc8d77SZyta Szpak
384ccc8d77SZyta SzpakLimitations
394ccc8d77SZyta Szpak-----------
404ccc8d77SZyta Szpak
414ccc8d77SZyta Szpak- Flushing vlans added for filtering is not possible due to MUSDK missing
424ccc8d77SZyta Szpak  functionality. Current workaround is to reset board so that NETA has a
434ccc8d77SZyta Szpak  chance to start in a sane state.
444ccc8d77SZyta Szpak
454ccc8d77SZyta SzpakPrerequisites
464ccc8d77SZyta Szpak-------------
474ccc8d77SZyta Szpak
484ccc8d77SZyta Szpak- Custom Linux Kernel sources
494ccc8d77SZyta Szpak
504ccc8d77SZyta Szpak  .. code-block:: console
514ccc8d77SZyta Szpak
524ccc8d77SZyta Szpak     git clone https://github.com/MarvellEmbeddedProcessors/linux-marvell.git -b linux-4.4.120-armada-18.09
534ccc8d77SZyta Szpak
544ccc8d77SZyta Szpak
554ccc8d77SZyta Szpak- MUSDK (Marvell User-Space SDK) sources
564ccc8d77SZyta Szpak
574ccc8d77SZyta Szpak  .. code-block:: console
584ccc8d77SZyta Szpak
597432c8cfSLiron Himi     git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-release-SDK-10.3.5.0-PR2
604ccc8d77SZyta Szpak
614ccc8d77SZyta Szpak  MUSDK is a light-weight library that provides direct access to Marvell's
624ccc8d77SZyta Szpak  NETA. Alternatively prebuilt MUSDK library can be
634ccc8d77SZyta Szpak  requested from `Marvell Extranet <https://extranet.marvell.com>`_. Once
644ccc8d77SZyta Szpak  approval has been granted, library can be found by typing ``musdk`` in
654ccc8d77SZyta Szpak  the search box.
664ccc8d77SZyta Szpak
674ccc8d77SZyta Szpak  MUSDK must be configured with the following features:
684ccc8d77SZyta Szpak
694ccc8d77SZyta Szpak  .. code-block:: console
704ccc8d77SZyta Szpak
714ccc8d77SZyta Szpak     --enable-pp2=no --enable-neta
724ccc8d77SZyta Szpak
734ccc8d77SZyta Szpak- DPDK environment
744ccc8d77SZyta Szpak
754ccc8d77SZyta Szpak  Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup
764ccc8d77SZyta Szpak  DPDK environment.
774ccc8d77SZyta Szpak
784ccc8d77SZyta Szpak
79*b583b9a1SFerruh YigitRuntime Configuration
80*b583b9a1SFerruh Yigit---------------------
814ccc8d77SZyta Szpak
824ccc8d77SZyta SzpakThe following ``devargs`` options can be enabled at runtime. They must
834ccc8d77SZyta Szpakbe passed as part of EAL arguments.
844ccc8d77SZyta Szpak
854ccc8d77SZyta Szpak- ``iface`` (mandatory, with no default value)
864ccc8d77SZyta Szpak
874ccc8d77SZyta Szpak  The name of port (owned by MUSDK) that should be enabled in DPDK.
884ccc8d77SZyta Szpak  This options can be repeated resulting in a list of ports to be
894ccc8d77SZyta Szpak  enabled.  For instance below will enable ``eth0`` and ``eth1`` ports.
904ccc8d77SZyta Szpak
914ccc8d77SZyta Szpak.. code-block:: console
924ccc8d77SZyta Szpak
9368d99d00SCiara Power   ./dpdk-testpmd --vdev=net_mvneta,iface=eth0,iface=eth1 \
944ccc8d77SZyta Szpak    -c 3 -- -i --p 3 -a
954ccc8d77SZyta Szpak
964ccc8d77SZyta Szpak
977432c8cfSLiron HimiBuilding MUSDK
987432c8cfSLiron Himi--------------
994ccc8d77SZyta Szpak
1004ccc8d77SZyta SzpakDriver needs precompiled MUSDK library during compilation.
1014ccc8d77SZyta Szpak
1024ccc8d77SZyta Szpak.. code-block:: console
1034ccc8d77SZyta Szpak
1044ccc8d77SZyta Szpak   export CROSS_COMPILE=<toolchain>/bin/aarch64-linux-gnu-
1054ccc8d77SZyta Szpak   ./bootstrap
1064ccc8d77SZyta Szpak   ./configure --host=aarch64-linux-gnu --enable-pp2=no --enable-neta
1074ccc8d77SZyta Szpak   make install
1084ccc8d77SZyta Szpak
1094ccc8d77SZyta SzpakMUSDK will be installed to `usr/local` under current directory.
1104ccc8d77SZyta SzpakFor the detailed build instructions please consult ``doc/musdk_get_started.txt``.
1114ccc8d77SZyta Szpak
1127432c8cfSLiron HimiBuilding DPDK
1137432c8cfSLiron Himi-------------
1147432c8cfSLiron Himi
1157432c8cfSLiron HimiAdd path to libmusdk.pc in PKG_CONFIG_PATH environment variable.
1164ccc8d77SZyta Szpak
1174ccc8d77SZyta Szpak.. code-block:: console
1184ccc8d77SZyta Szpak
1197432c8cfSLiron Himi   export PKG_CONFIG_PATH=$<musdk_install_dir>/lib/pkgconfig/:$PKG_CONFIG_PATH
120e24b8ad4SStephen Hemminger   meson setup build --cross-file config/arm/arm64_armada_linux_gcc
1217432c8cfSLiron Himi   ninja -C build
12268d99d00SCiara Power
1234ccc8d77SZyta Szpak
1244ccc8d77SZyta SzpakUsage Example
1254ccc8d77SZyta Szpak-------------
1264ccc8d77SZyta Szpak
1274ccc8d77SZyta SzpakMVNETA PMD requires extra out of tree kernel modules to function properly.
1284ccc8d77SZyta Szpak`musdk_uio` and `mv_neta_uio` sources are part of the MUSDK. Please consult
1294ccc8d77SZyta Szpak``doc/musdk_get_started.txt`` for the detailed build instructions.
1304ccc8d77SZyta Szpak
1314ccc8d77SZyta Szpak.. code-block:: console
1324ccc8d77SZyta Szpak
1334ccc8d77SZyta Szpak   insmod musdk_uio.ko
1344ccc8d77SZyta Szpak   insmod mv_neta_uio.ko
1354ccc8d77SZyta Szpak
1364ccc8d77SZyta SzpakAdditionally interfaces used by DPDK application need to be put up:
1374ccc8d77SZyta Szpak
1384ccc8d77SZyta Szpak.. code-block:: console
1394ccc8d77SZyta Szpak
1404ccc8d77SZyta Szpak   ip link set eth0 up
1414ccc8d77SZyta Szpak   ip link set eth1 up
1424ccc8d77SZyta Szpak
1434ccc8d77SZyta SzpakIn order to run testpmd example application following command can be used:
1444ccc8d77SZyta Szpak
1454ccc8d77SZyta Szpak.. code-block:: console
1464ccc8d77SZyta Szpak
14768d99d00SCiara Power   ./dpdk-testpmd --vdev=net_mvneta,iface=eth0,iface=eth1 -c 3 -- \
1484ccc8d77SZyta Szpak     -i --p 3 -a --txd 256 --rxd 128 --rxq=1 --txq=1  --nb-cores=1
1494ccc8d77SZyta Szpak
1504ccc8d77SZyta Szpak
1514ccc8d77SZyta SzpakIn order to run l2fwd example application following command can be used:
1524ccc8d77SZyta Szpak
1534ccc8d77SZyta Szpak.. code-block:: console
1544ccc8d77SZyta Szpak
15568d99d00SCiara Power   ./dpdk-l2fwd --vdev=net_mvneta,iface=eth0,iface=eth1 -c 3 -- -T 1 -p 3
156