Hi!
I have updated mstflint tool with code from mellanox MFT 1.0.1 package.
mstflint is a stand-alone firmware burning tool for Mellanox manufactured HCA
cards. Some success has been reported with cards from Topspin/Cisco.
See the README file under src/userspace/mstflint for more info.
Changes:
* bug fixes
* more flash types supported
* new flag -skip_is to allow safe firmware updates even if
new firmware includes initial sector update (by updating
all firmware except the IS)
* portability cleanups: use stdio instead of low level file descriptor
operations
This code has been tested on x86 and x86_64, on PCI-X and PCI-Express cards.
I'd appreciate feedback and testing on other platforms.
You can help by testing this tool even if you dont have IB cards, or if you
dont want to burn firmware, as described below.
Thanks,
MST
---
To build:
cd src/userspace/mstflint
make
---
Ways to test the tool (without accessing device):
# ./mstflint -i ~/fw-25218-5_1_0-rc22-lion-cub.bin q
Image type: Failsafe
I.S. Version:1
Chip Revision: A0
GUID Des:Node Port1Port2Sys image
GUIDs: 0002c9000100d050 0002c9000100d051 0002c9000100d052
0002c9000100d050
Board ID: (MT_014001)
VSD:
PSID:MT_014001
# ./mstflint -i ~/fw-25218-5_1_0-rc22-lion-cub.bin v
Failsafe image:
Invariant /0x0028-0x095f (0x000938)/ (BOOT2) - OK
Primary Image /0x0001-0x00010107 (0x000108)/ (Pointer Sector)- OK
/0x00030028-0x000308af (0x000888)/ (BOOT2) - OK
/0x000308b0-0x00035ae7 (0x005238)/ (BOOT2) - OK
/0x00035ae8-0x000380cf (0x0025e8)/ (Configuration) - OK
/0x000380d0-0x00038103 (0x34)/ (GUID) - OK
/0x00038104-0x00046b87 (0x00ea84)/ (DDR) - OK
/0x00046b88-0x0004fb1b (0x008f94)/ (DDR) - OK
/0x0004fb1c-0x00067ca3 (0x018188)/ (DDR) - OK
/0x00067ca4-0x0007fc53 (0x017fb0)/ (DDR) - OK
/0x0007fc54-0x0008245b (0x002808)/ (DDR) - OK
/0x0008245c-0x000839c3 (0x001568)/ (DDR) - OK
/0x000839c4-0x000839d7 (0x14)/ (Configuration) - OK
/0x000839d8-0x00083a1b (0x44)/ (Jump addresses) - OK
/0x00083a1c-0x0008e1cb (0x00a7b0)/ (EMT Service) - OK
Secondary Image /0x0002-0x00020107 (0x000108)/ (Pointer Sector)- OK
/0x00090028-0x000908af (0x000888)/ (BOOT2) - OK
/0x000908b0-0x00095ae7 (0x005238)/ (BOOT2) - OK
/0x00095ae8-0x000980cf (0x0025e8)/ (Configuration) - OK
/0x000980d0-0x00098103 (0x34)/ (GUID) - OK
/0x00098104-0x000a6b87 (0x00ea84)/ (DDR) - OK
/0x000a6b88-0x000afb1b (0x008f94)/ (DDR) - OK
/0x000afb1c-0x000c7ca3 (0x018188)/ (DDR) - OK
/0x000c7ca4-0x000dfc53 (0x017fb0)/ (DDR) - OK
/0x000dfc54-0x000e245b (0x002808)/ (DDR) - OK
/0x000e245c-0x000e39c3 (0x001568)/ (DDR) - OK
/0x000e39c4-0x000e39d7 (0x14)/ (Configuration) - OK
/0x000e39d8-0x000e3a1b (0x44)/ (Jump addresses) - OK
/0x000e3a1c-0x000ee1cb (0x00a7b0)/ (EMT Service) - OK
FW Image verification succeeded. Image is OK.
More ways to test the tool (read flash but do not burn anything to the device):
# ./mstflint -d /sys/class/infiniband/mthca0/device/resource0 q
Image type: Failsafe
I.S. Version:1
Chip Revision: A0
GUID Des:Node Port1Port2Sys image
GUIDs: 0a66b492c901 0a66b4910002c901 0a66b4920002c901
0a66b4930002c901
Board ID: (MT_00A001)
VSD:
PSID:MT_00A001
# ./mstflint -d /sys/class/infiniband/mthca0/device/resource0 v
Failsafe image:
Invariant /0x0028-0x095f (0x000938)/ (BOOT2) - OK
Primary Image /0x0001-0x00010107 (0x000108)/ (Pointer Sector)- OK
/0x00030028-0x000308af (0x000888)/ (BOOT2) - OK
/0x000308b0-0x00034baf (0x004300)/ (BOOT2) - OK
/0x00034bb0-0x00035a93 (0x000ee4)/ (Configuration) - OK
/0x00035a94-0x00035ac7 (0x34)/ (GUID) - OK
/0x00035ac8-0x0003e2bb (0x0087f4)/ (DDR) - OK
/0x0003e2bc-0x0004c2e3 (0x00e028)/ (DDR) - OK
/0x0004c2e4-0x0004f213 (0x002f30)/ (DDR) - OK
/0x0004f214-0x00050907 (0x0016f4)/ (DDR) - OK
/0x00050908-0x000693e7 (0x018ae0)/ (DDR) - OK
/0x000693e8-0x0007d307 (0x013f20)/ (DDR) - OK
/0x0007d308-0x0007d31b (0x14)/ (Configuration) - OK
/0x0007d31c-0x0007d35f (0x44)/ (Jump addresses) - OK