Flashing an LSI 9211-8i from IR to IT firmware

dvl@

Developer
See also, my more recent work on flashing: https://forums.freebsd.org/threads/flashing-my-m1015.52387/

I have an LSI 9211-8i. I should have done this a long time ago, but the thing is running with default IR firmware. I think that is confirmed by this:

Code:
mps0: <LSI SAS2008> port 0x8000-0x80ff mem 0xfde3c000-0xfde3ffff,0xfde40000-0xfde7ffff irq 28 at device 0.0 on pci1
mps0: Firmware: 14.00.01.00, Driver: 14.00.00.01-fbsd
mps0: IOCCapabilities: 185c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,IR>

NOTE the IR. I think that refers to Integrated RAID.

What is IOCCapabilities? Anyone have a reference for those other capabilities?

I understand I want IT firmware. The process seems rather complex from what I've read.

Has anyone done this? Got pointers?

And the pciconf -lv output:

Code:
mps0@pci0:1:0:0:        class=0x010700 card=0x30201000 chip=0x00721000 rev=0x03 hdr=0x00
    vendor     = 'LSI Logic / Symbios Logic'
    device     = 'SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]'
    class      = mass storage
    subclass   = SAS
 
Last edited:
I've updated IT firmware on several mps(4) cards from within FreeBSD itself (single-user mode). There's a FreeBSD flashing binary on the LSI website.

I've tried to flash from IR to IT on an integrated mps(4) controller (part of the mobo), but I keep getting "cannot flash IT over IR" errors. Guessing this is due to it being integrated on the mobo.

Have not tried flashing from IR to IT on separate add-in cards.
 
phoenix said:
Have not tried flashing from IR to IT on separate add-in cards.

I'm confused by that. What do you mean, as opposed to your "I've updated firmware on several mps cards" sentence.
 
phoenix said:
I've updated firmware on several mps(4) cards from within FreeBSD itself (single-user mode). There's a FreeBSD flashing binary on the LSI website.

Yes, I saw that on their website (click on Support | SUPPORT AND DOWNLOADS | Firmware. Then look for Installer_P15_for_FreeBSD and download Installer_P15_for_FreeBSD.zip

That's just the installer. For the firmware, it seems not so intuitive.

Start on the LSI support page. I selected:

  1. Product Family = Host Bus Adaptors
  2. Product - LSI SAS 9211-8i
  3. Asset Type - Firmware

After the loading finishes, click on Firmware to expand it, and look for 9211_8i_Package_P15_IR_IT_Firmware_BIOS_for_MSDOS_Windows. Yes, that's the right one. You won't be using MSDOS or Windows.

In the unzipped directories, you'll find:
Code:
9211_8i_Package_P15_IR_IT_Firmware_BIOS_for_MSDOS_Windows/Firmware/HBA_9211_8i_IT/2118it.bin

I think that's the firmware file I need. Now, let me research the command to flash the card.
 
dvl@ said:
I'm confused by that. What do you mean, as opposed to your "I've updated firmware on several mps cards" sentence.

From IT 9 to IT 10 to IT 12 to IT 14, on SuperMicro AOC-USAS and AOC-USAS2 cards, as well as on LSI 9200-something cards.

IOW, flashing newer versions of the IT firmware on multiple cards.

The one time I tried to do an IR to IT flash it failed.

Edit: Sorry, just noticed I forgot "IT" in the first sentence of my original reply.
 
I've been reading the documentation and blog posts in preparation for flashing the card. It seems the card BIOS and the card firmware need to be upgraded at the same time.

The BIOS is at:

Code:
9211_8i_Package_P15_IR_IT_Firmware_BIOS_for_MSDOS_Windows/sasbios_rel/mptsas2.rom

The firmware is at:

Code:
9211_8i_Package_P15_IR_IT_Firmware_BIOS_for_MSDOS_Windows/Firmware/HBA_9211_8i_IT/2118it.bin

So it looks I run this command:

Code:
Installer_P15_for_FreeBSD/sas2flash_freebsd_amd64_rel/sas2flash

because I'm running AMD64 here:

Code:
$ head /var/run/dmesg.boot 
Copyright (c) 1992-2013 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.1-STABLE #0 r246949: Tue Feb 19 01:26:27 UTC 2013
    root@heckler.unixathome.org:/usr/obj/usr/src/sys/HECKLER amd64
CPU: AMD Opteron(tm) Processor 6128 (2000.04-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0x100f91  Family = 0x10  Model = 0x9  Stepping = 1
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x802009<SSE3,MON,CX16,POPCNT>

We'll see what I can come up with...
 
phoenix said:
I've tried to flash from IR to IT on an integrated mps(4) controller (part of the mobo), but I keep getting "cannot flash IT over IR" errors. Guessing this is due to it being integrated on the mobo.

Guess what, I get it too. See this screen shot.
 
I have spent the last two hours trying to create a bootable USB stick for DOS. I have failed in all attempts. I have no idea if it's the USB stick or the server not being able to boot from it. I'm giving up tonight.

This should not be difficult. Why is it? Thanks LSI. :/
 
On the LSI support page - LSI 9211-8i - go for firmware menu. You can download firmware which comes with SAS2Flash Utility Quick Reference Guide. Look at page 14 for instruction how to erase firmware from HBA. Before pushing different firmware (IT vs IR), current has to be erased. I guess you learned the hard way ;-)

I updated my FW from EFI, but it's pretty much the same procedure.
 
But I did try erasing. That failed. I was unable to do that from within FreeBSD.

NOTE: after your post, I rearranged the photos. One was out of order. So was the comment about 'abandoning this effort'.
 
FYI, initial testing shows that IT firmware is nearly 5% faster than IR firmware.
 
matoatlantis said:
On the LSI support page - LSI 9211-8i - go for firmware menu. You can download firmware which comes with SAS2Flash Utility Quick Reference Guide. Look at page 14 for instruction how to erase firmware from HBA. Before pushing different firmware (IT vs IR), current has to be erased. I guess you learned the hard way ;-)

