ethdev: refine debug build option
[dpdk.git] / doc / guides / nics / bnx2x.rst
index b1fec8a..9ad4f9f 100644 (file)
@@ -1,40 +1,13 @@
-..  BSD LICENSE
+..  SPDX-License-Identifier: BSD-3-Clause
     Copyright (c) 2015 QLogic Corporation
-    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 QLogic Corporation 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.
 
 BNX2X Poll Mode Driver
 ======================
 
-The BNX2X poll mode driver library (**librte_pmd_bnx2x**) implements support
+The BNX2X poll mode driver library (**librte_net_bnx2x**) implements support
 for **QLogic 578xx** 10/20 Gbps family of adapters as well as their virtual
 functions (VF) in SR-IOV context. It is supported on several standard Linux
-distros like Red Hat 7.x and SLES12 OS. It is compile-tested under FreeBSD OS.
+distros like RHEL and SLES. It is compile-tested under FreeBSD OS.
 
 More information can be found at `QLogic Corporation's Official Website
 <http://www.qlogic.com>`_.
@@ -65,14 +38,26 @@ The features not yet supported include:
 Co-existence considerations
 ---------------------------
 
-- BCM578xx being a CNA can have both NIC and Storage personalities.
-  However, coexistence with storage protocol drivers (cnic, bnx2fc and
-  bnx2fi) is not supported on the same adapter. So storage personality
-  has to be disabled on that adapter when used in DPDK applications.
-
-- For SR-IOV case, bnx2x PMD will be used to bind to SR-IOV VF device and
-  Linux native kernel driver (bnx2x) will be attached to SR-IOV PF.
-
+- QLogic 578xx CNAs support Ethernet, iSCSI and FCoE functionalities.
+  These functionalities are supported using QLogic Linux kernel
+  drivers bnx2x, cnic, bnx2i and bnx2fc. DPDK is supported on these
+  adapters using bnx2x PMD.
+
+- When SR-IOV is not enabled on the adapter,
+  QLogic Linux kernel drivers (bnx2x, cnic, bnx2i and bnx2fc) and bnx2x
+  PMD can’t be attached to different PFs on a given QLogic 578xx
+  adapter.
+  A given adapter needs to be completely used by DPDK or Linux drivers.
+  Before binding DPDK driver to one or more PFs on the adapter,
+  please make sure to unbind Linux drivers from all PFs of the adapter.
+  If there are multiple adapters on the system, one or more adapters
+  can be used by DPDK driver completely and other adapters can be used
+  by Linux drivers completely.
+
+- When SR-IOV is enabled on the adapter,
+  Linux kernel drivers (bnx2x, cnic, bnx2i and bnx2fc) can be bound
+  to the PFs of a given adapter and either bnx2x PMD or Linux drivers
+  bnx2x can be bound to the VFs of the adapter.
 
 Supported QLogic NICs
 ---------------------
@@ -82,39 +67,32 @@ Supported QLogic NICs
 Prerequisites
 -------------
 
-- Requires firmware version **7.2.51.0**. It is included in most of the
+- Requires firmware version **7.13.11.0**. It is included in most of the
   standard Linux distros. If it is not available visit
-  `QLogic Driver Download Center <http://driverdownloads.qlogic.com>`_
+  `linux-firmware git repository <https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/bnx2x/bnx2x-e2-7.13.11.0.fw>`_
   to get the required firmware.
 
 Pre-Installation Configuration
 ------------------------------
 
-Config File Options
-~~~~~~~~~~~~~~~~~~~
+Config Options
+~~~~~~~~~~~~~~
 
-The following options can be modified in the ``.config`` file. Please note that
+The following options can be enabled with Meson flags. Please note that
 enabling debugging options may affect system performance.
 
-- ``CONFIG_RTE_LIBRTE_BNX2X_PMD`` (default **n**)
-
-  Toggle compilation of bnx2x driver. To use bnx2x PMD set this config parameter
-  to 'y'. Also, in order for firmware binary to load user will need zlib devel
-  package installed.
-
-- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX`` (default **n**)
+- ``RTE_LIBRTE_BNX2X_DEBUG_TX`` (default **disabled**)
 
   Toggle display of transmit fast path run-time messages.
 
-- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX`` (default **n**)
+- ``RTE_LIBRTE_BNX2X_DEBUG_RX`` (default **disabled**)
 
   Toggle display of receive fast path run-time messages.
 
-- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC`` (default **n**)
+- ``RTE_LIBRTE_BNX2X_DEBUG_PERIODIC`` (default **disabled**)
 
   Toggle display of register reads and writes.
 
-
 .. _bnx2x_driver-compilation:
 
 Driver compilation and testing
@@ -123,6 +101,23 @@ Driver compilation and testing
 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
 for details.
 
+Jumbo: Limitation
+-----------------
+
+Rx descriptor limit for number of segments per MTU is set to 1.
+PMD doesn't support Jumbo Rx scatter gather. Some applciations can
+adjust mbuf_size based on this param and max_pkt_len.
+
+For others, PMD detects the condition where Rx packet length cannot
+be held by configured mbuf size and logs the message.
+
+Example output:
+
+   .. code-block:: console
+
+      [...]
+      [bnx2x_recv_pkts:397(04:00.0:dpdk-port-0)] mbuf size 2048 is not enough to hold Rx packet length more than 2046
+
 SR-IOV: Prerequisites and sample Application Notes
 --------------------------------------------------
 
@@ -194,6 +189,7 @@ This section provides instructions to configure SR-IOV with Linux OS.
    using the instructions outlined in the Application notes below.
 
 #. Running testpmd:
+   (Supply ``--log-level="pmd.net.bnx2x.driver",7`` to view informational messages):
 
    Follow instructions available in the document
    :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`