Guide: How to flash your Huawei SR130 BC61ESMN LSI SAS3008 firmware from IR to IT

Note: This is my first post on here, feel free to move thread to a better section accordingly.

Having gotten my hands on a refurbished Huawei RH2288H V3 with Huawei SR130 IR Raid card, TrueNAS installation was planned to be around 2 hours max. Since flashing the darn OEM Raid card to IT mode has taken an Enterprise Linux Admin almost three evenings and countless attempts, here is your final guide because Huawei has exactly ZERO documentation on the matter (trust me, I RTFM’ed the living crap out of their various docs).

What do we have here exactly and why was it so hard?
The RH2288H V3 server came with a Huawei SR130 BC61ESMN LSI SAS3008 Raid card, which is a prioprietary card with proprietary firmware on it, the chip however is generic LSI3008. Huawei does provide (albeit after registering and upgrading an account via ticket) a lot of tools and documentation for this EOL server, including a FW-Upgrade tool that doesn’t work for cross-flashing firmware (even though it lies in your face about “successful” flash). One can use their IT-Firmware, however you shouldn’t if you plan to use SATA drives like I do. Huawei’s is version 12, while TrueNAS worked with Broadcom to provide a version 16 firmware that fixes a SATA bug. There is a lot of things to consider, so here are the exact steps you need to take to succeed:

  1. Get your tools:

Now, once we know that the Huawei SR130 aka LSI3008 (ex-LSI, ex-Avago, now Broadcom) can ONLY be flashed between IR and IT mode using EFI or DOS according to Broadcom support page, the problem becomes clear and since the Huawei V3 server doesn’t provide an EFI shell, we shall make our own bootable EFI USB media, which is quite simple. Also, disregard Broadcom’s statement that sas3flash “Cannot be used to flash from IT to IR firmware or from IR to IT firmware”, it CAN in DOS / UEFI and their matrix down below directly states it!

Probably optional, however I did it for good measure: Put a jumper (in my case, a metal paper clip had to do) in the isolated J7 holes through the top of the RAID card.

  1. Format the USB media as FAT32, create /efi/boot directory and place the EFI shell v2 executable in there. Rename Shell.efi to Bootx64.efi. Now extract the following files from the to the root dir of the USB media: mpt3x64.rom, mptsas3.rom, sas3flash.efi. Take the updated SAS9300_8i_IT.bin and put it next to the other files. Safely remove the USB media and boot the server from it in UEFI mode.

  2. Once the EFI shell is ready, type:

  • fs0:
  • sas3flash.efi -list (write down the SAS address)
  • sas3flash.efi -o -e 6 (this is crucial to do now, to erase a portion of the flash memory)
  • sas3flash.efi -f SAS9300_8i_IT.bin -noreset
  • Once reset mode of the card is activated, remove J7 jumper / paper clip
  • reboot the server via console SW-reset option and boot once again from USB UEFI
  • back in EFI shell, sas3flash.efi -o -e 7 (erase flash memory compeletely)
  • Flash the firmware: sas3flash.efi -f SAS9300_8i_IT.bin -b mptsas3.rom -b mpt3x64.rom
  • Add back the SAS address via sas3flash.efi -o -sasadd 50060XXXXXXXXXXXX (the one you took note of before)
  • reboot the server and profit.

Now nothing stops us to get some ZFS going. This guide wouldn’t have been possible without and in no particular order: broadcom asterisks, lack of documentation, Thomas Krenn Wiki, legacy TrueNAS forums that led me onto the right path and of course the OG servethehome guide which I modified to work for my case. I hope this helps someone out there from damaging their floor, or their head, or having to buy a new RAID card.


Important links:
Broadcom LSI3008 reference:
Original servethehome guide which I modified:

Well done :slight_smile:


Some more resources I used:
Thomas Krenn WIki
The EFI Shell v2 executable you can get from here: