Not-so random thoughts on LSI HBAs again (#P34F1)
A couple months ago I scraped on the surface of the topic of LSI debranding/crossflashing. Now’s a good time to visit that again, since I got another branded LSI card that I wanted free of the manufacturers old firmware and the “hey look at meeee, I’m a veeeery special controller” look in any device tree. Yes, we know you’re special, but the annoying kind of special. You’ve likely been the default card in tens of thousands of servers or the only (supported) choice people had when opting for external SAS. You have custom, incompatible firmware that is no better than the stock firmware, annoying and impossible to upgrade without tools that have been pulled by the manufacturer. You need to stop that shit and become a regular, stock LSI card.
So here’s the protagonist: The HP H221. Also known as the 9207-8e, or board assembly H3-25280-02B, or SP# 738191-001, or DG# 729554, or AS# 729554-001, Rev 0A. Whatever stupid number you like or the customer demands. While the latter numbers should uniquely identify this very card, the H221 apparently does not. But I’ll keep that story for later.
Since I got the card literally for free, saving it from the scrap, I had a go with it. It reports the following:
sas2flash.exe -list -c 0 LSI Corporation SAS2 Flash Utility Version 20.00.00.00 (2014.09.18) Copyright (c) 2008-2014 LSI Corporation. All rights reserved Adapter Selected is a LSI SAS: SAS2308_2(D1) Controller Number : 0 Controller : SAS2308_2(D1) PCI Address : 00:09:00:00 SAS Address : 500605b-0-091d-37d0 NVDATA Version (Default) : 0f.00.00.16 NVDATA Version (Persistent) : 0f.00.00.16 Firmware Product ID : 0x2214 (IT) Firmware Version : 15.10.07.00 NVDATA Vendor : LSI NVDATA Product ID : Undefined BIOS Version : 07.25.06.00 UEFI BSD Version : N/A FCODE Version : N/A Board Name : H221 Board Assembly : H3-25280-02B Board Tracer Number : SV42932539 Finished Processing Commands Successfully. Exiting SAS2Flash.
As can be seen from the stickers on the back, Board Assembly is identical to one of the many ID numbers, and Board Tracer Number is the serial number of the thing. It also identifies as “SAS2308_2” but has no obvious LSI part number present (2308 is the controller family/generation).
A little fun with a Rufus FreeDOS bootable stick, the magic P14 (or older, but P14 worked) sas2flsh.exe in regular non-UEFI mode on my test mule X7DBE board and the hopefully most current firmware version 20, thankfully provided by a Supermicro repo instead of the heap of shit website of no-longer-LSI-no-longer-Avago-but-now-Broadcom later, the original .BAT file from said Supermicro firmware file runs smoothly on its own. No “NVDATA Image does not match Controller Chip Revision” errors as it did when the HP subvendor number was still present. Well, the script only does this, no magic hidden here:
@echo off sas2flsh -o -e 7 cls sas2flsh -f 2308T207.ROM sas2flsh -b mptsas2.rom sas2flsh -b x64sas2.rom cls sas2flsh -o -sasaddhi 5003048
So don’t show the script, erase everything (some only say -e 5, but tabula rasa does as well), then flash the regular P20 firmware and add legacy and UEFI boot things to it. Clear the screen twice for no good reason. In a last step, part of the SAS ID is restored, I’m not entirely sure if that’ll work without loss on purebred LSI cards…
With that done, and the original SAS ID fully restored (this time I did make a copy before erasing everything, ha!), the card now identifies as such:
sas2flash.exe -list -c 0 LSI Corporation SAS2 Flash Utility Version 20.00.00.00 (2014.09.18) Copyright (c) 2008-2014 LSI Corporation. All rights reserved Adapter Selected is a LSI SAS: SAS2308_1(D1) Controller Number : 0 Controller : SAS2308_1(D1) PCI Address : 00:09:00:00 SAS Address : 500605b-0-091d-37d0 NVDATA Version (Default) : 14.01.30.16 NVDATA Version (Persistent) : 14.01.30.16 Firmware Product ID : 0x2214 (IT) Firmware Version : 20.00.07.00 NVDATA Vendor : LSI NVDATA Product ID : LSI2308-IT BIOS Version : 07.39.02.00 UEFI BSD Version : 07.27.01.00 FCODE Version : N/A Board Name : LSI2308-IT Board Assembly : N/A Board Tracer Number : N/A Finished Processing Commands Successfully. Exiting SAS2Flash.
New firmware, new NVDATA, still not identifying as a specific LSI card, but only printing out the 2308 series information (Windows says “LSI Adapter, SAS2 2308 Mustang” as well). But it now shows SAS2308_1(D1) instead of SAS2308_2(D1) – am I downgrading the physical chip revision? dafuq?
Turns out there’s three revisions of that according to the compatibility database of VMware. There’s the SAS2308_1, SAS2308_2, and a SAS2308_3 – chances are, they do work exactly the same.
But I got curious and had a look. Contrary to other (ugh) branded LSI RAID cards that I got recently, this one has metal pushpins to secure the heat sink, I’m not sure if I ever had one of these. One of the RAID cards however suffered the loss of one of the plastic pushpins and therefore absolutely had to run hot. It could be that only the shipping to me caused them to finally release the heat stink, but judging from the PCB colour on the back of the LSI chip, the pin had to be broken for a long time, resulting in very poor heat sinking and the controller likely throttling in a desperate attempt to survive.
The heat sink uses one of those silicone pads that are more suitable for automated assembly; still, these pads age as well and the one shown here absolutely turned into old chewing gum. It took me a while to remove the remains from the chip using isopropyl alcohol, acetone and a drop of olive oil. I didn’t bother to do the same on the heatsink – the area not touching the silicon wouldn’t care, and the area directly in contact will just have to deal with the newly applied thermal grease.
On the bright side, this also means that the sil pad still would have done it’s job, as it hasn’t gone hard and brittle yet. Unlike this guy from a recently decommissioned Athlon 64 X2 system where the full CPU details can be read on the thermal grease still hanging on the heat sink surface… (chances are even the 2D barcode is still readable?)
Anyway, here’s the bare die with lots of fluff still present, sorry…
…and it’s an LSI 500007870 SAS2308-1 1426 (e1) EAR26A04
Made in Taiwan in 26th week of 2014, SAS2308-1, not -2. Unsure about the circled e1, since it does state revision D1.
Well, HP/HPE is not to be trusted anyways, which leads us back to the promised story. I’ll just link to Will Glynn who tried similar things with his H221 card (same, you’d think), but it turned out to be not a 9207-8e, but a 9205-8e instead. Note also the date of that post, November 2014 so barely after mine was only manufactured. So LSI likely switched to making 9207s instead of 9205s in 2014 or before, which are apparently pin compatible with each other, but the 9207 is PCIe 3.0 instead of 2.0. HP somehow managed to use these on the very same card, which is perfectly acceptable, but didn’t make it a new model, which is absolutely unacceptable. Instead, there’s now H221’s floating around that only support PCIe 2.0 and have different firmware, but when push comes to shove you’ll only know when these have been shipped to you and you fire up your machine in an attempt to upgrade their ancient firmware. Not that it should matter since both of them are only 6Gb/s cards and you’ll very likely use 12Gb/s ones if you need the performance nowadays, but boy, having two significantly different versions of an HBA out there really sucks.
I’ll side with Will on his verdict: Screw you, HP. Nice cards, really cheap nowadays, but wtf…?