Not fun. I just spent like 1.5-2 hrs messing around with this pulling my hair out.

So I have an asus p8z77 which supports uefi. I just recently acquired a IBM Serveraid M1015 and read this awesome post about flashing different LSI
firmwares to the card to enable pass-through etc..

I decided I wanted to flash the “IR” firmware to get the best of both worlds. So I made my usb boot key:

Screenshot 2013 11 16 18 36 05

Then I copied over the sas2008 directory from this download link provided at that post: and just dropped it in the root of my usb key.

So my usb path looked like: “USB:sas2008? (don’t worry if you don’t have the efi directory…read on)

Screenshot 2013 11 16 18 40 45

However, upon booting to FreeDOS, I was able to execute the first two commands:

megarec -writesbr 0 sbrempty.bin 
megarec -cleanflash 0

^Those actually clear the current firmware on the card. When running the third command,

sas2flsh -o -f 2118ir.bin -b mptsas2.rom

I got the infamous:

Error: Failed to initialize PAL

What does this mean? So aparantly, since I have a UEFI BIOS, I need to use a “UEFI shell” (didn’t even know this existed) in order flash the firmware. What’s nice, the edi executable file, sas2flash.efi, is already available in that package (thanks very much to the person who packaged that together!).

However, my BIOS doesn’t have a native EFI shell to launch into….It does however have the capability (from the “Exit” menu) to load one from a USB key.

If you look at the screenshot above, I have an efi directory. What I did was download this shell from here (“Precompiled x86_64 UEFI Shell v1 binary”) and create a directory sturcture like this with the file: “USB:efibootbootx64.efi”

Now, all I actually had to do was boot directly to the USB key and this weird yellow shell automagically loaded. It looks something like this if your interested:

IMG 20131116 175937

(NOTE: That screenshot shows some commands failing…that was me trying the v2 Shell….aparantly it doesn’t have support for some commands we need! Use v1!!!)

There is also another person who had to do a very similar process to mine in which I got the following mostly from him…here.

Now once your in the shell, you can use the “map” command to see your disks, looking for the alias to the USB key itself. For me, it was fs0: so my process worked like this:

 mount fs0: fs0: 
 cd sas2008 
 sas2flash.efi -o -f 2118ir.bin -b mptsas2.rom (You should see some text saying its checking, flashing etc..) 
 sas2flash.efi -o -sasadd 500605b0xxxxxxxx (x= numbers for SAS address, this should also show a bit of text..should run fine if the above worked!) reboot/reset

!!!! That Worked !!!! Be sure to unplug the usb key. You now have the IR firmware. The drives (connected to the card) are default pass-through unless you explictly go in the utility (Ctrl+c at boot it seems) and setup a raid array.

For the record, here is an image of my sas address I gleamed off the card before actually putting it in my system:

Screenshot 2013 11 16 19 13 02

All in all, this was a PITA to figure out…glad I did…Hopefully this post helps some people. Of course, you could always just flash the card on a computer from 1998. That’s always an option :)

Mario Loria is a builder of diverse infrastructure with modern workloads on both bare-metal and cloud platforms. He's traversed roles in system administration, network engineering, and DevOps. You can learn more about him here.