SYNOPSIS
mstflint [OPTIONS] <command> [Parameters]
[-d|--device <device>] [--guid <GUID>]
[--guids <GUIDS...>] [--mac <MAC>]
[--macs <MACs...>] [--uid <UID>]
[--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] [--ignore_dev_data]
[--use_fw] [--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, respectively:
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, respectively.
Commands affected: burn, sg
-
Note: -mac/-macs flags are applicable only for Mellanox Technologies ethernet products.
-
- --uid <UID>
- : ConnectIB/SwitchIB only. Derive and set the device UIDs (GUIDs, MACs). UIDs are derived from the given base UID according to Mellanox Methodology 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
- : 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
- --use_fw
- : Access to flash using FW (ConnectX3/ConnectX3Pro Device Only) Commands affected: all
- --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.
- 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|set> [ATTR=VAL] : Set/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 04:00.0 -i image1.bin burn
- •
-
mstflint -d 04:00.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 04:00.0 query
- Name: verify
- Description: Verify entire flash.
- Command: verify|v [showitoc]
- Parameters: None
- Examples:
- •
-
mstflint -d 04: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 04: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 04: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 04: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 04: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 04:00.0 -guid 0x0002c9000100d050 sg
- •
-
mstflint -d 08:00.0 -guid 0x0002c9000100d050 -mac 0x0002c900d050 sg
- 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 04: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 04: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 04: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 04: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 04: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 04:00.0 hw_access enable
- Name: hw
- Description: Access HW info and flash attributes.
- Command: hw <query|set> [ATTR=VAL]
- Parameters: query: query HW info
- set [ATTR=VAL]: set flash attribure
- Supported attributes:
- QuadEn: can be 0 or 1
- DummyCycles: can be [1..15]
- Flash[0|1|2|3].WriteProtected can be:
- <Top|Bottom>,<1|2|4|8|16|32|64>-<Sectors|SubSectors>
- Examples:
- •
- mstflint -d 04:00.0 hw query
- •
- mstflint -d 04:00.0 hw set QuadEn=1
- •
-
mstflint -d 04:00.0 hw set Flash1.WriteProtected=Top,1-SubSectors
- 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 04: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 04: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 04: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 04: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 separated dwords
- Examples:
- •
-
mstflint -d 04: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 04: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 04: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.