Flashing HP H220 SAS card to latest FW

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Slovak

New Member
Jan 11, 2017
12
18
3
Documenting for anyone else struggling and for Google.

Bought an HP H220 card per special. Using it with Supermicro X10SDV-4C-TLN4F in U-NAS 800 with FreeNAS. Build thread to follow.

Card came flashed to IT mode, but with firmware 15, which seems to be the last supported FW from HP. Went to Supermicro to download the latest FW - at this time PH20.00.07.00-IT.

Tried using both the DOS boot and utilities and UEFI, no meaningful difference.
Per other advice, either copy the SAS address off the card or get it from the sas2flash utility which also comes with FreeNAS.
Code:
sas2flash -listall
sas2flash -c 0 -list
Initially I wanted to apply newest firmware atop the existing one, but the card seems to be vendor locked-in.
Code:
# Erase ROM
sas2flash -o -e 7

# Apply new FW
sas2flash -f 2308T207.ROM
At which point the card complains of inability to verify, and quits. Yes, without ability to boot itself (the card) or without applying new FW. Did I just brick my HBA?

I don't think this step is needed. Just documenting how to revert back.
Went to HP for the original FW for H220 (FW15.10.09.00), and from that download I extracted H220_IT.FW and MPTSAS2.ROM. That's the original setup. Boot again (DOS or UEFI) and use the above 2 files (not the ones from newer firmware).
Code:
sas2flash -o -f H220_IT.FW -b MPTSAS2.ROM
Card is back to "stock" as it first arrived. Phew. Not bricked.

The trick to applying latest LSI/Supermicro firmware turned out to be an older version of the sas2flash utility - which presumably doesn't verify the white label manufacturer and just treats it as LSI 2308 chipset card.

Downloaded version 14 of the FW from Supermicro's "Previous Releases" section

Create DOS boot disk or UEFI directory with:
sas2flash (version 14.00.00.00)
2308T207.ROM (latest version 20.00.07.00-IT)
Try it all again. Yes, using sas2flash (version 14) to apply version 20 firmware.
Code:
# Verify sas2flash version
sas2flash
# Output will indicate
# LSI Corporation SAS2 Flash Utility
# Version 14.00.00.00 (2012.07.05)

# Erase ROM
sas2flash -o -e 7

# Apply new FW
sas2flash -f 2308T207.ROM

# Register SAS address
sas2flash -o -sasadd XXXXXXXXXXX
Rejoice having the latest firmware on the H220 SAS card. Boot FreeNAS without complaints.
 

Evan

Well-Known Member
Jan 6, 2016
3,346
598
113
That's great to know.
If the H220 is an LSI2308, any idea what a H240 is ?
 

mervincm

Active Member
Jun 18, 2014
159
39
28
SuperMicro does not have the previous releases (v14) on the FTP anymore? alternate sources?
 

mervincm

Active Member
Jun 18, 2014
159
39
28
.efi? interesting, I have never used a UEFI shell before. My TS140 does not have one built into the bios, but I read that I can build a bootable USB stick.
I found a link that says its as easy as
1-download the UEFI shell (Unified Extensible Firmware Interface - ArchWiki)
2- copy it to eg a FAT 32 formatted USB in the folder \efi\boot\ , rename the file to bootx64.efi and have that USB boot first.
3- When it boots, the TS140 will fire-up the UEFI shell ( the bootx64.efi file)

I am not so clear on where to put the sas2flash.efi file, but I will try in simply in the root (hoping I don't have to insert it into the bootx64.exe)

anyway, opportunity to learn something new :) thank you!
 

BLinux

cat lover server enthusiast
Jul 7, 2016
2,669
1,081
113
artofserver.com
i was trying this with the Linux version of sas2flash today. i downloaded the P14 Linux installer, but it some how had version P10 of sas2flash in it. anyway, it worked. it's actually very straight forward and no need to do erase and reprogram SAS address. in linux, all i did was:

sas2flash -c 0 -f 9207-8.bin -b mptsas2.rom

this leaves the SAS address, Board Name (H220), Board assembly, and Board Tracer information intact; but it doesn't seem to bother anything. i usually use the DOS version of sas2flsh.exe, but the Linux version seems to run a lot faster at flashing. However, it is missing some features such as the -e option doesn't seem to work; that was why I didn't erase in the first place as I was trying to follow these steps here. But then I thought, let me just try flashing the LSI firmware anyway and it just worked! I've since hooked up 2 of these H220 w/ P20 LSI IT firmware to 16 drives and everything works fine.
 
  • Like
