Saturday, May 06, 2023

Updating firmware of HPE Smart Array P440 SAS controller

Recently, I got myself a HPE Smart Array P440 SAS controller, which comes with 2GB of cache. It can be used in either RAID or HBA mode and controlled using HPE's ssacli command line tool.
 
Here, I will list the steps I took to update the firmware. Note that this was done on a HPE Proliant Microserver Gen8 running Proxmox, and I was logged in as root. See here for instructions on enabling HPE's repository in Debian, which allows the installation of the ssacli package. Remember to install the public keys here.

First, I checked the current version of the firmware by running
ssacli ctrl all show detail
which shows that the firmware is version 7.00
Smart Array P440 in Slot 1
   Bus Interface: PCI
   Slot: 1
   Serial Number: PDXXXXXXXXXXXX
   Cache Serial Number: PFXXXXXXXXXXXX
   Controller Status: OK
   Hardware Revision: B
   Firmware Version: 7.00
   Firmware Supports Online Firmware Activation: False
   Cache Board Present: False
   Controller Temperature (C): 46
   Cache Module Temperature (C): 31
   Number of Ports: 1 Internal only
   Driver Name: hpsa
   Driver Version: 3.4.20
   HBA Mode Enabled: True
   PCI Address (Domain:Bus:Device.Function): 0000:07:00.0
   Negotiated PCIe Data Rate: PCIe 1.0 x8 (2000 MB/s)
   Controller Mode: HBA
   Pending Controller Mode: HBA
   Controller Mode Reboot: Not Required
   Port Max Phy Rate Limiting Supported: False
   Current Power Mode: Balanced
   Survival Mode: Enabled
   Host Serial Number: SGXXXXXXXX
   Sanitize Erase Supported: True
   Primary Boot Volume: None
   Secondary Boot Volume: None


So I proceeded to download
Supplemental Update / Online ROM Flash Component for Linux (x64) - Smart Array and Smart HBA H240ar, H240nr, H240, H241, H244br, P240nr, P244br, P246br, P440ar, P440, P441, P542D, P741m, P840, P840ar, and P841
from here.

Next, I installed rpm2cpio package which is needed to extract the rpm on my Debian system.
apt install rpm2cpio
 
Extract the file by running
rpm2cpio firmware-smartarray-ea3138d8e8-7.20-1.1.x86_64.rpm | cpio -id

Go to the directory with the setup script
cd /usr/lib/x86_64-linux-gnu/firmware-smartarray-ea3138d8e8-7.20-1.1

Run the setup script
./setup

It will show a prompt
Supplemental Update / Online ROM Flash Component for Linux (x64) - Smart Array and Smart HBA H240ar, H240nr, H240, H241, H244br, P240nr, P244br, P246br, P440ar, P440, P441, P542D, P741m, P840, P840ar, and  P841 (7.20), searching...
1) Smart Array P440 in Slot 1 (7.00)
Select which devices to flash [#,#-#,(A)ll,(N)one]>

I entered 1, then it showed
Flashing Smart Array P440 in Slot 1 [ 7.00 -> 7.20 ]
 
After a while, it showed
Deferred flashes will be performed on next system reboot
============ Summary ============
Smart Component Finished

Summary Messages
================
Reboot needed to activate 1 new FW image

Exit Status: 1
Deferred flashes will be performed on next system reboot
A reboot is required to complete update.


After rebooting the system, I ran
ssacli ctrl all show detail
to make sure that the firmware has been properly updated.
Smart Array P440 in Slot 1
   Bus Interface: PCI
   Slot: 1
   Serial Number: PDXXXXXXXXXXXX
   Cache Serial Number: PFXXXXXXXXXXXX
   Controller Status: OK
   Hardware Revision: B
   Firmware Version: 7.20
   Firmware Supports Online Firmware Activation: False
   Cache Board Present: False
   Controller Temperature (C): 47
   Cache Module Temperature (C): 32
   Number of Ports: 1 Internal only
   Driver Name: hpsa
   Driver Version: 3.4.20
   HBA Mode Enabled: True
   PCI Address (Domain:Bus:Device.Function): 0000:07:00.0
   Negotiated PCIe Data Rate: PCIe 1.0 x8 (2000 MB/s)
   Controller Mode: HBA
   Pending Controller Mode: HBA
   Controller Mode Reboot: Not Required
   Port Max Phy Rate Limiting Supported: False
   Current Power Mode: Balanced
   Survival Mode: Enabled
   Host Serial Number: SGXXXXXXXX
   Sanitize Erase Supported: True
   Primary Boot Volume: None
   Secondary Boot Volume: None

Yes, the card has been successfully updated to version 7.20 of the firmware!

Note: The card has been set to HBA mode previously using
ssacli controller slot=1 modify hbamode=on forced
However, I have yet to actually use this card in any of my servers since I have another HP HBA card (HP LSI 9217-4i4e flashed to IT mode) that I am using in my ML110 Gen9 server passed through to my TrueNAS VM.

No comments: