Updating the FPGA of Napatech IPUs

Getting Started with OVS Offload Software

Platform
Napatech IPU
Content Type
Getting Started
Capture Software Version
OVS Offload 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-7104/200-7104-0.0.5.6_user.upd
    A command example for an F2071X IPU:
    soc# ./f207xx_ipu_update -u \
     <package_root_directory>/images/INTEL-F2070X-7105/200-7105-0.0.5.6_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 host.
    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
    1b:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    1c:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    1d:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
    1e: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
    16 virtio network devices and 16 virtio block devices are detected.
    An output example on the system of the IPU.
    soc#  lspci -d 1af4:
    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
    7 virtio network devices are detected.