Reactions: antioch18

nthu9280

Well-Known Member
Feb 3, 2016
1,628
498
83
San Antonio, TX
this leaves the SAS address, Board Name (H220), Board assembly, and Board Tracer information intact; but it doesn't seem to bother anything. i usually use the DOS version of sas2flsh.exe, but the Linux version seems to run a lot faster at flashing. However, it is missing some features such as the -e option doesn't seem to work; that was why I didn't erase in the first place as I was trying to follow these steps here.
Here is a nice KB on flashing options:

Broadcom Limited

I've read in another LSI KB article for SAS3008 that said tracer# and Assembly number are needed for something. Asked the OP to be updated for LSI9340 flashing thread here on the form. Have not followed up to see if it was updated but they can also be programmed using sas2(3)flash.

Use the Erase command, which is available only in the advanced command set, to erase an entire region, as specified by a number. You cannot undo an erase operation. Syntax: SAS2Flash –o –e 1

1 NVSRAM
2 Backup firmware
3 Persistent configuration pages
4 Manufacturing area (MPB)
5 Boot services
6 Clean flash (erase everything except manufacturing area)
7 Erase complete flash
8 MegaRAID firmware

you can see the additional commands available sas2flash -? / sas2flash -o -?
 

BLinux

cat lover server enthusiast
Jul 7, 2016
2,669
1,081
113
artofserver.com
@nthu9280 ; thanks for that. i've actually read the entire sas2flash utility manual here:

SAS2Flash Utility Quick Reference Guide (291 KB)

As you'll notice in section 7.0:

7.0 Limitations of Operating Systems including Windows, Linux, and Solaris

Certain operating systems do not support all functionalities of the SAS2Flash utility due to limitations in their controller interface. The PAL operates as a gate in this area. If an operating system does not support a command, the PAL returns a code of invalid function. The Windows, Linux, and Solaris operating systems do not support commands that require the controller to be taken offline or require a firmware download of the boot loader. In addition, these operating system cannot flash any part that does not already have valid firmware loaded and running.
nonetheless, the linux version operates a lot faster (than DOS version), albeit with less capabilities, and was adequate for flashing the H220 to LSI IT firmware P20 in a single shot and no need to reprogram SAS address, etc.
 

nthu9280

Well-Known Member
Feb 3, 2016
1,628
498
83
San Antonio, TX
You are right. Non DOS/EFI versions of the tools have some limitations but should work fine for most of the use cases.
That's why I spent sometime to get sas2flash & sas2ircu work on my ESXi 6.5 host. I love the locate feature of sas2ircu even on IT mode controllers. I tinker with my homelab a lot so don't document which drive is in which slots :) so it's a life saver.

Sent from my Nexus 6 using Tapatalk
 

BLinux

cat lover server enthusiast
Jul 7, 2016
2,669
1,081
113
artofserver.com
You are right. Non DOS/EFI versions of the tools have some limitations but should work fine for most of the use cases.
That's why I spent sometime to get sas2flash & sas2ircu work on my ESXi 6.5 host. I love the locate feature of sas2ircu even on IT mode controllers. I tinker with my homelab a lot so don't document which drive is in which slots :) so it's a life saver.
Yes, but did you see that with the non DOS/EFI version, you can flash the H220 in 1 command and goes pretty fast too! No need to do the erase, and it preserves the SAS address info.
 
  • Like
Reactions: itronin

zeynel

Dream Large, Live Larger
Nov 4, 2015
505
116
43
48
i have some issues ,

when i flash the H220 to LSI FW20.0.0.7 or FW19.0

my esxi 6.5 server does not shows any Hard Drives.

but when i passthrough the controller to a VM (Windows / Ubuntu) the drives are listed.

p1.PNG p2.PNG

any ideas ?

Thanks in forward.
 

zeynel

Dream Large, Live Larger
Nov 4, 2015
505
116
43
48
i used now the firmware for 9207-8i , ESXi 6.5 sees now all hard drives
 

zeynel

Dream Large, Live Larger
Nov 4, 2015
505
116
43
48
the firmware from the link above. (supermicro)

but i run into other issues:

i passthrough now the controller with firmware P19, Write cache activation under windows server 2016 dont work for Toshiba drives (MD04ACA400)

Hitachi, Seagate have no problems.

i installed now DELL H310 Flashed to IT P19 Mode.

and all works fine now.