mstflint(3.7.0)

NAME
mstflint - Mellanox Technologies Firmware Update Tool

SYNOPSIS
  mstlint [OPTIONS] <command> [Parameters]
      [-d|--device <device>] [--guid <GUID>]
      [--guids <GUIDS...>] [--mac <MAC>]
      [--macs <MACs...>] [--uid <UID>]
      [--uids <UIDs...>] [--blank_guids]
      [--clear_semaphore] [-h|--help] [--hh]
      [-i|--image <image>] [--qq] [--nofs]
      [--allow_psid_change] [--allow_rom_change]
      [--override_cache_replacement] [--no_flash_verify]
      [-s|--silent] [-y|--yes] [--no] [--vsd <string>]
      [--use_image_ps] [--use_image_guids]
      [--use_image_rom] [--dual_image]
      [--striped_image] [--banks <bank>]
      [--log <log_file>] [--flash_params <type, log2size, num_of_flashes>]
      [-v|--version]

DESCRIPTION
mstflint [OPTIONS] <command> [Parameters] mstflint is a FW (firmware) burning and flash memory operations tool for Mellanox Infiniband HCAs, Ethernet NIC cards, and switch devices.

OPTIONS
mstflint [OPTIONS] <command> [Parameters]

    -d|--device <device>
        : Device flash is connected to. Commands affected: all

    --guid <GUID>
        : GUID base value. 4 GUIDs are automatically assigned to the following values:

        guid
            -> node GUID guid+1 -> port1 guid+2 -> port2 guid+3 -> system image GUID.

        Note: port2 guid will be assigned even for a single port HCA - The HCA ignores this value.

        Commands affected: burn, sg

    --guids <GUIDS...>
        : 4 GUIDs must be specified here. The specified GUIDs are assigned to the following fields, repectively: node, port1, port2 and system image GUID.

        Note: port2 guid must be specified even for a single port HCA - The HCA ignores this value. It can be set to 0x0.

        Commands affected: burn, sg

    --mac <MAC>
        : MAC address base value. 2 MACs are automatically assigned to the following values:

        mac -> port1

        mac+1
            -> port2

        Commands affected: burn, sg

    --macs <MACs...>
        : 2 MACs must be specified here. The specified MACs are assigned to port1, port2, repectively. Commands affected: burn, sg

        Note: -mac/-macs flags are applicable only for Mellanox Technologies ethernet products.

    --uid <UID>
        : BridgeX only. Derive and set the device UIDs (GUIDs, MACs, WWNs). UIDs are derived from the given base UID according to Mellanox Methodology Commands affected: burn, sg

    --uids <UIDs...>
        : BridgeX only. 29 space separated UIDs must be specified here. The specified UIDs are assigned to the following fields, repectively:
        G0-MAC-PI0 G0-MAC-PI1 G0-MAC-PI2 G0-MAC-PE0 G0-MAC-PE1 G0-MAC-PE2 G0-MAC-PE3 G0-FC-WWPN-P0 G0-FC-WWPN-P1 G0-FC-WWPN-P2 G0-FC-WWPN-P3 G0-IB-NODE-GUID G0-IB-PORT-GUID G0-FC-WWNN G1-MAC-PI0 G1-MAC-PI1 G1-MAC-PI2 G1-MAC-PE0 G1-MAC-PE1 G1-MAC-PE2 G1-MAC-PE3 G1-FC-WWPN-P0 G1-FC-WWPN-P1 G1-FC-WWPN-P2 G1-FC-WWPN-P3 G1-IB-NODE-GUID G1-IB-PORT-GUID G1-FC-WWNN IB-SYSTEM-GUID Commands affected: burn, sg

    --blank_guids
        : Burn the image with blank GUIDs and MACs (where applicable). These values can be set later using the "sg" command (see details below).

        Commands affected: burn

    --clear_semaphore
        : Force clear the flash semaphore on the device. No command is allowed when this flag is used. NOTE: May result in system instability or flash corruption if the device or another application is currently using the flash. Exercise caution.

    -h|--help
        : Prints this message and exits

    --hh
        : Prints extended command help

    -i|--image <image>
        : Binary image file. Commands affected: burn, verify

    --qq
        : Run a quick query. When specified, mstflint will not perform full image integrity checks during the query operation. This may shorten execution time when running over slow interfaces (e.g., I2C, MTUSB-1). Commands affected: burn, query

    --nofs
        : Burn image in a non failsafe manner.

    --allow_psid_change
        : Allow burning a FW image with a different PSID (Parameter Set ID)than the one currently on flash. Note that changing a PSID may cause the device to malfunction. Use only if you know what you are doing

    --allow_rom_change
        : Allow burning/removing a ROM to/from FW image when product version is present. Use only if you know what you are doing

    --override_cache_replacement
        : On SwitchX/ConnectIB devices: Allow accessing the flash even if the cache replacement mode is enabled. NOTE: This flag is intended for advanced users only. Running in this mode may cause the firmware to hang.

    --no_flash_verify
        : Do not verify each write on the flash.

    -s|--silent
        : Do not print burn progress flyer. Commands affected: burn

    -y|--yes
        : Non interactive mode - assume answer "yes" to all questions. Commands affected: all

    --no
        : Non interactive mode - assume answer "no" to all questions. Commands affected: all

    --vsd <string>
        : Write this string, of up to 208 characters, to VSD when burn.

    --use_image_ps
        : Burn vsd as appears in the given image - do not keep existing VSD on flash. Commands affected: burn

    --use_image_guids
        : Burn (guids/uids/macs) as appears in the given image. Commands affected: burn

    --use_image_rom
        : Do not save the ROM which exists in the device. Commands affected: burn

    --ignore_dev_data
        : Do not attempt to take device data sections from device(sections will be taken from the image. FS3 Only). Commands affected: burn

    --dual_image
        : Make the burn process burn two images on flash (previously default algorithm). Currentdefault failsafe burn process burns a single image (in alternating locations). Commands affected: burn

    --striped_image
        : Use this flag to indicate that the given image file is in a "striped image" format. Commands affected: query verify

    --banks <bank>
        : Set the number of attached flash devices (banks)

    --log <log_file>
        : Print the burning status to the specified log file --flash_params <type, log2size, num_of_flashes>: Use the given parameters to access the flash instead of reading them from the flash. Supported parameters: Type: The type of the flash, such as: M25PXxx, M25Pxx, N25Q0XX, SST25VFxx, W25QxxBV, W25Xxx, AT25DFxxx, S25FLXXXP. log2size: The log2 of the flash size.num_of_flashes: the number of the flashes connected to the device.

    -v|--version
        : Version info.

