Oh noes, your card isn’t found…
While trying to upgrade the firmware on my Supermicro X9DRH-7F board with the built-in SAS2208 LSI card, I ran into a mess of unexpected problems. First off, none of the regular tools and methods seemed to work, unlike almost all the other LSI cards I have worked with. Second, I kept finding a ton of conflicting information all over the net. Lastly it turns out that even Broadcom’s website actually points you to the wrong firmware…
At this point, if you can see your card when you do a sas2flsh.efi -listall
, ignore this entire post and follow the normal instructions found here: https://www.serverbuilds.net/flashing-add-in-sas
If you get an error and the card cannot be found, read on.
Fixing the firmware
Unfortunately this card needs to be reverted to a SAS2308 firmware, then flashed with a empty binary firmware that contains just enough for the sas2flsh
tool to find the card and upgrade the firmware. Here there be dragons… Please use extreme caution, as this could damage/brick your card if you are not careful!
For now, I am just going to post the most helpful articles:
- Identifying Firmware
- Finding firmware
- Flashing LSI 2208 with IT firmware to use as an HBA
- Restoring workable SAS2308 Firmware
Files to download
- Installer_P20_for_UEFI
- 9207-8i_Package_P20_IR_IT_Firmware_BIOS_for_MSDOS_Windows
- lsi2208fixer.iso
- sbrempty.bin
- Rufus FreeDOS USB Creator
Step by step instructions
A big thanks to zach for writing up these instructions and reproducing my working steps!
-
Get a USB boot stick
-
Make it a DOS stick in Rufus
-
Download
lsi2208fixer.iso
-
Drag the DOS files in that ISO into the root directory of the stick
-
Drag the DOS files from 9207-8i package into the root directory of the stick
-
Drag the P20 UEFI installer into root directory of stick
-
Drag sbrempty.bin into root directory of the stick
-
Boot your server with the stick with ALL DRIVES UNPLUGGED FROM MOBO
-
Get your RAID card’s index number
megarec -adplist
-
Clear the flash of the card
megarec -cleanflash 0
(Replace 0 with the index number of your RAID card) * Reboot (Ctrl+alt+del) -
Flash the card with the recovery rom
megarec -m0flash 0 2208_16.rom
This will take a good 5-6 minutes so be patient -
Reboot (Ctrl+alt+del)
-
Back up your SBR and SBD for the RAID card
megarec -readsbr 0 smc2208.sbr megarec -readspd 0 smc2208.spd
-
Wipe the card by overwriting the bin with the one you downloaded
megarec -writesbr 0 sbrempty.bin
-
Clean the flash again (don’t forget!)
megarec -cleanflash 0
-
Reboot into your UEFI Terminal instead of the DOS environment
-
Check to see if you can see the RAID card with the sas2flash EFI command
sas2flash -list
-
Flash it with the now correct bin
sas2flash -o -f 9207-8.bin
-
Check if it went through with
sas2flash -list
again -
Give it a SAS address, you can either find your specific SAS card’s address or you can give it a random one that has the same exact amount of digits. I will include a random one that you can use if you want to, or you can use your own
sas2flash -o -sasadd 5003048010a73d00
Your card should now be in a fully functional IT mode, go ahead and power everything off, plug your drives back in and give it all a test run This is SPECIFICALLY instructions for the onboard RAID card on the Supermicro X9DRH-7F motherboard. Similar steps may work for other boards with LSI 2208, but it has not been tested.
Here’s a video someone posted that might be helpful: Anniversary 2.0 First Time Build Feedback - #4 by DoItMyselfToo_US