Friday, April 17, 2009

How to upgrade HBA firmware

In my case, I was to upgrade firmware on Emulex HBA for my ESX 3.5 Update 1 host. Here is my hardware:

Server: Dell PowerEdge 6950

HBA: Emulex LPe1150-E

  1. Download HBAnyware Library and Utilities Kit at Emulex Download section for Dell.

  2. Download Emulex LPe1150-E latest firmware (as of this writing, it is 2.80A4)

  3. Upload both the HBAnywhere and firmware to the ESX host

  4. Verify the firmware version before the upgrade
    • cat /proc/scsi/lpfc/*

  5. Install HBAnywhere by running
    • rpm -ivh elxvmwarecorekit-2.1a40-1.i386.rpm

    • The binary executable files will be store at /usr/sbin/hbanyware/

  6. List the HBA that are manageable by HBAnywhere
    • /usr/sbin/hbanyware/hbacmd ListHBAs

  7. Upgrade firmware in HBA
    • ./hbacmd Download 10:00:00:00:c9:63:f4:19 /location_of_firmware(etc, /root/wf280a4.all)

  8. Now we can verify the upgraded firmware version
    • cat /proc/scsi/lpfc/*

22 comments:

Sandy said...

U are my saviour !! I am a newbie to linux and had a project to upgrade my HBA firmware. I couldn't find a step by step procedure anyware, till I came across your blog. Thanks !

Anonymous said...

you're the man ! thank you, very useful

Anonymous said...

Thanks. All works great for me except that I get "Can't STAT "

Any help with this would be great.

Anonymous said...

That whole comment should be:
Can't STAT "FW_fileName"

Byron Zhao said...

I am not sure at which steps you ran into this error. Could you be more specific?

Anonymous said...

Sorry for the delay. I did not expect a response!

Everything goes well until this step:
Upgrade firmware in HBA
./hbacmd Download 10:00:00:00:c9:63:f4:19 /location_of_firmware(etc, /root/wf280a4.all)
The error is:
Can't STAT "FW_fileName.all"

In my case I am upgrading HP branded Emulex HBA's in a DL380G6 server. My .all file was
downloaded from HP and is the correct one for my HBA.

I would like this method to work so I have options, however, since I had trouble with
HBanyware I downloaded HP's FW ISO for my server model. This CD includes FW for the HBA.
Booting with this CD I was able to upgrade the HBA firmware.

Relevant links:
Firmware file I used with HBanyware
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp? lang=en&cc=us&prodNameId=1143949&prodTypeId=12169&prodSeriesId=1809835&swLang=8&taskId=135&sw EnvOID=54

HP Firmware ISO
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=15351&prodSeriesId=3884082&prodNameId=3884083&swEnvOID=4040&swLang=1 3&mode=2&taskId=135&swItem=MTX-a4ba2e9fefdf442f9531a2b095

Byron Zhao said...

Interesting. I only have Dell servers here with Emulex HBAs. I have never run into any problems during upgrade HBA firmwares. It is good to know. Thanks for sharing.

bktbo said...

I posted above about having problems upgrading and using the HP CD.

I had to replace an HBA that failed after upgrading with the HP disk. For this upgrade I used HBanyware and was successful.
I suspect that I used the incorrect hardware address in my earlier attempt. As the readout from cat /proc/.../* command shows a few HW addresses.
http://imgur.com/xIVQf.png
Thanks!

Byron Zhao said...

Thanks for following up on this and let me know.

Anonymous said...

How can you do it with ESXi ??

Byron Zhao said...

Personally I haven't upgrade any HBA firmware in any ESXi yet, but it shouldn't be too much different after you login into its Support mode, which would give you a console similar ESX service console. Refer here for how to get into ESXi's support mode: http://kb.vmware.com/kb/1017910

Anonymous said...

do you need to disable the fc switch ports before upgrading the firmware? does the ESX host need a reboot after the upgrade?

Byron Zhao said...

No, you don't need to disable the fiber switch ports, nor the ESX needs to be rebooted. But I would definitely recommend to put ESX into MM, so that no VMs are using those ports.

Anonymous said...

This is what I ran, but it just doesn't seem to be doing anything, it just freezes there until I hit ctrl+c

# ./hbacmd download 10:00:00:00:c9:f1:9d:26 /usr/sbin/hbanyware/zf282a4.all

Downloading /usr/sbin/hbanyware/zf282a4.all to hba 10:00:00:00:c9:f1:9d:26

any thoughts? am I missing something?

Anonymous said...

BTW, this is my HBA's details. I have also disabled the switch ports just to be sure nothing goes wrong to take the whole switch down.

# cat /proc/scsi/lpfc820/2
Emulex LightPulse Fibre Channel SCSI driver 8.2.0.30.49vmw
Emulex LPe11002-M4 4Gb 2port FC: PCIe SFF HBA on PCI bus 04 device 00 irq 185 port 0
BoardNum: 0
Firmware Version: 2.72A2 (Z3F2.72A2)
Portname: 10:00:00:00:c9:f1:9d:26 Nodename: 20:00:00:00:c9:f1:9d:26

SLI Rev: 3
NPIV Supported: VPIs max 100 VPIs used 0
RPIs max 512 RPIs used 3

Vport List:

Link Down

# cat /proc/scsi/lpfc820/3
Emulex LightPulse Fibre Channel SCSI driver 8.2.0.30.49vmw
Emulex LPe11002-M4 4Gb 2port FC: PCIe SFF HBA on PCI bus 04 device 01 irq 193 port 1
BoardNum: 1
Firmware Version: 2.72A2 (Z3F2.72A2)
Portname: 10:00:00:00:c9:f1:9d:27 Nodename: 20:00:00:00:c9:f1:9d:27

SLI Rev: 3
NPIV Supported: VPIs max 100 VPIs used 0
RPIs max 512 RPIs used 3

Vport List:

Link Down

Anonymous said...

Actually I think it did it. Maybe I was not patient enough. It is just so slow, take about 5-10 minutes for each port.

Byron Zhao said...

Glad you did it.

Attila said...

Hello Guys!

Can the firmware update be done online? While the storage is in use, filesystem residing on san storage are mounted and application is running?

Or it is good to umount them?

What's your opinion?

Byron Zhao said...

Attila, you don't need to umount the storage. However, for best practice, it would be a good idea to stop the application before upgrade the HBA firmware. For ESX servers, just put them into maintenance mode.

Attila said...

It's a "classic" server, not ESX, with application Oracle running on it. OS: RHEL AS 4.5

Adapter:
HP FC2142SR 4Gb PCI-e, SC, Fibre Channel Adapter
Model (ELN Model) A8002A (A8002A/FC2142SR (LPe1150))
FW level: 2.72a2

Getting downtime from customer is pretty hard, that's why i asked whether it is possible to done it online or not.

And many thanks for your quick reply! :)

Anonymous said...

Excellent post. Helped me on my way of updating the hba firmware. I would recommend not use the cat command but doing the hbacmd HBAAttrib to get the actual bios version and firmware version's. ALso gives alot of detail about the cards themselves. Make sure to do the bios also its the same command as hbacmd Download /xxxx.RPG file. Many sites do state to updrade the bios also when you should.

andyli said...

I think the following article tells more about how to check:
resolved linux check qlogic/emulex hba firmware version and model name type howto
http://www.doxer.org/learn-linux/resolved-linux-check-qlogicemulex-hba-firmware-version-and-model-name-type-howto/