I updated my FW from EFI, but it's pretty much the same procedure.

Hrm, seems I didn't read the instructions thoroughly enough. :) Thanks for the pointer. I'll give that a try, and see if I can move from IR to IT on the onboard controller.
 
phoenix said:
Hrm, seems I didn't read the instructions thoroughly enough. :) Thanks for the pointer. I'll give that a try, and see if I can move from IR to IT on the onboard controller.

Np. It might be worth saying that erase has several levels: the very last, 7 I think, wipes out the WWN of the controller too. I went for level 6 and updated BIOS too. Order has to be followed (BIOS vs FW), though I'm not sure which one came first :/. But sas* util shows which BIOS version is installed, you'll find out soon enough that something is not right.
 
Thanks for the tips and photo guide Dan. I just did two 9211-8i's myself.

Afterwards:
Code:
mps0: <LSI SAS2008> port 0xe000-0xe0ff mem 0xf7bc0000-0xf7bc3fff,0xf7b80000-0xf7bbffff irq 16 at device 0.0 on pci1
mps0: Firmware: 16.00.00.00, Driver: 14.00.00.01-fbsd
mps0: IOCCapabilities: 1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDisc>
mps1: <LSI SAS2008> port 0xd000-0xd0ff mem 0xf7ac0000-0xf7ac3fff,0xf7a80000-0xf7abffff irq 16 at device 0.0 on pci2
mps1: Firmware: 16.00.00.00, Driver: 14.00.00.01-fbsd
mps1: IOCCapabilities: 1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDisc>

Of course, now to fill it up; only 8 of the 16 drives are attached so far.
Code:
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
stuff    29T   163K  29.0T     0%  1.00x  ONLINE  -

The only quirk I had was that my motherboard had no EFI shell on it. I had to get shellx64.efi and place that on the root of my flash drive. The BIOS then enabled "Execute EFI shell" on its menu and voila!
 
I was not impressed with the throughput on my LSI 9211-8i compared to the 6 HDD connected directly to a motherboard on another system. I have not played with the LSI 9211-8i since.
 
My use case isn't exactly IO intensive. The 4TB Seagate nas drives are 5900RPM and nowhere near the top of the speed charts. Going by the specs comparisons to their desktop counterparts I'd guess that they dialed down some of the go-faster features to extend the longevity.

However, they do have what I wanted - TLER/ERC controls and the LSI controller had the quantity of ports I was after. I'm actually still two ports short so I might get a temporary PCI SATA card just for that.

Code:
# smartctl -l scterc /dev/da0
..
SCT Error Recovery Control:
           Read:     70 (7.0 seconds)
          Write:     70 (7.0 seconds)
 
Thanks for the info. Fixed my issue

I had many issues flashing the 9211-8i card. Used a bunch of websites. Final solution was to move to a PCI 2.0 slot and the sas2flash utility started working.


For Flashing the LSI 9211-8i from IT to IR firmware. Tried a Rufus built FreeDos with the SAS2flash apps (3 of them). Tried a MSDOS boot disk - No adapters present. Tried the Ultimate Boot CD - UEFI Loader - No Adapters present. Moved card to another PC, tried in Windows - Error about not being able to erase memory, even as Admin. Back to fist PC, created another UEFI disk - Received error - ERROR: Failed to initialize PAL. Exiting program.

Happened to read on TweakTown link below.

Had this weird feeling to change the card to another port. I was originally in the PCIe 3.0 x16 port, changed to a PCIe 2.0 x8 port and voila! The card showed up at POST, loaded up the shell and ran the sas2flash.efi and was able to flash the card from IR to IT mode.

