HPE H221 SAS HBA cards
September 29th 2023
I'm migrating my storage from a power hungry, slow and unreliable old Promise Vessraid 1840i to a not so power hungry, faster and more reliable Dell Powervault MD1200. Therefore I bought a SAS HBA card. A HPE H221 to be exact, or to be not exact as it turns out.
The difference between H221 and H221
Yes, you read that right, a HPE H221 comes in two different models. One is really a LSI 9207-8e and the other one is a LSI 9205-8e. 8e means that it has 8 external SAS lanes. They both provide the same features and have 2 SAS 8088 ports, the real difference is that the 9207 has PCIe 3.0 while the 9205 has PCIe 2.0. Still they are sold with the same name and I ask myself why they do this. It's neither necessary nor useful, it's just confusing. They could have selled them as H221a/H221b or something but they didn't, so here we are.
Upgrading Firmware
You can only flash the firmware with sas2flash version P14! All newer versions will fail with ERROR: NVDATA Image does not match Controller SubSystem ID!
.
Apparently this is a check which is only performed by newer versions of sas2flash.
You could encounter another error when flashing the wrong firmware: ERROR: NVDATA Image does not match Controller Chip Revision!
.
In that case you may try just to flash another firmware as there is no easy way to check if the card is a 9205-8e or 9207-8e.
Full Error Output
# ./sas2flash_p20/sas2flash -c 0 -f ../firmware/p20/9205-8e.bin
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved
Adapter Selected is a LSI SAS: SAS2308_2(B0)
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Version 20.00.07.00
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Version 14.01.00.00
Checking for a compatible NVData image...
NVDATA Device ID and Chip Revision match verified.
ERROR: NVDATA Image does not match Controller SubSystem ID!
NVDATA Subsystem ID: 0x3000
Controller Subsystem ID: 0x42
ERROR: No compatible NVDATA Image(s) found!
Firmware Image Validation Failed!
Due to error remaining commands will not be executed.
Unable to Process Commands.
Exiting SAS2Flash.
What you need
- sas2flash version P14 for your OS
- Firmware for both 9205-8e and 9207-8e if you are not 100% sure what you have
Grab them from the Broadcom Site.
Here are some direct links in case you need them:
- sas2flash for Linux P14 / P20
- sas2flash for Windows P14 / P20
- LSI 9205-8e Firmware P14 / P20
- LSI 9207-8e Firmware P14 / P20
Download the sas2flash utility and firmware matching your OS/card. I'm performing the firmware update using Linux.
How to check/flash firmware
First you need to make sure sas2flash is actually working. Execute it with the -listall
parameter:
./sas2flash_p14/sas2flash -listall
You should see something like this:
# ./sas2flash_p14/sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved
Adapter Selected is a LSI SAS: SAS2308_2(B0)
Num Board Name FW Ver NVDATA x86-BIOS
-----------------------------------------------------------------
0 H221 20.00.07.00 14.01.00.09 07.39.02.00
Finished Processing Commands Successfully.
Exiting SAS2Flash.
Actually flashing the firmware image
# ./sas2flash_p14/sas2flash -c 0 -f ./firmware/p20/9205-8e.bin
LSI Corporation SAS2 Flash Utility
Version 10.00.00.00 (2011.05.13)
Copyright (c) 2008-2011 LSI Corporation. All rights reserved
Adapter Selected is a LSI SAS: SAS2308_2(B0)
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Device ID and Chip Revision match verified.
NVDATA Versions Compatible.
Valid Initialization Image verified.
Valid BootLoader Image verified.
Beginning Firmware Download...
Firmware Download Successful.
Verifying Download...
Firmware Flash Successful!
Resetting Adapter...
Adapter Successfully Reset.
Finished Processing Commands Successfully.
Exiting SAS2Flash.
done. If you encounter any issues or have something else to contribute please let me know or post a comment below.
Thanks to that guy's blogpost!