Program Mode

Handling FPGA Images

Platform
Napatech SmartNIC
Content Type
User Guide
Capture Software Version
Link™ Capture Software 11.9

Description

The --program command (see Syntax for the imgctrl Tool) is used for upgrading or downgrading an FPGA image in one NT SmartNIC or a group of NT SmartNICs. The SmartNIC(s) must be in the NEUTRAL state (see NEUTRAL state) before the command is executed.
Note: To save time when the -g or --group argument is used, no verification is performed unless the optional overall -v or --verbose argument is also used.

Two mandatory arguments to the --program command are --ntimg and --ini followed by a path and filename of an .ntimg container package (or, for PCIe Gen1 SmartNICs, an .img binary file) and a text string, respectively. The text string is used to tag or identify the upload. The user is free to enter any string; it is used solely for information purposes.

FPGA images are always uploaded to the secondary bank of a SmartNIC, unless the advanced --force-bank argument is used.

CAUTION:
The --force-bank argument is considered advanced and should not be used lightly. Do not use it unless instructed to do so by Napatech support personnel.
Note: Incorrect usage of the --force-bank argument will allow you to compromise both banks and thereby invalidate the SmartNIC.

After programming you must use the --switch command to try the new bank.

Note: Do not interrupt the tool, for instance using Ctrl+c, while it is programming, since this will cause the bank to become invalid. In such an event, simply restart the programming sequence.
Note: imgctrl version 2.1.0 and later actively prevent you from breaking out of the application. For these versions a termination of the tool can be forced, for Linux and FreeBSD, by using kill -9 <pid>, and for Windows, by closing the console window.

Command example with no verification

This is an example of a --program command with no verification.                                                                                                          

$ imgctrl -a0 -p -g --ini kje --ntimg 200-9508-05-07-00-160829-1513.ntimg

Output example with no verification

This is an example of an output from the --program command in Command example with no verification.

imgctrl v3.4.5.29568 (Sep  2 2016 12:58:57) (Logfile: /tmp/imgctrl.log)
Scanning for Napatech adapters..
Adapter group upgrade list:
  ADAPTER 0: PCI:0000:83:00.0 DEVICE:NT200A01-SCC       RUNNING FPGA:200-9508-05-08-0000
  ADAPTER 1: PCI:0000:85:00.0 DEVICE:NT200A01-SCC       RUNNING FPGA:200-9508-05-08-1023
  Group Erasing................... 100% done
  Group Writing................... 100% done
Adapter group upgrade done
Note: You can inspect the upload result through the Bank Contents
      section using the --query mode. To try the new image, remember
      to switch bank using the --switch mode. See --help for more information.
Upgrade process complete

Command example with verification

This is an example of a --program command with verification.                                                                                                          

$ imgctrl -a0 -p -g -v --ini kje --ntimg 200-9508-05-07-00-160829-1513.ntimg

Output example with verification

This is an example of an output from the --program command in Command example with verification.

imgctrl v3.4.5.29568 (Sep  2 2016 12:58:57) (Logfile: /tmp/imgctrl.log)
Press CTRL-Z (Win:CTRL-BREAK) to increase verbosity level at runtime.
Scanning for Napatech adapters..
Adapter group upgrade list:
  ADAPTER 0: PCI:0000:83:00.0 DEVICE:NT200A01-SCC       RUNNING FPGA:200-9508-05-08-0000
  ADAPTER 1: PCI:0000:85:00.0 DEVICE:NT200A01-SCC       RUNNING FPGA:200-9508-05-08-1023
  Group Erasing................... 100% done
  Group Writing................... 100% done
  ADAPTER 0: Verifying............ 100% done
  ADAPTER 1: Verifying............ 100% done
Adapter group upgrade done
Note: You can inspect the upload result through the Bank Contents
      section using the --query mode. To try the new image, remember
      to switch bank using the --switch mode. See --help for more information.
Upgrade process complete