As mentioned in previous posts (here and here), I had to flash the bios of my two LSI SAS controllers (9201-16i and 9211-8i) in order to solve a compatibility issue with my Asus Striker II Formula. I did flash the bios of both LSI from my Asus P9X79Pro which didn’t suffer the same incompatibility. However, I have never been able to flash the firmware of the LSI using my Asus P9X79Pro… This may only be made from a UEFI shell but I didn’t find any which was able to run the “flash” application of LSI.
Click to Read More
The IR version of LSI’s firmware offers support for RAID features while the IT version is a more “basic” controller. It’s therefore a bit faster than the IR version. As I don’t need hardware RAID for my file server (I am using a software RAID), I have no valid reason to keep the IR version.
First, I tried to simply flash the firmware with an IT version using the sas2flash.exe for windows provided in the package P8 got from LSI (see previous post). I did use the IT version found in that package to be aligned with the bios already downgraded. Unfortunately, a downgrade of the firmware is not supported by LSI (as reported further in this post, there is a solution: clean first the existing firmware)
sas2flash.exe -o -f 2118it.bin
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Advanced Mode Set
Adapter Selected is a LSI SAS: SAS2008(B2)
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Image compatible with Controller.
Valid NVDATA Image found.
ERROR: Cannot downgrade NVDATA version 0xd430005 to 0x7010003.
Firmware Image Validation Failed!
Due to error remaining commands will not be executed.
Unable to Process Commands.
Exiting SAS2Flash.
So, I tried to replace the current IR firmware with a more recent version of the IT firmware (found in the package P17)… Unfortunately, the message reported now that one may not “upgrade” from an IR version to an IT version (as reported further in this post, there is a solution: clean first the existing firmware):
sas2flash.exe -o -f 2118it.bin
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Advanced Mode Set
Adapter Selected is a LSI SAS: SAS2008(B2)
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Versions Compatible.
NVDATA Product ID and Vendor ID match verified.
Valid Initialization Image verified.
Valid BootLoader Image verified.
ERROR: Cannot Flash IT Firmware over IR Firmware!
Firmware Image Validation Failed!
Due to error remaining commands will not be executed.
Unable to Process Commands.
Exiting SAS2Flash.
So, looking a bit on LSI website, I quickly found I had to clean the firmware (and the bios) before trying to install the other one. Be really careful doing this as you won’t be able to boot anymore if the PC stops after the cleanup and before you had time to re-install a firmware and a bios!
Unfortunately, the command “sas2flash -o -e 6” required to clean the firmware failed to execute on my Asus P9X79Pro. It seems that this is quite common on motherboards with support for UEFI:
sas2flash.exe -o -e 6
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Advanced Mode Set
Adapter Selected is a LSI SAS: SAS2008(B2)
Executing Operation: Erase Flash
Erasing Flash Region…
Erase Flash Command not Supported on this platform.
Resetting Adapter…
Reset Successful!
Due to Exception Command not Executed. IOCStatus=0x1, IOCLogInfo=0x0
Finished Processing Commands Successfully.
Exiting SAS2Flash.
Based on the error message “Erase Flash Command not Supported on this platform”, I thought first that it was failing because running within Windows. So I tried next to execute this from DOS, booting on a USB key created with the great Rufus tool (which comes with a FreeDos. So you really don’t need anything else).
Unfortunately, it didn’t work either. The error was now:
ERROR: Failed to initialize PAL. Exiting Program
Again, one can find on the LSI knowledge base that as a workaround, you have to use the sas2flash version for UEFI: sas2flash.efi. It can be found easily in the download section. Indeed, firmware update via DOS is only possible when using H8 motherboards. With X9 motheroards an error message occurs during the writing process, due to the limited “option ROM”.
So, I did copy the file sas2flash.efi into the root of my USB key and did reboot my PC to enter in the UEFI bios system. Once in the advanced mode, I did click “Exit” in the top right corner and got a new menu with an option like “Launch EFI Shell from filesystem device”. This menu actually means that my Asus P9X79Pro does not have a built-in UEFI shell and that I have to provide one myself, e.g., on the USB Key. UEFI Shells can be found here. An adequate one (such as Precompiled x86_64 UEFI Shell v2 binary) must be copied into the root of the USB Key and renamed into Shellx64.efi. Without that shell on the USB key, the PC starts on the next boot disk (I.e.: Windows in my case)
It’s sometimes reported that one could have to copy the shell on the USB key in <USB>:/efi/boot/bootx64.efi instead ?! But it was not the case for me.
So once a Shellx64.efi on the root on my USB key, selecting “Launch EFI Shell from filesystem device” start a new interface where command can be typed. Ex.: “help -b” (without the quotes) to get the list of supported UEFI commands.
First, one has to switch onto the USB key to execute the LSI application sas2flash.efi. In my case, I only add to type “fs0:” (without the quotes) where fs0 is the default mount point of the USB key. Once there, I tried immediately “sas2flash.efi -o -e 6”, but I got “initshellapp: application not started from shell”.
For some unknown reasons, I can’t run that application and LSI support was not able to solve this issue. I still have to contact Asus to check if they can.
However, LSI support told me that I should try to flash the firmware from a motherboard without UEFI support. So I did move the controller back into my Asus Striker II Formula, which was now booting fine since the bios of the card was downgraded to a compatible version!
And on my Asus Striker II Formula, booting with the DOS Key, I did successfully clean the current IR firmware and flash the IT firmware instead.
sas2flsh.exe -o -e 6
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Advanced Mode Set
Adapter Selected is a LSI SAS: SAS2008(B2)
Executing Operation: Erase Flash
Erasing Flash Region…
Erase Flash Operation Successful!
Resetting Adapter…
Reset Successful!
Finished Processing Commands Successfully.
Exiting SAS2Flash.
sas2flsh.exe -o -f 2118it.bin -b mptsas2.rom
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Advanced Mode Set
Adapter Selected is a LSI SAS: SAS2008(B2)
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Image compatible with Controller.
Valid NVDATA Image found.
Valid Initialization Image verified.
Valid BootLoader Image verified.
Chip is in RESET state. Attempting Host Boot…
Firmware Host Boot Successful !
MfgPage2 Mismatch Detected.
Writing Current MfgPage2 Settings to NVRam
Updated MfgPage2 !
Resetting Adapter…
Adapter Reset Completed.
Chip is in RESET state. Performing Host Boot…
Firmware Host Boot Successful !
Beginning Firmware Download…
Firmware Download Successful.
Resetting Adapter…
Adapter Successfully Reset.
Executing Operation: Flash BIOS Image
Validating BIOS Image…
BIOS Header Signature is Valid
BIOS Image has a Valid Checksum.
BIOS PCI Structure Signature Valid.
BIOS Image Compatible with the SAS Controller.
Attempting to Flash BIOS Image…
Flash BIOS Image Successful.
Finished Processing Commands Successfully.
Exiting SAS2Flash.
sas2flsh.exe -listall
*******************************************************
LSI Corporation SAS2Flash Utility.
Version 8.00.00.00 (2010.11.01)
Copyright (c) 2009 – 2010 LSI Corporation. All rights reserved.
*******************************************************
Adapter Selected is a LSI SAS: SAS2008(B2)
Num Ctlr FW Ver NVDATA x86-BIOS PCI Addr
———————————————————————
0 SAS2008(B2) 08.00.00.00 07.01.00.03 07.15.00.00 00:04:00:00
Finished Processing Commands Successfully.
Exiting SAS2Flash.
100% OK !!!
I did next upgrade the firmware from 08.00.00.00 to 17.00.00.00 on my two card (LSI SAS 9201-16i and LSI SAS 9211-8i) and entered the management console (CTRL-C) to disable boot support on both card (as I boot from disks attached on on-board sata controllers). And now, they both work like a charm on my Asus Striker II Formula 🙂
[EDIT]: Reading again about UEFI support on a french web site dedicated to ASUS laptops, I found that “x86_64 UEFI Shell 2.0” is not supported by some ASUS UEFI firmware because it does not have the minimum expected version (???). It’a said on that forum that “x86_64 UEFI Shell 1.0.” is however well supported. I am quite sure I did test it without success (I was not presented with the interface but got a black screen). But it might be worth a second try… Possibly copying the shell into /boot/efi/shellx64.efi instead of the root (as suggested on this site)
Leave a Reply