Updating the FPGA of Napatech DPUs

Getting Started with Napatech Link-Storage™ Software

Platform
Napatech DPU
Content Type
Getting Started
Capture Software Version
Link-Storage™ Software 1.0

The ipu_update tool supports the FPGA image configuration of Napatech DPUs over PCIe.

Before you begin

Make sure that you have:
  • Installed a Napatech DPU in a server. See Installing a Napatech DPU.
  • Remote SSH access to the SoC on the DPU via the management port or the USB port. See DN-1385.
  • A corresponding .upd file for the target DPU.
  • Placed the unpacked Napatech package containing FPGA image files and the ipu_tools-<version>-linux.tar.gz package in the /opt/ directory, where version is the version identifier of the corresponding package.
  • Blacklisted the kernel driver modules. See Blacklisting the virtio_blk module.

To support FPGA programming over PCIe using the ipu_update tool, it is required to have DPUs with appropriate images for the BMC and the FPGA as shown in the following table.

DPU component Firmware image version
BMCM 201-6001-64.0.18.20 or newer
BMCD 201-6002-64.0.18.20 or newer
FPGA ASAF (Link-Storage™ Software / Link-Security™ Software) 200-7102-0.0.6.1 or newer
OVS Offload Software 200-7104-0.0.3.8 or newer

For information on reading the firmware version of the BMC and the FPGA on the DPU, see Reading Revision Information in DN-1420.

For information on updating DPUs via the JTAG interface to prepare them for the ipu_update tool, see DN-1392.

About this task

This procedure describes command examples for programming a new FPGA image using the ipu_update tool with a .upd file.

Note: For information on updating the FPGA of DPUs with a .jic file or a .sof file via the JTAG interface, refer to DN-1392.
Note: The following prompts are used to indicate which part of the system to run the provided commands on.
  • soc#: The SoC on the DPU.
  • host#: The server where the DPU is installed.

Procedure

  1. On the DPU, install dependencies.
    soc# dnf install pciutils-devel gcc-c++ json-c-devel -y
  2. On the DPU, unpack the Napatech package containing DPU tools..
    soc# cd /opt/
    soc# tar zxvf ipu_tools-<version>-linux.tar.gz
    where version is the version identifier of the corresponding package.
  3. Build the kernel driver.
    soc# cd ipu_tools/src/
    soc# cd ipu_mngmnt_tools/software/csc_lek-0.0.0.5/driver/kmod
    soc# make
  4. Load the drivers.
    soc# modprobe uio
    soc# rmmod ifc_uio.ko 2>/dev/null
    soc# insmod ifc_uio.ko
  5. Update the DPU with a .upd file.
    Locate the ipu_update tool. For example:
    soc# cd ipu_tools/bin
    Locate the target .upd file. A command example for an F2070X DPU:
    soc# ./ipu_update -u \
     <package_root_directory>/images/INTEL-F2070X-7102/200-7102-0.0.10.5_user.upd
    A command example for an F2071 DPU:
    soc# ./ipu_update -u \
     <package_root_directory>/images/INTEL-F2070X-7103/200-7103-0.0.10.5_user.upd
    where package_root_directory is the directory to the unpacked Napatech package containing FPGA image files.
    An output example:
    Running FPGA version  : 200-7103-0.1.2.9
    Running pmci version  : 1.1.1-7fffffff
    Running BMCM NIOS app : unknown
    Image size: 27812096
    Programming F207xX IPU flashes...
    RSU STATE : IDLE
    RSU STATE : PREPARE
    RSU STATE : READY
    Writing image file to IPU...
    Write completed. Written 27812096 bytes.
    RSU STATE : AUTHENTICATING
    RSU STATE : COPYING
    RSU STATE : RSU_DONE
    Update Time: 427 seconds
    Updating F207xX IPU Firmware/FPGA Complete...
    This process must not be interrupted as the FPGA update may take several minutes.
  6. Perform a cold boot of the server where the DPU is installed.
    For example:
    host# shutdown -h now
    Power the server up again.
  7. Detect PCIe devices of the DPU.
    For example:
    lspci -d 1af4:
    An output example on the server where the DPU is installed.
    0f:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    10:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    11:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    12:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    13:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    14:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    16:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    17:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    18:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    19:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    1a:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    1f:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    20:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    21:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    22:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    23:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    24:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    25:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    26:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    27:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    28:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    29:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    2a:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    2b:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    2c:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    2d:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    2e:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    An output example on the SoC of the DPU.
    15:00.1 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.2 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.4 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.5 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.6 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.7 Ethernet controller: Red Hat, Inc. Virtio network device