COMMANDS SUMMARY:

    burn|b
        : Burn flash

    query|q [full]
                                : Query misc. flash/firmware characteristics, use "full" to get more information.

    verify|v [showitoc]
                                : Verify entire flash, use "showitoc" to see ITOC headers in FS3 image only.

    swreset
                                : SW reset the target un-managed switch device. This command is supported only in the In-Band access method.

    brom
        <ROM-file> : Burn the specified ROM file on the flash.

    drom
                                : Remove the ROM section from the flash.

    rrom
        <out-file> : Read the ROM section from the flash.

    bb  : Burn Block - Burns the given image as is. No checks are done.

    sg  [guids_num=<num> step_size=<size>] | [nocrc] : Set GUIDs.

    smg : Set manufacture GUIDs (For FS3 image only).

    set_vpd
        [vpd file] : Set read-only VPD (For FS3 image only).

    sv  : Set the VSD.

    ri  <out-file> : Read the fw image on the flash.

    dc  [out-file] : Dump Configuration: print fw configuration file for the given image.

    dh  [out-file] : Dump Hash: dump the hash if it is integrated in the FW image

    set_key
        [key] : Set/Update the HW access key which is used to enable/disable access to HW. The key can be provided in the command line or interactively typed after the command is given NOTE: The new key is activated only after the device is reset.

    hw_access
        <enable|disable> [key] : Enable/disable the access to the HW. The key can be provided in the command line or interactively typed after the command is given

    hw  query : Query HW info and flash attributes.

    erase|e <addr>
        : Erases sector.

    rw  <addr> : Read one dword from flash

    ww  <addr> <data> : Write one dword to flash

    wwne
        <addr> <data> : Write one dword to flash without sector erase

    wbne
        <addr> <size> <data ...> : Write a data block to flash without sector erase.

    wb  <data-file> <addr> : Write a data block to flash.

    rb  <addr> <size> [out-file] : Read a data block from flash

    qrom
                                : query rom in a given image.

