Flashing Stock LSI 2308 IT Mode Firmware on HP H220 HBA (for use on Dell R720)

Mon 28 January 2019

If you are unlucky enough to have a Dell R720xd and wanted to get rid of the PERC RAID card, or just want to have raw disk access -- you are mostly out of luck.

The official solution is to use PERC H310 Mini, however, H310 Mini has its own problems -- the disk I/O queue is very shallow (25), which is unsuitable for use with SSDs. With H710 or H710p, you have much better performance (still not in par with "normal" HBA cards), but you have to live with various RAID levels. The only viable solution seems to be to use a real LSI HBA card.

As a result, I purchased a few HP branded H220 HBA cards and standard SAS cables from Taobao.com -- Dell SAS cables are proprietary cables that only work with embedded Mini PERCs. FWIW the Dell P/N of the cable should be C2X59. The H220 card itself simply rebranded LSI 9207-8i with HP firmware. However, with older / HP firmware, your system will NOT boot and stuck at the "Initializing" POST screen forever. The only fix it to disconnect the SAS cable, but without any disks attached, the card would be useless.

To fix the problem, newer firmware needs to be flashed. The firmware image itself can be downloaded from SuperMico FTP site (blocked in China), however, the sas2flash.efi P20 binary actually checks OEM data and refuses to flash stock firmware if so. P14 firmware should do it though.

Take a picture of the card and make sure the S/N on the card (two groups of hexadecimal numbers) is legible. You'll need it shortly. In my case, the yellow sticker on the back of the card has S/N on it.

Once you obtain the EFI binary (download address follows) and boot into EFI shell, run the following command:

sas2flash.efi -o -e 7
sas2flash.efi -f 2308T207.ROM
sas2flash.efi -b mptsas2.rom
sas2flash.efi -b x64sas2.rom
sas2flash.efi -o -sasaddhi XXXXXXX

(If you have trouble entering UEFI shell, use live CD for Arch Linux)

The -o -e 7 command would wipe the entire flash clean. Once you run it, make sure you flash something into the card as the card won't boot again next time.

The sas2flash.efi -o -sasaddhi command writes serial number for the card. Replace XXXXXXX with the first 7 digit of the SN (in my case, those are all 500605B). When asked, type in the last 9 digits of the SN (actual value does not matter that much, since we already broke the warranty). You can use 057F1234 if the SN is unknown.

After reboot, you should see Avago instead of LSI now on the POST screen.

Download LSI sas2flash.efi version P14 from here. If SuperMicro takes PH20.00.07.00-IT.zip down at some point, download it from https://tifan.la/rDCrey/qvIgCUAoCN.