Useful links:
http://blog.monsted.dk/?q=node/5
http://www.rootedconsulting.com/2013/05/20/lsi-it-and-ir-firmware-update/
http://forums.tweaktown.com/asrock/52097-z77-extreme4-how-boot-efi-shell.html
 
I have not yet tried this myself, and it's for a different OS, but if the Windows command line flash program is similar to the FreeBSD version, the -o flag may cause the flashing procedure to work on the LSI SAS2008 chips embedded on the SuperMicro motherboards:

http://www.servethehome.com/howto-flash-supermicro-x8si6f-lsi-sas-2008-controller-lsi-firmware/

As was discovered trying to flash the Intel SASUC8I using LSI firmware, my initial attempts at flashing did yield an error due to the fact that the Supermciro X8SI6-F’s onboard controller has a Supermicro vendor name instead of a LSI vendor name. Again all one needs to do is add a “-o” to the sasflash command line and everything works perfectly. Here is what the command and utility output looks like once the “-o” switch is added (the command for reference for the LSI Windows sasflash.exe utilityflashing both the firmware and BIOS is: “sas2flash -o -f 2118it.bin -b mptsas2.rom”):

That site also mentions the issue of flashing IT over IR versions:

[Ed. It seems like LSI decided to change the ability to flash IT firmware over IR firmware in later sas2flash.exe versions. See the LSI knowledgebase article if you have issues.]
with a link that no longer works, but may possibly refer to this or a similar knowledgebase article: A008352-073113 which seems to suggest that it can only be done from DOS: (pardon lack of table formatting below)
Flash From, Flash To, Motherboard used, SAS2Flash OS version, Command
Any version IT firmware, Any version IR firmware, Any except SMX9, DOS, (DOS): sas2flsh -o -e 6 [line break was here] sas2flsh -o -f <firmware>


Update: the following worked to upgrade the bios and firmware from a UEFI boot:

1. Get sas2flash.efi, current IT firmware and current BIOS from LSI web site
2. Put those on ordinary USB flash drive, and plug USB flash drive into computer
3. Do not boot from flash drive, but select UEFI boot from boot selector, which is f11 on SuperMicros
4. Select USB drive; type "map" in UEFI boot to show drives; mine was fs0, so I typed "fs0:" at UEFI prompt
5. Type "sas2flash -o -e 6" to erase most of the flash. Do not use erase level 7.
6. Type "sas2flash -o -f 2118it.bin -b mptsas2.rom" or the current versions to replace the firmware and BIOS. Watch progress on screen.
7. Type "sas2flash -list" to see upgraded versions

Do not power down during any of the process or it may brick the disk controller or motherboard if the controller is on it.
 
I know this is an old thread, but I just wanted to stop by and let all of you know how much this actually helped me.

Like most others here I tried to use the FreeBSD and Linux installer to flash my 9211-8i. Both installers failed to flash the card. If anyone has an answer as to why I am curious to know the reason. Flashing via an EFI shell seems to be the only method that works.

The steps provided by 'jeffc' worked flawlessly. I had to provide my own EFI shell since my motherboard did not. I got that here: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi

Here is a link to all the files I used to get my card flashed:
tar.gz: http://people.cs.uchicago.edu/~kauffman/lsi/9211-8i/9211-8i_IT-firmware_P20_20150730.tar.gz
all: http://people.cs.uchicago.edu/~kauffman/lsi/9211-8i/9211-8i_IT-firmware_P20_20150730/
I know most of you will probably just go to the Avago support site and download the files directly, but I figure you can at least get a more clear view of what files are required.

I hope this helps.
 
EFI or DOS is the way to go, do note the PAL error usually means that you need another motherboard to flash.
//Danne
 
I was not impressed with the throughput on my LSI 9211-8i compared to the 6 HDD connected directly to a motherboard on another system. I have not played with the LSI 9211-8i since.

For the record, this HBA has been in constant use for over three years.
 
I'm trying to flash my card from FreeDOS. I already erased it (level 6), but during flashing operation, it's stuck:
Code:
C:\FDSETUP>SAS2FLSH.EXE -o -f 2118IT.BIN
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18)
Copyright (c) 2008-2014 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 Version 20.00.07.00
                Firmware Image compatible with Controller.

                Valid NVDATA Image found.
                NVDATA Version 14.01.00.00
                Checking for a compatible NVData image...

                NVDATA Device ID and Chip Revision match verified.
                Valid Initialization Image verified.
                Valid BootLoader Image verified.

                Chip is in RESET state. Attempting Host Boot...

I waited for about half an hour, I also rebooted this server and even cold booted it, after powering off. The result is the same each time. I can stop it with ctrl-c, though.

The card is ASUS PIKE 2008, which is actually rebranded 9211-8i.
 
Back
Top