Updating the FPGA of Napatech IPUs

Getting Started with Napatech Link-Storage™ Software

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

The f207xx_ipu_update tool supports the FPGA image configuration of Napatech IPUs over PCIe.

Before you begin

Make sure that you have:
  • Installed a Napatech IPU in a server. For F207?X IPUs, see Installing a Napatech IPU.
  • Remote SSH access to the SoC on the IPU via the management port or the USB port. See DN-1385.
  • A corresponding .upd file for the target IPU.
  • Placed the unpacked Napatech package containing FPGA image files and the ipu_tools-<version>-linux.tar.gz package in the /opt/ directory.
  • Blacklisted the kernel driver modules. See Blacklisting virtio_blk.
To support FPGA programming over PCIe using the f207xx_ipu_update tool, it is required to have IPUs with appropriate images for the BMC and the FPGA as shown in the following table.
IPU 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 from the IPU, see Reading Revision Information.

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

About this task

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

Note: For information on updating the FPGA of IPUs 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 IPU.
  • host#: The server where the IPU is installed.

Procedure

  1. On the IPU, unpack the Napatech package containing IPU tools..
    soc# cd /opt/
    soc# tar zxvf ipu_tools-<version>-linux.tar.gz
    where version is the version identifier of the corresponding package.
  2. 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
  3. Load the drivers.
    soc# modprobe uio
    soc# rmmod ifc_uio.ko 2>/dev/null
    soc# insmod ifc_uio.ko
  4. Update the IPU with a .upd file.
    Locate the f207xx_ipu_update tool. For example:
    soc# cd ipu_tools/bin
    Locate the target .upd file. A command example for an F2070X IPU:
    soc# ./f207xx_ipu_update -u \
     <package_root_directory>/images/INTEL-F2070X-7102/200-7102-0.0.10.5_user.upd
    A command example for an F2071 IPU:
    soc# ./f207xx_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:
    Image size: 50356480
    Programming F207xX IPU flashes...
    RSU STATE : IDLE
    RSU STATE : PREPARE
    RSU STATE : READY
    Writing image file to IPU...
    Write completed. Written 50356480 bytes.
    RSU STATE : AUTHENTICATING
    RSU STATE : COPYING
    RSU STATE : RSU_DONE
    Update Time: 578 seconds
    Updating F207xX IPU Firmware/FPGA Complete...
    This process must not be interrupted as the FPGA update may take several minutes.
  5. Perform a cold boot of the server where the IPU is installed.
    For example:
    host# shutdown -h now
    Power the server up again.
  6. Detect PCIe devices of the IPU.
    For example:
    lspci -d 1af4:
    An output example on the server where the IPU is installed.
    0d:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    0d:00.1 Ethernet controller: Red Hat, Inc. Virtio network device
    0d:00.2 Ethernet controller: Red Hat, Inc. Virtio network device
    0d:00.3 Ethernet controller: Red Hat, Inc. Virtio network device
    An output example on the SoC of the IPU.
    15:00.1 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.2 Ethernet controller: Red Hat, Inc. Virtio network device
    15:00.3 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