Please visit the updated guide here:
UPDATE: I’ve updated this post as of 2013-09-21. I’ve removed parts about the IBM M1015 and focused more on the Dell H310 and H200. I’ve also updated some of the links and added steps for flashing to the LSI P17 firmware from the Dell 6Gbps SAS HBA firmware which I highly recommend.
I just wanted to go through a few things I found while trying to flash IT firmware to my Dell Perc H310. This process is pretty well documented on various sites and forums for users that have an older motherboard with a typical BIOS. For users like myself who only had newer motherboards with UEFI it gets a little tricky. All of the information you need is out there but I had a hard time finding it in one place and with the detail needed to not fumble through the process. So let’s get down to what we’re going to need.
- Bootable USB (link). You can follow this post on using Rufus to create a quick FreeDOS bootable USB drive.
- For those with newer UEFI motherboards you’ll need bootx64.efi (link) (alternate link).
- You’ll want the version: Precompiled x86_64 UEFI Shell v1 binary.
- This should already be included in the LSI-9211-8i.zip I’ve provided in the next link.
- LSI-9211-8i.zip tools (link). (Thanks to mobilenvidia and Bryan Vyhmeister brycv.com for providing/finding a lot of the files and information used here)
- Both of these guys have provided great guides on flashing IBM M1015 cards and other great information.
- If you have a Dell Perc H310 and your computer won’t boot then you’ll need to cover PCIe pins B5 and B6. You can cover them with a thin piece of electrical tape. (Thanks to Andy_Steb from AVS for sharing this tip he found)
- Make sure you don’t cover the A pins on the other side.
B Pins that need to be covered - Your card may have a sticker on it marked SAS Address. If it does then write this down so it’s easily accessible.
Moving on to the steps:
- First thing we need to do is prepare the USB drive.
- Next we’ll want to reboot and boot into FreeDOS/MS-DOS.
- With the bootable USB drive inserted (may work best in a USB port on the back of the computer) a reboot may boot directly into the USB drive. If not you will need to select the drive from a boot menu. This will be different for every motherboard but should be similar.
- In the below screen shot you can see an ASUS UEFI BIOS Utility screen. At this screen you can hit F8 and select a boot device. The USB drive shows up indented and labeled Patriot Memory. Yours will most likely be labeled by whatever type of drive you have.
- In the below screen shot you can see a GIGABYTE UEFI BIOS screen. This is presented on the Save & Exit tab. The drive also shows up indented here and labeled Patriot Memory PMAP.
- Clicking or Double-clicking on Patriot Memory should boot into the DOS environment as shown below.
- Next we can begin flashing the card.
- If your card doesn’t have a sticker with the SAS Address you should be able to follow these steps to obtain the address.
- If you have a Dell Perc H310 then follow these steps.
- If you have a Dell Perc H200 then follow the below steps. (If you have a UEFI motherboard then see the steps below for UEFI motherboards)
- To save the SAS Address we’ll need to use sas2flsh.
sas2flsh -listall
- You should get a listing of all the cards installed.
- Use the number in the first column to get the SAS Address for the card.
sas2flsh -c 0 -list
- This should dump all the information for the card including the SAS Address.
- Write down the SAS Address and continue to the next steps.
- The steps for flashing the H310 and H200 will be the same.
megarec -writesbr 0 sbrempty.bin
- If this command fails it should be safe to proceed to step 2.
megarec -cleanflash 0
- Reboot the computer and boot back into the USB drive.
sas2flsh -o -f 6GBPSAS.FW
sas2flsh -o -sasadd 500xxxxxxxxxxxxx
(replace this address with the one you wrote down in the first steps).- Reboot the computer and boot back into the USB drive.
- The same steps will flash the card to a LSI 9211-8i
- sas2flsh -o -f 2118it.bin
- It should ask you if you want to flash anyway. Type Y to proceed.
- Reboot the computer back into Windows. (If you’re using Windows) You may need to remove the USB drive.
- In Windows make sure you’re using the LSI StorPort driver.
- Start > Right Click Computer > Properties > Device Manager > Expand Storage Controllers
- Start > Right Click Computer > Properties > Device Manager > Expand Storage Controllers
- If your controller doesn’t look like the one with the red arrow it will either look like one of the other 3 in this screen shot:
- If it looks like one of the other 3 drivers then right click on it and select Update Driver
- Select Browse my computer for driver software
- Click the Browse… button
- Browse to your USB drive and expand LSImpt_SAS2_P16 and select either the x64 or x86 folder depending on your OS.
- Click OK and then click Next. After it installs your driver should now say – StorPort
UEFI Motherboards
- Now if you have a UEFI motherboard and received an error like this:
"ERROR: Failed to initialize PAL. Exiting program."
when trying to run sas2flsh then you’re going to need to run the flashing steps in an efi shell. All of the other instructions should work fine. When you reboot after runningmegarec -cleanflash 0
is when you’ll need to enter the efi shell. - As noted above for the H200 cards you will need to run sas2flash from the UEFI shell in order to save the SAS Address. See step 30 for the commands to view the SAS Address.
- The EFI boot shell should already be on the USB drive.
- After the
megarec -cleanflash 0
completes instead of rebooting into the USB drive we’ll want to reboot into the UEFI shell. - Using the same two UEFI BIOS configuration screens I’ll show you how to enter the UEFI shell.
- With the GIGABYTE board we will just select the UEFI USB option highlighted below.
- With the ASUS boards you will most likely need to disable secure boot first. This could pertain to other boards as well.
- For the board I was using this was under the Boot tab and named Secure Boot in the Advanced section of the utility.
- Open that option and select Other OS.
- Save those settings and reboot back into the UEFI BIOS Utility.
- I had issues launching the UEFI shell from the below menu in the exit screen:
- You should be able to select Launch EFI Shell from filesystem device but that did not work for me.
- I was however able to select ASUS EZ Mode and then use F8 to select the boot device.
- Selecting UEFI: Patriot Memory this time.
- This should launch a shell that looks like this:
- From here you’ll need to select your USB drive.
- Type the following command to display the devices with a -b to pause on each full screen.
map -b
- As long as you have 1 USB drive inserted it will most likely be the first device that shows up labeled fs0.
- To select that device type:
fs0:
- Your
Shell>
prompt should change to afs0:\>
prompt. - Now you can run your sas2flash command. Note that the efi executable is named sas2flash.efi instead of sas2flsh.exe
- To save the SAS Address for the Perc H200 run the following commands:
sas2flash.efi -listall
- You should get a listing of all the cards installed.
- Use the number in the first column to get the SAS Address for the card.
sas2flash.efi -c 0 -list
- This should dump all the information for the card including the SAS Address.
- Write down the SAS Address and continue to the next steps.
sas2flash.efi -o -f 6GBPSAS.FW
sas2flash.efi -o -sasadd 500xxxxxxxxxxxxx
(replace this address with the one you wrote down in the first steps).- Reboot the computer and boot back into the UEFI shell.
- The same steps will flash the card to a LSI 9211-8i
sas2flash.efi -o -f 2118it.bin
- It should ask you if you want to flash anyway. Type Y to proceed.
- Reboot the computer back into Windows. (If you’re using Windows) You may need to remove the USB drive.
- If the steps for flashing the 2118it.bin do not work you can try a couple different methods.
- Try flashing the 2118p7.bin first and then flashing the 2118it.bin.
- Try flashing with the sas2flash-x64-p7 or sas2flash-x86-p7 in an elevated command prompt in Windows.
sas2flash-x64-p7 -o -f 2118it.bin
- After the
- At this point when you reboot you should not see any information about the card during POST and you shouldn’t need any drivers for the OS in order for the card to function. I still recommend making sure you’re running the LSI StorPort driver.
Please leave a comment if these instructions were helpful or if you found them to be too confusing. Thanks!
You can also reach me via PM on AVS Forum as techmattr or ServeTheHome Forums as just mattr.
thanks for the tips here ! B5 B6 helped me a lot !
On my motherboard (Asus Rampage III Extreme, X58), inserting a reflashed (IT) Dell Perc H310 disables memory slot B1. So at least one DIMM is “lost” and the system memory count goes down.
Taping over pins B5/B6 solves the problem.
Hopefully this will prevent some people from pulling their hair out 😉
I have two cards flashed with this method and they only detect one drive (out of 5 plugged in), what can be causing this?
I also stopped at the 6GBSASHBA step as trying to flash 2118it.bin resulted in “cannot flash from IR to IT” (or something similar).
Are you sure you have the right cable? I’ve seen that happen when people use a reverse breakout cable instead of a forward breakout cable. Also, what OS?
I assume you’re using a UEFI motherboard? The sas2flash utility hasn’t been completely ironed out for the UEFI flash from 6GbpsSASHBA firmware to 2118it firmware. I’m still searching for a better version of sas2flash.
sas2flash.efi distributed with LSI P19 was giving me the same “cannot flash it firmware over ir firmware” error when trying to flash 2118it.bin to an H310 in a Supermicro X10SAE. What worked was to use the sas2flash.efi in the base directory of mattr’s excellent zip collection:
http://www.mediafire.com/download/29q484590086wvh/LSI-9211-8i.zip
I also did sas2flash.efi -o -e 7 at one point to try to get past a “Failed to Validate Mfg Page 2” error. If you try this, make sure to first get your SAS address, and afterwards DO NOT REBOOT until you successfully flash *some* firmware to your card. After I ran the -e 7, I was unable to flash a firmware until I did sas2flash.efi -list. Then I could flash 6BGSAS.FW, and finally (using mattr’s sas2flash.efi) 2118it.bin. I don’t know if the -e 7 thing is needed. The critical thing is to use mattr’s ss2flash.efi and not the P19 one.
Good luck! Many thanks to mattr!!!
Older versions of sas2flash gave us the ability to override with a simple hit Y to accept. After P7 that was no longer an option. Using the older sas2flash version will allow us to do 2 things: first is bypass the “cannot flash it firmware over ir firmware” and the second is to flash the manufacture are with a different vendor. Looks like you ran into both of these issues. As you found out, the reason for the “Failed to Validate Mfg Page 2” error was generated because you needed to flash the Dell 6Gbps SAS HBA firmware prior to flashing the LSI firmware. I actually made a separate post about this error because I receive so many messages about it: https://techmattr.wordpress.com/2014/06/13/failed-to-validate-mfg-page-2/
The erase command is essentially doing the same thing as the cleanflash. Though cleanflash is more equivalent to doing a level 6 erase. A level 7 erase wipes everything including the mfg area. This doesn’t help in our flashing process though as the mfg is still on the card. It’s just not in the flash area. Our workaround is flashing the Dell 6Gbps SAS HBA firmware to trick sas2flash into thinking it’s a rebranded OEM LSI.
mattr, thanks for clarification, and again for your excellent firmware zip and this site. Getting LSI IT on the H310 was a big pain even with your help. I’m not sure I’d have managed without.
No problem! I’m glad you found it helpful.
I was having problem flashing to LSI’s firmware. I kept getting :
Writing Current Mfg Page 2 Settings to NVRAM.
Failed to Validate Mfg Page 2!
Firmware Returned Exception. IOCStatus=0x25, IOCLogInfo=0x0
Due to error remaining commands will not be executed.
Unable to Process Commands.
Exiting SAS2Flash.
This is usually from not wiping the card. Were you able to successfully execute the cleanflash command?
I did. I even tried to use the megarec command outside of the bat commands. It’s odd because i see a lot of people are having success.
I put up a post dealing specifically with this error: https://techmattr.wordpress.com/2014/06/13/failed-to-validate-mfg-page-2/
Any good ideas how to convert an IT firmware flashed H310 back to its original state as a H310 PERC raid controller?
I’m actually about to write up a tutorial on this exact topic. The simplest answer though is to just follow the same steps but with the H310 firmware. I haven’t done this in a while though and I can’t remember if there were any hangups. Hopefully I’ll have some time tonight to go through the process again and write something up.
I finally had a chance to write up a post for this:
https://techmattr.wordpress.com/2014/06/13/revert-your-perc-h310-back-to-its-dell-firmware/
I’ve been fighting with this for a couple weeks now, and I figured I’d give everyone a rundown on how this experience panned out. I’m going to leave out all the crap that didn’t work.
To start, I have an H200 rev.B2 card. I think the revision is an important part of what works and what doesn’t for people.
To start, I downloaded the tools zip file from here and pulled some specific files from it.
The files I needed were:
Megarec.exe + sbrempty.bin
2118p7.bin (p7)
2118it.bin (p17)
dos4gw.exe (megarec wont run without)
dos32a.exe (megarec wont run without)
I also used the p12 version of Sas2flsh.exe. I collected as many releases of this as I could find, and only p12 worked for me to put on the LSI firmware, though P15 did work for changing from RAID to HBA.
For the boot process, I used Rufus to format my flash drive as an MSDOS boot disk. (that program is a serious godsend)
And last but not least. I had to get the Dell A09 version of 6GBPSAS.fw to fix the card after everything was done.
The motherboard you try this in has a BIG effect on whether it works or not. I could NOT get this process to work under ANY EFI-based motherboard with LegacyOptRom support. I got PAL errors up the wazoo. I had to use a pc that was bios based; and NOT an Intel reference board. Even with the B5/6 tape trick, I couldn’t get the Intel motherboards to boot.
The command process I used was this:
1. Megarec -writesbr 0 sbrempty.bin
2. Megarec -cleanflash 0
REBOOT
3. sas2flsh -f 2118p7.bin (no -o option used. it would fail if i tried it)
REBOOT
4. sas2flsh -f 2118it.bin
At that point, the card read as an actual LSI 9211-8i with p17 firmware on it, but there was a problem. The A port stopped functioning, which reduced my card to 4 drives available!
I ended up reversing the process to go back to the Dell HBA firmware, and I got the A socket back, but then found out Drive A-0 wasn’t being detected as well. Turns out my card is faulty, which is why it was being sold.
With the headache that I’ve had trying to make this thing work, I’m not sure I want to try with my new H310 card coming. I think I’ll just stick with the preloaded fw and just delete the boot rom.
I forgot the line about adding back in the SAS Address:
After the cleanflash 0
sas2flsh -o -sasadd 5006xxx0xxxxxxxx
reboot
then flash the P7 bin
Thank you so much for this detailed how-to. Just flashed 2 cards to IT mode without any problems.
Matt,
Thanks for the write up, it is very instructional. I am getting an error in the UFEI prompt about not being able to flash an it over an ir firmware. I see some other people have had this problem, and you mention that the old version of sas2flash.efi should prompt for this. I am using the tools from the zip file on page one, and I am not getting a prompt. I get the same error from sas2flash-p17.efi, which I guess is the updated one and which you mention you expect would not be able to flash the it over the ir. Is using an elevated prompt in windows the only solution? I am doing this on a linux build and don’t have a windows install on this machine.
thanks
Sorry for the late reply. I’ve been away for a while. Typically this error is caused by some step being missed. Usually flashing the Dell SAS HBA firmware. I’m guessing you’ve found a resolution by now but you can try following the steps in this video post: https://techmattr.wordpress.com/2014/07/14/the-dell-perc-h310-to-lsi-9211-8i-it-video/ with the updated zip file. It has some better tools and you can follow step by step with the video. The video quality is poor so I appologize for that but it should help.
Beware of the LSI P20 firmware! There’s something totally strange going on when you use it. I have 3 Seagate 1TB SATA drives connected to my H200 and running P20 renders the disks unusable. You get tons of CRC errors. Formatting NTFS under Server 2012 R2 will always fail. And initialising a software raid in linux throws mpt2sas0: log_info(0x31080000): originator(PL), code(0x08), sub_code(0x0000) every second…
Wen’t back to P19 and everything is fine.
One huge caveat with these procedures; if your Dell server happens to have an H700 card in addition to the H200, then the “megarec -cleanflash 0” command will brick the H700 card.
I recommend removing any LSI-based RAID cards (like the H700 and H800) before trying this.
Hi I am facing some problem while installing 9211-8i with SAS HBA crossflashing or flashing to IT mode on Intel Desktop DH87MC Motherboard.
before this command everything works fine
sas2flsh -o -f 6GBPSAS.FW
after this i get an Error message http://www.rsifpl.com/data/error.jpg which i am not able to understand.
Please help
Have you already read this post?
https://techmattr.wordpress.com/2014/06/13/failed-to-validate-mfg-page-2/
Thanks for your guide!!
i’ve found sas2flash.efi version P5 here: http://docs.avagotech.com/docs/12350698
in the “LSI-9211-8i.zip” there is the P12 version only, which do not permit IT over IR “cannot flash it firmware over ir firmware” !!!
With P5 version i can convert a Dell Perc H200 in standard LSI IT Mode only with UEFI boot no DOS
sas2flash.efi -c 0 -list (and save the sas address)
sas2flash.efi -o -e 6 (erase flash)
sas2flash.efi -o -f 6GBPSAS.FW (flash original firmware)
sas2flash.efi -o -f 2118it.bin (flash LSI IT firmware, type “y” when prompt vendor mismatch)
sas2flash.efi -o -sasadd 500xxxxxxxxxxxxx
Best regards!!
The newer post with the video has an updated ZIP file with a ton of useful tools as well as all legacy versions of sas2flash. I need to updated the steps here soon and I’ll probably publish a new how post instead of editing the old one.
Thank you gab.lau for P5 efi version which did the trick with my h200! Thank you mattr & others for making the guides and bundle of the tools needed!
After following your steps I managed to get my H310 flashed to LSI 2118it.bin but when checking the adapter details using the list command it does not show the firmware product id with (IT) at the end like in your video. Is this something that can be overlooked or do I need to do something different?
I ran into no problems during the process and slipped nothing. Last firmware file flashed was 2118it.bin
After following your steps I managed to get my H310 flashed to LSI 2118it.bin but when checking the adapter details using the list command it does not show the firmware product id with (IT) at the end like in your video. Is this something that can be overlooked or do I need to do something different?
I ran into no problems during the process and skipped nothing. Last firmware file flashed was 2118it.bin
Does it say (IR)?
I had the same “problem”. Older version of sas2flsh.exe didn’t show product id with (IT). Newer version does show (IT) version.
My Dell Perc H200 has a green LED on the top that blinks on and off when powered up. Is this expected?
It is expected. It just means the ports are connected.
Thanks! And it should blink on and off every second or so the entire time its powered up?
For guys like me who stuck with “cannot flash IT over IR” in UEFI: just flash from Windows command line using sas2flash-x64-p7.exe. I’ve got Windows 10 installed, but you can try doing it from Windows installation media (WinPE). Bet it’d work.
Hi, I am trying to use same method to crossflash my PERC H330 but seem fail to do that. I can get my SAS address but can’t perform “megarec -writesbr 0 sbrempty.bin” or “megarec -cleanflash 0”
I booting my desktop into DOS mode to do the step. all related FW getting from LSI avagotech. I also tried to cover P5-6 pin and can boot on non-Dell machine, that is amazing!! But fail to flash LSI fw for my desktop to use. Do you have any suggestion or idea whats going on? Major issue when execute “megarec …..” it claims No adaptor card was found…” Thanks for your kindly help!
The Perc H330 is a LSI SAS3008 based card so SAS2008 cross flashing methods will not work.
noted and many thanks!
did you ever succeed in flashing the H330?
Any idea is there a way to cover PINs on RAID described below to bring it back from the death
PERC – H310 – Mini – Mono – http://store.flagshiptech.com/dell-poweredge-perc-h310-mini-mono-raid-controller-6gb-s-k09cj/
As you can see i assume Mini Mono is the same chip and after I flash it and deep dive then i realize what happen.
What I did is:
### 1. erase the card
megarec -writesbr 0 sbrempty.bin
megarec -cleanflash 0
### After successful wipe i reboot and got error below:
“Invalid PCIe card found in the Internal Storage slot!”
“System halted!”
### Also tried without success to:
1. remove controller and put it back again (yeaaa sometimes this things work)
2. Set BIOS from Legacy to EUFI Boot
3. Pray to work (didn’t help)
4. Tried controller on other server with EUFI boot
There is most likely a way to recover the card but since I don’t have one I can’t really do any testing with it. I’ve added a warning for people with those cards to not use these steps as several people around the webs have had issues.
On a Windows 10 I cannot get the driver to say StorPort.
My Dell H310 insists that it’s a Dell 6Gbps SAS HBA
I can choose a “LSI Adapter, SAS2 2008 Falcon” driver, with the versionnumber 2.0.79.80, the same driverversion as the “Dell 6Gbps…”
Will this do ok? Or what should I do to get the driver to say StorPort?
Check the event viewer for errors. If it’s clean then I wouldn’t worry about which driver you’re using.
Thank you so much for this! I thought I had bricked my H200 using another method I found elsewhere, but I was able to recover and update to the latest firmware with these excellent instructions. If you’re ever in Rhode Island I’ll buy you a beer.