Here is a writeup on how to crossflash / update the firmware and BIOS on various LSI SAS3008-based cards through UEFI, effectively turning them in to an LSI 9300-8i.

Multiple OEMs use the LSI SAS3008 controller for their RAID cards, which many people crossflash to repurpose them to simple pass-through Host Bus Adapters. This is essential for implementations of ZFS, md raid, Stablebit Drivepool, or Storage Spaces in Windows. Some of these OEM cards include the IBM ServeRAID M1215 and N2215.

Preparation

Gathering Files

  1. Visit the Broadcom software download page and download the following files:

    • Installer_P14_for_UEFI https://docs.broadcom.com/docs/Installer_P14_for_UEFI.zip
    • 9300_8i_Package_P16_IR_IT_FW_BIOS_for_MSDOS_WINDOWS https://docs.broadcom.com/docs/9300_8i_Package_P16_IR_IT_FW_BIOS_for_MSDOS_Windows.zip [1]
  2. Extract the .zip files and copy the following files onto the root of a USB flash drive formatted as FAT32:

  • sas3flash.efi
  • SAS9300_8i_IT.bin
  • mptsas3.rom
  • mpt3x64.rom

Your file structure should now look like this:

D:
|   sas3flash.efi
|   SAS9300_8i_IT.bin
|   mptsas3.rom
|   mpt3x64.rom

If your computer does not have a built-in UEFI shell, you will need to do the following:

D:
|   sas3flash.efi
|   SAS9300_8i_IT.bin
|   mptsas3.rom
|   mpt3x64.rom
└───efi
    └───boot
        └───Bootx64.efi

Before flashing

  1. On the SAS card, take note of the SAS Address, typically on the back of the card. It will probably be 500605B-x-xxxx-xxxx.

  2. Install a jumper on J6 on the card and install into the PCI-E slot so we can reset the firmware.

Flashing

  1. Plug in the USB drive and boot into UEFI Shell. You will probably need to press F11 or whatever key your motherboard manufacturer uses to reach the boot menu.

If your motherboard does not come with a built-in EFI shell and you added the Bootx64.efi to your flash drive, boot to your USB drive.

  1. After reaching the EFI Shell, change directory to the USB drive using fs0:. For me, it was "fs0:" but it could be "fs1:" or "fs2:". If you are unsure, you can display a list of files on that drive with ls.

  2. Show the SAS adapter info with:
    sas3flash.efi -list

  3. You will probably want to write down or take a photo of the SAS Address, Board Assembly, and Board Tracer Number.

If, after you give it the sas3flash.efi -list command it complains that it needs firmware before it will list info, then the card was wiped before you got it and you can just continue with the process.

  1. Reset the firmware with
    sas3flash.efi -f SAS9300_8i_IT.bin -noreset

  2. After that is done, power down the computer and remove the jumper from J6.

  3. Boot the computer back up and get back into the UEFI shell, then
    fs0:

  4. Erase the firmware flash region on the card
    sas3flash.efi -o -e 7

  5. Flash the controller (And if you want to be able to boot from a drive attached to the controller, flash the BIOS files too)

Without BIOS files:
sas3flash.efi -f SAS9300_8i_IT.bin
With BIOS files:
sas3flash.efi -f SAS9300_8i_IT.bin -b mptsas3.rom -b mpt3x64.rom

  1. Now flash the SAS address back onto the controller
    sas3flash.efi -o -sasadd 500605BXXXXXXXXXX
  2. Verify the SAS Address matches, and everything looks correct
    sas3flash.efi -list

Congratulations! After rebooting you are finished!


  1. Note: P16 should be replaced with the latest version available. At the time of writing, it is P16. ↩︎

Server  Storage  HBA 


Share This Post

Additional Posts
Christopher Burt

Read more posts by this author.


Comment