summaryrefslogtreecommitdiff
path: root/Documentation/networking/device_drivers/netronome/nfp.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/networking/device_drivers/netronome/nfp.rst')
-rw-r--r--Documentation/networking/device_drivers/netronome/nfp.rst249
1 files changed, 0 insertions, 249 deletions
diff --git a/Documentation/networking/device_drivers/netronome/nfp.rst b/Documentation/networking/device_drivers/netronome/nfp.rst
deleted file mode 100644
index ada611fb427c..000000000000
--- a/Documentation/networking/device_drivers/netronome/nfp.rst
+++ /dev/null
@@ -1,249 +0,0 @@
-.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-
-=============================================
-Netronome Flow Processor (NFP) Kernel Drivers
-=============================================
-
-Copyright (c) 2019, Netronome Systems, Inc.
-
-Contents
-========
-
-- `Overview`_
-- `Acquiring Firmware`_
-
-Overview
-========
-
-This driver supports Netronome's line of Flow Processor devices,
-including the NFP4000, NFP5000, and NFP6000 models, which are also
-incorporated in the company's family of Agilio SmartNICs. The SR-IOV
-physical and virtual functions for these devices are supported by
-the driver.
-
-Acquiring Firmware
-==================
-
-The NFP4000 and NFP6000 devices require application specific firmware
-to function. Application firmware can be located either on the host file system
-or in the device flash (if supported by management firmware).
-
-Firmware files on the host filesystem contain card type (`AMDA-*` string), media
-config etc. They should be placed in `/lib/firmware/netronome` directory to
-load firmware from the host file system.
-
-Firmware for basic NIC operation is available in the upstream
-`linux-firmware.git` repository.
-
-Firmware in NVRAM
------------------
-
-Recent versions of management firmware supports loading application
-firmware from flash when the host driver gets probed. The firmware loading
-policy configuration may be used to configure this feature appropriately.
-
-Devlink or ethtool can be used to update the application firmware on the device
-flash by providing the appropriate `nic_AMDA*.nffw` file to the respective
-command. Users need to take care to write the correct firmware image for the
-card and media configuration to flash.
-
-Available storage space in flash depends on the card being used.
-
-Dealing with multiple projects
-------------------------------
-
-NFP hardware is fully programmable therefore there can be different
-firmware images targeting different applications.
-
-When using application firmware from host, we recommend placing
-actual firmware files in application-named subdirectories in
-`/lib/firmware/netronome` and linking the desired files, e.g.::
-
- $ tree /lib/firmware/netronome/
- /lib/firmware/netronome/
- ├── bpf
- │   ├── nic_AMDA0081-0001_1x40.nffw
- │   └── nic_AMDA0081-0001_4x10.nffw
- ├── flower
- │   ├── nic_AMDA0081-0001_1x40.nffw
- │   └── nic_AMDA0081-0001_4x10.nffw
- ├── nic
- │   ├── nic_AMDA0081-0001_1x40.nffw
- │   └── nic_AMDA0081-0001_4x10.nffw
- ├── nic_AMDA0081-0001_1x40.nffw -> bpf/nic_AMDA0081-0001_1x40.nffw
- └── nic_AMDA0081-0001_4x10.nffw -> bpf/nic_AMDA0081-0001_4x10.nffw
-
- 3 directories, 8 files
-
-You may need to use hard instead of symbolic links on distributions
-which use old `mkinitrd` command instead of `dracut` (e.g. Ubuntu).
-
-After changing firmware files you may need to regenerate the initramfs
-image. Initramfs contains drivers and firmware files your system may
-need to boot. Refer to the documentation of your distribution to find
-out how to update initramfs. Good indication of stale initramfs
-is system loading wrong driver or firmware on boot, but when driver is
-later reloaded manually everything works correctly.
-
-Selecting firmware per device
------------------------------
-
-Most commonly all cards on the system use the same type of firmware.
-If you want to load specific firmware image for a specific card, you
-can use either the PCI bus address or serial number. Driver will print
-which files it's looking for when it recognizes a NFP device::
-
- nfp: Looking for firmware file in order of priority:
- nfp: netronome/serial-00-12-34-aa-bb-cc-10-ff.nffw: not found
- nfp: netronome/pci-0000:02:00.0.nffw: not found
- nfp: netronome/nic_AMDA0081-0001_1x40.nffw: found, loading...
-
-In this case if file (or link) called *serial-00-12-34-aa-bb-5d-10-ff.nffw*
-or *pci-0000:02:00.0.nffw* is present in `/lib/firmware/netronome` this
-firmware file will take precedence over `nic_AMDA*` files.
-
-Note that `serial-*` and `pci-*` files are **not** automatically included
-in initramfs, you will have to refer to documentation of appropriate tools
-to find out how to include them.
-
-Firmware loading policy
------------------------
-
-Firmware loading policy is controlled via three HWinfo parameters
-stored as key value pairs in the device flash:
-
-app_fw_from_flash
- Defines which firmware should take precedence, 'Disk' (0), 'Flash' (1) or
- the 'Preferred' (2) firmware. When 'Preferred' is selected, the management
- firmware makes the decision over which firmware will be loaded by comparing
- versions of the flash firmware and the host supplied firmware.
- This variable is configurable using the 'fw_load_policy'
- devlink parameter.
-
-abi_drv_reset
- Defines if the driver should reset the firmware when
- the driver is probed, either 'Disk' (0) if firmware was found on disk,
- 'Always' (1) reset or 'Never' (2) reset. Note that the device is always
- reset on driver unload if firmware was loaded when the driver was probed.
- This variable is configurable using the 'reset_dev_on_drv_probe'
- devlink parameter.
-
-abi_drv_load_ifc
- Defines a list of PF devices allowed to load FW on the device.
- This variable is not currently user configurable.
-
-Statistics
-==========
-
-Following device statistics are available through the ``ethtool -S`` interface:
-
-.. flat-table:: NFP device statistics
- :header-rows: 1
- :widths: 3 1 11
-
- * - Name
- - ID
- - Meaning
-
- * - dev_rx_discards
- - 1
- - Packet can be discarded on the RX path for one of the following reasons:
-
- * The NIC is not in promisc mode, and the destination MAC address
- doesn't match the interfaces' MAC address.
- * The received packet is larger than the max buffer size on the host.
- I.e. it exceeds the Layer 3 MRU.
- * There is no freelist descriptor available on the host for the packet.
- It is likely that the NIC couldn't cache one in time.
- * A BPF program discarded the packet.
- * The datapath drop action was executed.
- * The MAC discarded the packet due to lack of ingress buffer space
- on the NIC.
-
- * - dev_rx_errors
- - 2
- - A packet can be counted (and dropped) as RX error for the following
- reasons:
-
- * A problem with the VEB lookup (only when SR-IOV is used).
- * A physical layer problem that causes Ethernet errors, like FCS or
- alignment errors. The cause is usually faulty cables or SFPs.
-
- * - dev_rx_bytes
- - 3
- - Total number of bytes received.
-
- * - dev_rx_uc_bytes
- - 4
- - Unicast bytes received.
-
- * - dev_rx_mc_bytes
- - 5
- - Multicast bytes received.
-
- * - dev_rx_bc_bytes
- - 6
- - Broadcast bytes received.
-
- * - dev_rx_pkts
- - 7
- - Total number of packets received.
-
- * - dev_rx_mc_pkts
- - 8
- - Multicast packets received.
-
- * - dev_rx_bc_pkts
- - 9
- - Broadcast packets received.
-
- * - dev_tx_discards
- - 10
- - A packet can be discarded in the TX direction if the MAC is
- being flow controlled and the NIC runs out of TX queue space.
-
- * - dev_tx_errors
- - 11
- - A packet can be counted as TX error (and dropped) for one for the
- following reasons:
-
- * The packet is an LSO segment, but the Layer 3 or Layer 4 offset
- could not be determined. Therefore LSO could not continue.
- * An invalid packet descriptor was received over PCIe.
- * The packet Layer 3 length exceeds the device MTU.
- * An error on the MAC/physical layer. Usually due to faulty cables or
- SFPs.
- * A CTM buffer could not be allocated.
- * The packet offset was incorrect and could not be fixed by the NIC.
-
- * - dev_tx_bytes
- - 12
- - Total number of bytes transmitted.
-
- * - dev_tx_uc_bytes
- - 13
- - Unicast bytes transmitted.
-
- * - dev_tx_mc_bytes
- - 14
- - Multicast bytes transmitted.
-
- * - dev_tx_bc_bytes
- - 15
- - Broadcast bytes transmitted.
-
- * - dev_tx_pkts
- - 16
- - Total number of packets transmitted.
-
- * - dev_tx_mc_pkts
- - 17
- - Multicast packets transmitted.
-
- * - dev_tx_bc_pkts
- - 18
- - Broadcast packets transmitted.
-
-Note that statistics unknown to the driver will be displayed as
-``dev_unknown_stat$ID``, where ``$ID`` refers to the second column
-above.