Boot UEFI Shell on Intel S1200KPR

Today I needed a UEFI Shell to update the firmware on my LSI9211-8i controller but I was unable to find any menu entry
in the BIOS to start the shell.
After googling I just found this post in the Intel support community but without a solution.

After some more googling and trial-and-error testing I found this solution working for me:

  1. Format your USB stick with FAT32
  2. Create this folder structure on the stick: "EFI\BOOT"
  3. Download Intel's Tianocore UEFI Shell 1.0 and rename the file to "BOOTX64.EFI"
  4. Copy "BOOTX64.EFI" to "EFI\BOOT" on your stick
  5. Enter the BIOS (F2), go to "Boot" -> "UEFI Boot" and enable it:

  6. Plugin in your USB stick, boot and hit F10 to enter the boot menu. You should now see something like "UEFI: FAT32 File System":

  7. Press enter the shell will start. When loaded type "fs0:" to switch to the USB stick file system:

  8. Do whatever you like Cool

     

Flash IBM ServeRAID M1015 to LSI9211-8i with UEFI mainboard

Note: This is based on Pieter's post on servethehome.com and describe how I managed to flash my M1015 card with a UEFI based ASUS mainboard.

Step 1: Get the firmware and flash tool
Download this zip archive and extract it somewhere and your hard drive: M1015_to_LSI9211-8i.zip (12.70 mb)
The firmware in this package is already the latest release P15 (November 2012) by LSI.
You can check here if there is a never version available when you read this.
I also added Intel's Tianocore EFI Shell 1.0 (shellx64.efi) that we need later for flashing.

Step 2: Get the SAS address of your card
We need this address later for flashing and you can find it on a green sticker on the backside of the card.
It should start with "500605B" fallowed by some hyphen separated groups of digits and letters.
Take a photo or write it somewhere down:

Step 3: Prepare the FreeDOS USB boot stick
Download the FreeDOS 1.1 USB Boot Image here and the Win32 Disk Imager here.
Open "FreeDOS-1.1-USB-Boot.img.bz2" with 7zip or Winrar and extract the "FreeDOS-1.1-USB-Boot.img" image file.
Start the Win32 Disk Imager, select the extracted image file and your USB stick and press "Write":

When done copy all the file from the extracted firmware archive on the top to the root of the USB stick (should now named like "FREEDOS1~1A").

Step 4: Delete the existing firmware from the chip
Restart you computer and boot from the stick (I have to press "F8" to enter the boot menu).
When started enter this two commands:

megarec -writesbr 0 sbrempty.bin
megarec -cleanflash 0

Step 5: Flash the new firmware
Now comes the tricky part.
When using the "sas2flash.exe" from FreeDOS you will get an error like "ERROR: Failed to initialise PAL. Exiting Program."
In order to flash with a UEFI mainboard we need to use the "sas2flash.efi" file that require to execute it from a EFI shell.
As I already said on the top the firmware archive contains a file named "shellx64.efi" this is such a shell.
My mainboard (ASUS Maximus V Extreme) want this "shellx64.efi" file on the root of the stick, however if you have another manufacturer you probably have to search how to start this shell.

In my case I need to enter the UEFI (pressing "Delete" on start up) click "Exit" and select "Launch EFI Shell from filesystem device":

When the shell has been loaded enter "fs0:" to switch to the USB root directory. Your screen should now look like this:

Now enter this to flash the card into the LSI9211-IT mode (pass through, no RAID):

sas2flsh.efi -o -f 2118it.bin -b mptsas2.rom
sas2flsh.efi -o -sasadd 500605b[THE REST OF YOU ADDRESS WITHOUT HYPHENS]

To flash other modes take a look at Pieter's post on the top.

You're done
When you now reboot you should see the new firmware on the card: