Oracle Solaris Firmware Flash Utility


Oracle provides a Firmware Flash Utility for updating certain types of firmware on SPARC and X64 based platforms running Solaris 10 10/08 or later. A manual page [firmwareflash(1m)] is provided for reference on the firmwareflash utility usage. The firmwareflash utility is available and bundled with Solaris 11 11/11 and later releases as the fwflash(1M) command.

The utility allows customers to upgrade the SAS expander, certain disk and Infiniband HCA firmware on the following supported systems.

Supported Systems and Devices

  • ses(7d)/sgen(7d) Supported Systems (non-exhaustive)

    The supported systems include:
    Sun Fire T5140/T5240 and other systems which report a "16Disk Backplane".
    Sun Storage J4200
    Sun Storage J4300
    Sun Storage J4400
    Sun Storage J4500
    Sun Storage J4650
    Sun Storage J5100
    Storage blades including:
    • NEM P 10Gbe x12
    • NEM P 10Gbe x10
    • Blade Storage
    • NEM Plus

  • sd(7d) Supported Devices

    Firmwareflash should support any sd(7d) attached device, as long as the device node under sd(7d) is a distinct physical device and not a component in a hardware raid volume.

  • InfiniBand HCAs

    Firmwareflash supports Mellanox devices.

Required Patches

We strongly suggest you update your operating system to the newest patches so that you can benefit from the latest features. If you encounter issues when flashing SAS expander firmware, please install the following patch:

SPARC systems require: 138888-05 or later
X64 systems require: 138889-05 or later

(Examples shown are only for SPARC)

# patchadd -p | grep 138888


You can obtain the patches from My Oracle Support. Download the patch to /tmp and install on your system.

Install the required patch:

# patchadd /tmp/138888-05


Reboot your system after patch installation:

# reboot


Installation Instructions

Download the Firmware Flash Utility 2.1 for SPARC or X86 package. Save the downloaded tar archive into /tmp and extract the package.

# tar -xvf /tmp/SUNWfirmwareflash-2_1-sparc.tar


Install the Firmware Flash Utility package on your system.

# pkgadd -d /tmp SUNWfirmwareflash


Use the firmwareflash utility to list all the flashable ses devices in the system.

Flashable nodes will look similar to this:

# /usr/sbin/firmwareflash -l
List of available devices:
Device[0]                       /devices/pci@0/pci@0/pci@9/LSILogic,sas@/sd@0,0:c,raw
  Class [sd]                    /dev/rdsk/c3t0d0s2
        Vendor                  : MARVELL
        Product                 : SD88SA02
        Firmware revision       : DP07
        Inquiry Serial Number   : 0847M000YW
        GUID                    : (not supported)

Device[1]                       /devices/pci@0/pci@0/pci@9/LSILogic,sas@0/sd@1,0:c,raw
  Class [sd]                    /dev/rdsk/c3t1d0s2
        Vendor                  : MARVELL
        Product                 : SD88SA02
        Firmware revision       : MP02
        Inquiry Serial Number   : 0847M000YT
        GUID                    : (not supported)

Device[100] /devices/pci@0/pci@0/pci@2/LSILogic,sas@0/ses@4,0:0
  Class [ses]
        Vendor                 : SUN
        Product                : NEM Plus
        Firmware revision      : 502A
        Chassis Serial Number  : 50800200002e9540
        Target-port identifier : 50800200002e957d

Device[101] /devices/pci@0/pci@0/pci@2/LSILogic,sas@0/ses@d,0:0
  Class [ses]
        Vendor                 : SUN
        Product                : Blade Storage
        Firmware revision      : 502A
        Chassis Serial Number  : 508002000067ca80
        Target-port identifier : 508002000067cafd


If you have InfiniBand devices on your system, the output would look similar to:

# /usr/sbin/firmwareflash -l
List of available devices: 
 Device[0] /devices/pci@0,0/pci10de,377@f/pci15b3,5@0:devctl
 Class [IB]
         GUID: System Image - 0002c9030001c8f1
                 Node Image - 0002c9030001c8ee
                 Port 1     - 0002c9030001c8ef
                 Port 2     - 0002c9030001c8f0
         Firmware revision  : 2.6.000
         Product            : MHGH28-XTC (Eagle DDR)
         PSID               : MT_04A0110002

Device[100]                      /devices/pci@0,0/pci108e,534b@5/disk@0,0:c,raw
  Class [sd]                     /dev/rdsk/c1t0d0s2
         Vendor                  : SEAGATE
         Product                 : ST35000N
         Firmware revision       : 3AZQ
         Inquiry Serial Number   : 5QG2A50X
         GUID                    : (not supported)

Device[101]                      /devices/pci@0,0/pci108e,534b@5/disk@1,0:c,raw
   Class [sd]                    /dev/rdsk/c1t1d0s2
         Vendor                  : SEAGATE
         Product                 : ST380013AS
         Firmware revision       : 3.42
         Inquiry Serial Number   : (not supported)
         GUID                    : (not supported)

Device[200] /devices/pci@0,0/pci10de,376@a/pci15b3,6278@0:devctl
   Class [IB]
         GUID: System Image - 0002c90200244503
                 Node Image - 0002c90200244500
                 Port 1     - 0002c90200244501
                 Port 2     - 0002c90200244502
         Firmware revision : 4.7.600
         Product         : MHEA28-1TC
         PSID            : MT_02F0110001


Obtain the correct firmware flash image files for your system from your Oracle Support representative.

Flash the firmware onto each applicable ses device.

# /usr/sbin/firmwareflash -d <ses device path> -f <bootrecord>,<mfgImg>,<core fw>


Note that you will need the full device path to complete this operation. See the example output in the steps above for details.

The <bootrecord> filename will look similar to filename.rxp

The <mfgImg> filename will look similar to mfgImageCust03V.bin

The <core fw> filename will look similar to sasxfwnv.

Upgrade example for SAS expander firmware attached via ses(7d):

# firmwareflash -d /devices/pci@0/pci@0/pci@2/LSILogic,sas@0/ses@d,0:0 -f /path/to/firmware/file.fw


Upgrade example for firmware attached via sd(7d):

# firmwareflash -d /devices/pci@0/pci@0/pci@9/LSILogic,sas@0/sd@0,0:c,raw -f /path/to/firmware/file.bin


Upgrade example for InfiniBand HCA firmware:

# firmwareflash -d /devices/pci@0,0/pci10de,376@a/pci15b3,6278@0:devctl -f /path/to/HCAfirmware/file.bin


You will be prompted to confirm that this device is the one you wish to flash, and whether you want to continue.

You may notice that your ses(7d) device disappears for up to a minute and then returns. In order to properly ensure that your new firmware image is activated, you might need to reboot the host system.

During the flashing process you should expect to see entries in /var/adm/messages about your ses device going offline and coming online. These messages are normal and expected.

If firmwareflash does not successfully flash each image, repeat the flash operation separately for the images which did not work. It might be necessary to wait for up to 90 seconds after the previous flash operation has concluded before flashing the next image onto the ses node. Rebooting the system to run the newly flashed firmware is advised:

# reboot