COMMANDS DESCRIPTION:

  Name: burn

Description: Burn flash. Performs failsafe FW update from a raw binary image.

    Command: burn|b

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 -i image1.bin burn

•   mstflint -d mlx4_0 -guid 0x2c9000100d050 -i image1.bin b

Name: query

    Description: Query miscellaneous FW and flash parameters.

    Display FW Version, GUIDs, PSID, and other info.

    Command: query|q [full]

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 query

Name: verify

    Description: Verify entire flash.

    Command: verify|v [showitoc]

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 v

Name: swreset

    Description: SW reset the target un-managed switch device.

    This command is supported only in the In-Band access method.

    Command: swreset

    Parameters: None

    Examples: None

Name: brom

    Description: Burn the specified exp-ROM on the flash.

    Command: brom <ROM-file>

    Parameters: file: The exp-ROM file.

    Examples:

•   mstflint -d 03:00.0 brom exp-rom.rom

Name: drom

    Description: Remove the exp-ROM from the flash if it is existing.

    Command: drom

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 drom

Name: rrom

    Description: Read the exp-ROM from the flash if it is existing.

    Command: rrom <out-file>

    Parameters: file: filename to write the exp-ROM to.

    Examples:

•   mstflint -d 03:00.0 rrom exp-rom.rom

Name: bb

    Description: Burns entire flash verbatim from raw binary image. No checks are done on the flash or

    on the given image file. No fields (such as VSD or Guids) are read from flash.

    Command: bb

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 -i image1.bin bb

Name: sg

    Description: Set GUIDs/MACs/UIDs in the given device/image.

    Use -guid(s), -mac(s) and -uid(s) flags to set the desired values.

    - On pre-ConnectX devices, the sg command is used in production to apply GUIDs/MACs values

    to cards that were pre-burnt with blank GUIDs. It is not meant for use in field.

    On 4th generation devices, this command can operate on both image file and image on flash.

    If the GUIDs/MACs/UIDs in the image on flash are non-blank,

    mstflint will re-burn the current image using the given GUIDs/MACs/UIDs.

    Command: sg [guids_num=<num> step_size=<size>] | [nocrc]

    Parameters:

    nocrc: (optional) When specified the mstflint would not update

    the full image crc after changing the guids

    num_of_guids: number of GUIDs to be allocated per physical port (FS3 Only)

    step_size: step size between GUIDs (FS3 Only)

    Examples:

•   mstflint -d 03:00.0 -guid 0x0002c9000100d050 sg

Name: smg

    Description: Set manufacture GUID, Set manufacture GUIDs in the given FS3 image.

    Use -uid flag to set the desired GUIDs.

    Command: smg [guids_num=<num> step_size=<size>]

    Parameters:

    num_of_guids: number of GUIDs to be allocated per physical port

    step_size: step size between GUIDs

    Examples:

•   mstflint -i fw_image.bin -uid 0x0002c9000100d050 smg

Name: set vpd

    Description: Set Read-only VPD, Set VPD in the given FS3 image.

    Command: set_vpd [vpd file]

    Parameters: vpd file: bin file containing the vpd data

    Examples:

•   mstflint -i fw_image.bin set_vpd vpd.bin

Name: sv

    Description: Set VSD in the given device/image.

    Use -vsd flag to set the desired VSD string.

    Command: sv

    Parameters: None

    Examples:

•   mstflint -d 03:00.0 -vsd VSD_STRING sv

Name: ri

    Description: Read the FW image from flash and write it to a file.

    Command: ri <out-file>

    Parameters: file: filename to write the image to (raw binary).

    Examples:

