.\"Text automatically generated by txt2man .TH mstflint 3.7.0 "August 2014" "" "" .SH NAME \fBmstflint \fP- Mellanox Technologies Firmware Update Tool .SH SYNOPSIS .nf .fam C \fBmstlint\fP [\fIOPTIONS\fP] [\fIParameters\fP] [\fB-d\fP|\fB--device\fP ] [\fB--guid\fP ] [\fB--guids\fP ] [\fB--mac\fP ] [\fB--macs\fP ] [\fB--uid\fP ] [\fB--uids\fP ] [\fB--blank_guids\fP] [\fB--clear_semaphore\fP] [\fB-h\fP|\fB--help\fP] [\fB--hh\fP] [\fB-i\fP|\fB--image\fP ] [\fB--qq\fP] [\fB--nofs\fP] [\fB--allow_psid_change\fP] [\fB--allow_rom_change\fP] [\fB--override_cache_replacement\fP] [\fB--no_flash_verify\fP] [\fB-s\fP|\fB--silent\fP] [\fB-y\fP|\fB--yes\fP] [\fB--no\fP] [\fB--vsd\fP ] [\fB--use_image_ps\fP] [\fB--use_image_guids\fP] [\fB--use_image_rom\fP] [\fB--dual_image\fP] [\fB--striped_image\fP] [\fB--banks\fP ] [\fB--log\fP ] [\fB--flash_params\fP ] [\fB-v\fP|\fB--version\fP] .fam T .fi .fam T .fi .SH DESCRIPTION \fBmstflint\fP [\fIOPTIONS\fP] [\fIParameters\fP] mstflint is a FW (firmware) burning and flash memory operations tool for Mellanox Infiniband HCAs, Ethernet NIC cards, and switch devices. .SH OPTIONS \fBmstflint\fP [\fIOPTIONS\fP] [\fIParameters\fP] .RS .TP .B \fB-d\fP|\fB--device\fP : Device flash is connected to. Commands affected: all .TP .B \fB--guid\fP : GUID base value. 4 GUIDs are automatically assigned to the following values: .RS .TP .B guid -> node GUID guid+1 -> port1 guid+2 -> port2 guid+3 -> system image GUID. .PP Note: port2 guid will be assigned even for a single port HCA - The HCA ignores this value. .PP Commands affected: burn, sg .RE .TP .B \fB--guids\fP : 4 GUIDs must be specified here. The specified GUIDs are assigned to the following fields, repectively: node, port1, port2 and system image GUID. .RS .PP Note: port2 guid must be specified even for a single port HCA - The HCA ignores this value. It can be set to 0x0. .PP Commands affected: burn, sg .RE .TP .B \fB--mac\fP : MAC address base value. 2 MACs are automatically assigned to the following values: .RS .TP .B mac -> port1 .TP .B mac+1 -> port2 .PP Commands affected: burn, sg .RE .TP .B \fB--macs\fP : 2 MACs must be specified here. The specified MACs are assigned to port1, port2, repectively. Commands affected: burn, sg .RS .PP Note: \fB-mac\fP/\fB-macs\fP flags are applicable only for Mellanox Technologies ethernet products. .RE .TP .B \fB--uid\fP : 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 .TP .B \fB--uids\fP : BridgeX only. 29 space separated UIDs must be specified here. The specified UIDs are assigned to the following fields, repectively: .RS 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 .RE .TP .B \fB--blank_guids\fP : Burn the image with blank GUIDs and MACs (where applicable). These values can be set later using the "sg" command (see details below). .RS .PP Commands affected: burn .RE .TP .B \fB--clear_semaphore\fP : 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. .TP .B \fB-h\fP|\fB--help\fP : Prints this message and exits .TP .B \fB--hh\fP : Prints extended command help .TP .B \fB-i\fP|\fB--image\fP : Binary image file. Commands affected: burn, verify .TP .B \fB--qq\fP : 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 .TP .B \fB--nofs\fP : Burn image in a non failsafe manner. .TP .B \fB--allow_psid_change\fP : 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 .TP .B \fB--allow_rom_change\fP : Allow burning/removing a ROM to/from FW image when product version is present. Use only if you know what you are doing .TP .B \fB--override_cache_replacement\fP : 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. .TP .B \fB--no_flash_verify\fP : Do not verify each write on the flash. .TP .B \fB-s\fP|\fB--silent\fP : Do not print burn progress flyer. Commands affected: burn .TP .B \fB-y\fP|\fB--yes\fP : Non interactive mode - assume answer "yes" to all questions. Commands affected: all .TP .B \fB--no\fP : Non interactive mode - assume answer "no" to all questions. Commands affected: all .TP .B \fB--vsd\fP : Write this string, of up to 208 characters, to VSD when burn. .TP .B \fB--use_image_ps\fP : Burn vsd as appears in the given image - do not keep existing VSD on flash. Commands affected: burn .TP .B \fB--use_image_guids\fP : Burn (guids/uids/macs) as appears in the given image. Commands affected: burn .TP .B \fB--use_image_rom\fP : Do not save the ROM which exists in the device. Commands affected: burn .TP .B \fB--ignore_dev_data\fP : Do not attempt to take device data sections from device(sections will be taken from the image. FS3 Only). Commands affected: burn .TP .B \fB--dual_image\fP : 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 .TP .B \fB--striped_image\fP : Use this flag to indicate that the given image file is in a "striped image" format. Commands affected: query verify .TP .B \fB--banks\fP : Set the number of attached flash devices (banks) .TP .B \fB--log\fP : Print the burning status to the specified log file \fB--flash_params\fP : 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. .TP .B \fB-v\fP|\fB--version\fP : Version info. .RE .RE .PP .SH COMMANDS SUMMARY: .RS .TP .B burn|b : Burn flash .TP .B query|q [full] : Query misc. flash/firmware characteristics, use "full" to get more information. .TP .B verify|v [showitoc] : Verify entire flash, use "showitoc" to see ITOC headers in FS3 image only. .TP .B swreset : SW reset the target un-managed switch device. This command is supported only in the In-Band access method. .TP .B brom : Burn the specified ROM file on the flash. .TP .B drom : Remove the ROM section from the flash. .TP .B rrom : Read the ROM section from the flash. .TP .B bb : Burn Block - Burns the given image as is. No checks are done. .TP .B sg [guids_num= step_size=] | [nocrc] : Set GUIDs. .TP .B smg : Set manufacture GUIDs (For FS3 image only). .TP .B set_vpd [vpd file] : Set read-only VPD (For FS3 image only). .TP .B sv : Set the VSD. .TP .B ri : Read the fw image on the flash. .TP .B dc [out-file] : Dump Configuration: print fw configuration file for the given image. .TP .B dh [out-file] : Dump Hash: dump the hash if it is integrated in the FW image .TP .B 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. .TP .B hw_access [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 .TP .B hw query : Query HW info and flash attributes. .TP .B erase|e : Erases sector. .TP .B rw : Read one dword from flash .TP .B ww : Write one dword to flash .TP .B wwne : Write one dword to flash without sector erase .TP .B wbne : Write a data block to flash without sector erase. .TP .B wb : Write a data block to flash. .TP .B rb [out-file] : Read a data block from flash .TP .B qrom : query rom in a given image. .RE .PP .RE .PP .SH COMMANDS DESCRIPTION: .RS .SS .TP .B \fIName\fP: burn .IP \fIDescription\fP: Burn flash. Performs failsafe FW update from a raw binary image. .IP \fICommand\fP: burn|b .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 \fB-i\fP image1.bin burn .IP \(bu 4 mstflint \fB-d\fP mlx4_0 \fB-guid\fP 0x2c9000100d050 \fB-i\fP image1.bin b ."*************************************************************************************** .RE .TP .B \fIName\fP: query .IP \fIDescription\fP: Query miscellaneous FW and flash parameters. .IP Display FW Version, GUIDs, PSID, and other info. .IP \fICommand\fP: query|q [full] .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 query ."*************************************************************************************** .RE .TP .B \fIName\fP: verify .IP \fIDescription\fP: Verify entire flash. .IP \fICommand\fP: verify|v [showitoc] .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 v ."*************************************************************************************** .RE .TP .B \fIName\fP: swreset .IP \fIDescription\fP: SW reset the target un-managed switch device. .IP This command is supported only in the In-Band access method. .IP \fICommand\fP: swreset .IP \fIParameters\fP: None .IP \fIExamples\fP: None ."*************************************************************************************** .RE .TP .B \fIName\fP: brom .IP \fIDescription\fP: Burn the specified exp-ROM on the flash. .IP \fICommand\fP: brom .IP \fIParameters\fP: file: The exp-ROM file. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 brom exp-rom.rom ."*************************************************************************************** .RE .TP .B \fIName\fP: drom .IP \fIDescription\fP: Remove the exp-ROM from the flash if it is existing. .IP \fICommand\fP: drom .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 drom ."*************************************************************************************** .RE .TP .B \fIName\fP: rrom .IP \fIDescription\fP: Read the exp-ROM from the flash if it is existing. .IP \fICommand\fP: rrom .IP \fIParameters\fP: file: filename to write the exp-ROM to. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 rrom exp-rom.rom ."*************************************************************************************** .RE .TP .B \fIName\fP: bb .IP \fIDescription\fP: Burns entire flash verbatim from raw binary image. No checks are done on the flash or .IP on the given image file. No fields (such as VSD or Guids) are read from flash. .IP \fICommand\fP: bb .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 \fB-i\fP image1.bin bb ."*************************************************************************************** .RE .TP .B \fIName\fP: sg .IP \fIDescription\fP: Set GUIDs/MACs/UIDs in the given device/image. .IP Use \fB-guid\fP(s), \fB-mac\fP(s) and \fB-uid\fP(s) flags to set the desired values. .IP - On pre-ConnectX devices, the sg command is used in production to apply GUIDs/MACs values .IP to cards that were pre-burnt with blank GUIDs. It is not meant for use in field. .IP On 4th generation devices, this command can operate on both image file and image on flash. .IP If the GUIDs/MACs/UIDs in the image on flash are non-blank, .IP mstflint will re-burn the current image using the given GUIDs/MACs/UIDs. .IP \fICommand\fP: sg [guids_num= step_size=] | [nocrc] .IP \fIParameters\fP: .IP nocrc: (optional) When specified the mstflint would not update .IP the full image crc after changing the guids .IP num_of_guids: number of GUIDs to be allocated per physical port (FS3 Only) .IP step_size: step size between GUIDs (FS3 Only) .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 \fB-guid\fP 0x0002c9000100d050 sg ."*************************************************************************************** .RE .TP .B \fIName\fP: smg .IP \fIDescription\fP: Set manufacture GUID, Set manufacture GUIDs in the given FS3 image. .IP Use \fB-uid\fP flag to set the desired GUIDs. .IP \fICommand\fP: smg [guids_num= step_size=] .IP \fIParameters\fP: .IP num_of_guids: number of GUIDs to be allocated per physical port .IP step_size: step size between GUIDs .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-i\fP fw_image.bin \fB-uid\fP 0x0002c9000100d050 smg ."*************************************************************************************** .RE .TP .B \fIName\fP: set vpd .IP \fIDescription\fP: Set Read-only VPD, Set VPD in the given FS3 image. .IP \fICommand\fP: set_vpd [vpd file] .IP \fIParameters\fP: vpd file: bin file containing the vpd data .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-i\fP fw_image.bin set_vpd vpd.bin ."*************************************************************************************** .RE .TP .b \fIName\fP: sv .IP \fIDescription\fP: Set VSD in the given device/image. .IP Use \fB-vsd\fP flag to set the desired VSD string. .IP \fICommand\fP: sv .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 \fB-vsd\fP VSD_STRING sv ."*************************************************************************************** .RE .TP .B \fIName\fP: ri .IP \fIDescription\fP: Read the FW image from flash and write it to a file. .IP \fICommand\fP: ri .IP \fIParameters\fP: file: filename to write the image to (raw binary). .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 ri file.bin ."*************************************************************************************** .RE .TP .B \fIName\fP: dc .IP \fIDescription\fP:Print (to screen or to a file) the FW configuration text file used by the image generation process. .IP This command would fail if the image does not contain a FW configuration section. Existence of this .IP section depends on the version of the image generation tool. .IP \fICommand\fP: dc [out-file] .IP \fIParameters\fP: file: (optional) filename to write the dumped configuration to. If not given, the data is printed to screen. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 dc ."*************************************************************************************** .RE .TP .B \fIName\fP: dh \fIDescription\fP: Print (to screen or to a file) the HASH text file used by the FW. .IP This command would fail if the image does not contain a Hash file. .IP \fICommand\fP: dh [out-file] .IP \fIParameters\fP: file - (optional) filename to write the dumped tracer hash file to. If not given, the data is printed to screen. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 dh hash.csv ."*************************************************************************************** .RE .TP .B \fIName\fP: set_key .IP \fIDescription\fP: Set/Update the HW access key which is used to enable/disable access to HW. .IP \fICommand\fP: set_key [key] .IP \fIParameters\fP: key: (optional) The new key you intend to set (in hex). .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 set_key 1234deaf5678 ."*************************************************************************************** .RE .TP .B \fIName\fP: hw_access .IP \fIDescription\fP: Enable/disable the access to the HW. .IP \fICommand\fP: hw_access [key] .IP \fIParameters\fP: : Specify if you intend to disable or enable the HW access. .IP You will be asked to type a key when you try to enable HW access. .IP .B key: (optional) The key you intend to use for enabling the HW access. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 hw_access enable ."*************************************************************************************** .RE .TP .B \fIName\fP: hw .IP \fIDescription\fP: Access HW info and flash attributes. .IP \fICommand\fP: hw query .IP \fIParameters\fP: query: query HW info .IP \fIExample\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 hw query ."*************************************************************************************** .RE .TP .B \fIName\fP: erase .IP \fIDescription\fP: Erases a sector that contains specified address. .IP \fICommand\fP: erase|e .IP \fIParameters\fP: addr - address of word in sector that you want to erase. .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 erase 0x10000 ."*************************************************************************************** .RE .TP .B \fIName\fP: rw .IP \fIDescription\fP: Read one dword from flash. .IP \fICommand\fP: rw .IP \fIParameters\fP: addr - address of word to read .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 rw 0x20 ."*************************************************************************************** .RE .TP .B \fIName\fP: ww .IP \fIDescription\fP: Write one dword to flash. .IP Note that the utility will read an entire flash sector, .IP modify one word and write the sector back. This may take a few seconds. .IP \fICommand\fP: ww .IP \fIParameters\fP: addr - address of word .IP data - value of word .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 ww 0x10008 0x5a445a44 ."*************************************************************************************** .RE .TP .B \fIName\fP: wwne .IP \fIDescription\fP: Write one dword to flash without sector erase. .IP Note that the result of operation is undefined and depends .IP on flash type. Usually "bitwise AND" (&) between specified .IP word and previous flash contents will be written to specified address. .IP \fICommand\fP: wwne .IP \fIParameters\fP: .IP addr - address of word .IP data - value of word .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 wwne 0x10008 0x5a445a44 ."*************************************************************************************** .RE .TP .B \fIName\fP: wbne .IP \fIDescription\fP: Write a block of data to the flash without erasing. .IP \fICommand\fP: wbne .IP \fIParameters\fP: addr - address of block .IP size - size of data to write in bytes .IP data - data to write - space seperated dwords .IP Examples: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 wbne 0x10000 12 0x30000 0x76800 0x5a445a44 ."*************************************************************************************** .RE .TP .B \fIName\fP: wb .IP \fIDescription\fP: Write a block of data to the flash. .IP \fICommand\fP: wb .IP \fIParameters\fP: data-file - file that contains the data to be written .IP addr - address to write the block to .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 wb myData.bin 0x0 ."*************************************************************************************** .RE .TP .B \fIName\fP: rb .IP \fIDescription\fP: .IP Read a data block from the flash and write it to a file or to screen. .IP \fICommand\fP: rb [out-file] .IP \fIParameters\fP: addr - address of block .IP size - size of data to read in bytes .IP file - filename to write the block (raw binary). If not given, the data is printed to screen. \fIExamples\fP: .IP \(bu 4 mstflint \fB-d\fP 03:00.0 rb 0x10000 100 file.bin ."*************************************************************************************** .RE .TP .B \fIName\fP: qrom .IP \fIDescription\fP: query rom in a given image. .IP \fI'Command\fP: qrom .IP \fIParameters\fP: None .IP \fIExamples\fP: .IP \(bu 4 mstflint \fB-i\fP fw_image.bin qrom .RE Return values: 0 - Successful completion 1 - An error has occurred 7 - For burn command - FW already updated - burn was aborted.