Re-flashing an LSI MegaRAID

Content originally from ServeTheHome. Link

How to update the firmware on a MegaRAID card like a IBM M1015 on a UEFI system. This is for IT-Mode.

Download Necessary Files

a) LSI-9211-8i.zip (Custom Flashing Tools)
b) Rufus (Simple Free Bootable USB Creation Tool)
c) ATI downloads (Click Firmware. Download the following:
Installer_P##_for_UEFI (## stands for latest current firmware)
9211-8i_Package_P##_IR_IT_Firmware_BIOS_for_MSDOS_Windows (## stands for latest current firmware)

Prepare USB Flash Drive

a) Prepare USB Flash Drive with Rufus. Create bootable drive with the following settings: Volume Label: SAS2008, FAT32, MS-DOS, Deselect "Create extended label and icon files"
b) Open LSI-9211-8i.zip and extract JUST THE FILES to the root of the flash drive. IGNORE all of the folders as they are unnecessary.
c) Open 'Installer_P##_for_UEFI.zip' and locate the "sas2flash.efi" file and extract just that file to the root of the flash drive. Overwrite when asked.
d) Open '9211-8i_Package_P##_IR_IT_Firmware_BIOS_for_MSDOS_Windows.zip' and the navigate to the 'Firmware' folder. Locate the '2118it.bin' file and extract just that file to the root of the flash drive. Overwrite when asked. Then navigate to the 'sasbios_rel' folder and extract both 'mptsas2.rom' & 'mptbios.txt' to the root of the flash drive. Overwrite when asked.
e) Safely eject the USB Flash Drive.

Flashing The HBA Cards

Connect USB flash drive to the server in a USB 2/1.1/1 port (Avoid USB 3.0 port).

To get current card address (but only works if the card is already cross-flashed to LSI, otherwise write down the address printed on a sticker on the card itself).

Boot from the flash drive via UEFI (F11 on Super Micro boards, then select “UEFI: Built-in EFI Shell”)
Type "fs0:" to access USB drive. (Note: May have to type "map -b" first to determine device name if you have several USB drives.)
Type "sas2flash.efi -listall" (Lists all SAS cards installed, for me 0 was first card and 1 was the second)
Type "sas2flash.efi -c 0 -list" (To get SAS Address of the first card, write it down or take picture with phone)
Type "sas2flash.efi -c 1 -list" (To get SAS Address of the second card, write it down or take picture with phone)

To cross-flash...

Reboot the system but this time boot to the USB Flash Drive via DOS (normal/non UEFI).
Type: “megarec -writesbr 0 sbrempty.bin” (Writes an empty sbr to for card #1)
Type: “megarec -cleanflash 0” (Erases controller flash for card #1)
Type: “megarec -writesbr 1 sbrempty.bin” (Writes an empty sbr to for card #2)
Type: “megarec -cleanflash 1” (Erases controller flash for card #2)
Reboot the system and again boot from the flash drive via UEFI . (F11 on Super Micro boards, then select “UEFI: Built-in EFI Shell”)
Type "fs0:" to access USB drive. (Note: May have to type "map -b" first to determine device name if you have several USB drives.)
Type: “sas2flash.efi -c 0 -o -f 2118it.bin” (Flash new firmware with IT-Mode for card #1)
Optional: If you want the HBA Boot BIOS then type: "sas2flash.efi -c 0 -o -b mptsas2.rom" (For card #1) [I skipped this since I do not need it for my use.]
Type: “sas2flash.efi -c 0 -o -sasadd 500605B#########” (Program SAS Address for card #1, replace #'s with what your wrote down for the first card. Put numbers only, skip the dashes/hyphons.)
Optional: If you want the HBA Boot BIOS then type: "sas2flash.efi -c 1 -o -b mptsas2.rom" (For card #2) [I skipped this since I do not need it for my use.]
Type: “sas2flash.efi -c 1 -o -f 2118it.bin” (Flash new firmware with IT-Mode for card #2)
Type: “sas2flash.efi -c 1 -o -sasadd 500605B#########” (Program SAS Address for card #2, replace #'s with what your wrote down for the second card. Put numbers only, skip the dashes/hyphons.)
Verify Flash: "sas2flash.efi -listall"
Type: “exit”

Sources for Additional Troubleshooting:

Matt's Tutorial
STH Tutorial