•   mstflint -d 03:00.0 ri file.bin

Name: dc

    Description:Print (to screen or to a file) the FW configuration text file used by the image generation process.

    This command would fail if the image does not contain a FW configuration section. Existence of this

    section depends on the version of the image generation tool.

    Command: dc [out-file]

    Parameters: file: (optional) filename to write the dumped configuration to. If not given, the data is printed to screen.

    Examples:

•   mstflint -d 03:00.0 dc

Name: dh
    Description: Print (to screen or to a file) the HASH text file used by the FW.

    This command would fail if the image does not contain a Hash file.

    Command: dh [out-file]

    Parameters: file - (optional) filename to write the dumped tracer hash file to. If not given, the data is printed to screen.

    Examples:

•   mstflint -d 03:00.0 dh hash.csv

Name: set_key

    Description: Set/Update the HW access key which is used to enable/disable access to HW.

    Command: set_key [key]

    Parameters: key: (optional) The new key you intend to set (in hex).

    Examples:

•   mstflint -d 03:00.0 set_key 1234deaf5678

Name: hw_access

    Description: Enable/disable the access to the HW.

    Command: hw_access <enable|disable> [key]

    Parameters: <enable/disable>: Specify if you intend to disable or enable the HW access.

    You will be asked to type a key when you try to enable HW access.

    key: (optional) The key you intend to use for enabling the HW access.

    Examples:

•   mstflint -d 03:00.0 hw_access enable

Name: hw

    Description: Access HW info and flash attributes.

    Command: hw query

    Parameters: query: query HW info

    Example:

•   mstflint -d 03:00.0 hw query

Name: erase

    Description: Erases a sector that contains specified address.

    Command: erase|e <addr>

    Parameters: addr - address of word in sector that you want to erase.

    Examples:

•   mstflint -d 03:00.0 erase 0x10000

Name: rw

    Description: Read one dword from flash.

    Command: rw <addr>

    Parameters: addr - address of word to read

    Examples:

•   mstflint -d 03:00.0 rw 0x20

Name: ww

    Description: Write one dword to flash.

    Note that the utility will read an entire flash sector,

    modify one word and write the sector back. This may take a few seconds.

    Command: ww <addr> <data>

    Parameters: addr - address of word

    data - value of word

    Examples:

•   mstflint -d 03:00.0 ww 0x10008 0x5a445a44

Name: wwne

    Description: Write one dword to flash without sector erase.

    Note that the result of operation is undefined and depends

    on flash type. Usually "bitwise AND" (&) between specified

    word and previous flash contents will be written to specified address.

    Command: wwne <addr> <data>

    Parameters:

    addr - address of word

    data - value of word

    Examples:

•   mstflint -d 03:00.0 wwne 0x10008 0x5a445a44

Name: wbne

    Description: Write a block of data to the flash without erasing.

    Command: wbne <addr> <size> <data ...>

    Parameters: addr - address of block

    size - size of data to write in bytes

    data - data to write - space seperated dwords

    Examples:

•   mstflint -d 03:00.0 wbne 0x10000 12 0x30000 0x76800 0x5a445a44

Name: wb

    Description: Write a block of data to the flash.

    Command: wb <data-file> <addr>

    Parameters: data-file - file that contains the data to be written

    addr - address to write the block to

    Examples:

•   mstflint -d 03:00.0 wb myData.bin 0x0

Name: rb

    Description:

    Read a data block from the flash and write it to a file or to screen.

    Command: rb <addr> <size> [out-file]

    Parameters: addr - address of block

    size - size of data to read in bytes

    file - filename to write the block (raw binary). If not given, the data is printed to screen. Examples:

•   mstflint -d 03:00.0 rb 0x10000 100 file.bin

Name: qrom

    Description: query rom in a given image.

    'Command: qrom

    Parameters: None

    Examples:

•   mstflint -i fw_image.bin qrom
Return values: 0 - Successful completion 1 - An error has occurred 7 - For burn command - FW already updated - burn was aborted.