FWFLASH(1M) Maintenance Commands FWFLASH(1M)


fwflash - firmware query and update utility


/usr/sbin/fwflash [-l [-c device_class | ALL ]]
| [-v] | [-h]

fwflash [-f file1,file2,file3,... | -r file]
[-y] [-d device_path]


The fwflash command writes a binary image file to supported flashable
devices attached to a Solaris host. It also provides the ability to read
firmware to a file if supported by the device. Because changing the
firmware in a device can have significant impact on the stability of a
system, only users with the privilege All are allowed to execute this
command. Users authorized to run fwflash can be granted the "Firmware
Flash Update" Rights Profile.

The first form of the command, above, provides information about devices.
It lists all devices currently available on the system that are supported
by fwflash for firmware upgrade. You can filter the list operation, to
display only specified classes of devices. The second form of the command
provides the operations to read or write the firmware images to specific


The following options are supported:

-c device_class

An optional parameter, valid only when used with the -l option. This
option causes the command to list only devices of a specific class
type. Currently supported classes are IB, ses, sesgen, or ALL. If -c
is not specified for the -loption, the class defaults to ALL.

-d dev_path

The dev_path is absolute path name of the device that the user wants
to modify with the -for -r operation. If the device cannot be found,
the command fails. If the -d option is specified, then either -f or
-r must also be specified.

-f file1,file2,file3,...

Specify the path to one or more binary firmware image files you want
to write to the device. fwflash will verify that each file is a valid
firmware image for the specified device. If it is not, the command
fails with an appropriate error message.

If multiple firmware image files are specified, each image is
verified and flashed to the device in the order given on the command
line. If any of the specified files cannot be successfully flashed,
then an appropriate message is displayed.

After a new firmware image is flashed to a device, a reboot is
required to correctly activate the new firmware.


Display the command line usage message for fwflash.


List the devices on a system available for firmware upgrade and
display information specific to each device or device class.

For InfiniBand (IB) devices, the list operation displays the guids
(Globally Unique Identifier) currently set for the HCA, as well as
the current firmware revision installed. There are four separate
guids on the HCA; two of them can be set with the same value.

For SCSI Enclosure Services (ses or sgen) devices, an identifying
target-port worldwide name is displayed, if available.

-r file

Specify the path to a file to create when reading the firmware from
the device. The -f and -r options are mutually exclusive.

Not all flashable devices support reading firmware images back from
the device. At present, only InfiniBand (IB) devices are supported
for this operation. A message will be displayed if the selected
device does not support this operation.


Display fwflash version information and exit.


Valid only when a flash read (-r) or write (-f) operation is
specified. This option causes fwflash not to prompt for confirmation
during operation and operate non-interactively. Note that there is no
option that allows you to forcibly flash an incompatible firmware
image onto a device.


Example 1: Entering Command Without Arguments

The following command shows fwflash when the command is entered without

example# fwflash
fwflash [-l [-c device_class | ALL]] | [-v] | [-h]
fwflash [-f file1,file2,file3,... | -r file] [-y] -d device_path

-l list flashable devices in this system
-c device_class limit search to a specific class
eg IB for InfiniBand, ses for SCSI Enclosures
-v print version number of fwflash utility
-h print this usage message

-f file1,file2,file3,...
firmware image file list to flash
-r file file to dump device firmware to
-y answer Yes/Y/y to prompts
-d device_path pathname of device to be flashed

If -d device_path is specified, then one of -f <files>
or -r <file> must also be specified

If multiple firmware images are required to be flashed
they must be listed together, separated by commas. The
images will be flashed in the order specified.

Example 2: Listing Devices Available to Flash

The following command lists the devices available to be flashed.

example# fwflash -l
List of available devices:
Device[0], /devices/pci@0,0/pci8086,3595@2/pci8086,32a@0,2/\
Class [IB]
GUID: System Image - 0002c901081e33b3
Node - 0000000000003446
Port 1 - 0002c901081e33b1
Port 2 - 0002c901081e33b2
Firmware revision: 3.3.0002
No hardware information available for this device

Device[1], /devices/pci@0,0/pci8086,3597@4/pci15b3,6278@0:devctl
Class [IB]
GUID: System Image - 0002c9010a99e3b3
Node - 0002c9010a99e3b0
Port 1 - 0002c9010a99e3b1
Port 2 - 0002c9010a99e3b2
Firmware revision: 4.8.00c8
Product : MTLP25208-CF256T (Lion cub)
PSID : MT_00B0000001

Alternatively, for a SAS Expander presented as a SCSI Enclosure Services
device , we might see output such as this:

example# fwflash -l
List of available devices:
Device[0] /devices/pci@0/pci@0/pci@2/scsi@0/ses@3,0:ses
Class [sgen]
Target port WWN : 500605b00002453d
Vendor : SUN
Product : 16Disk Backplane
Firmware revision: 5021

Example 3: Flash Upgrading an IB HCA Device

The following command flash upgrades an IB HCA device.

example# fwflash -f ./version.3.2.0000 \
-d /devices/pci@0,0/pci8086,3597@4/pci15b3,6278@0:devctl
About to update firmware on:
Continue (Y/N): Y

Updating . . . . . . . . . . . .
Done. New image will be active after the system is rebooted.

Note that you are prompted before the upgrading proceeds and that it is
mandatory that you reboot your host to activate the new firmware image.

The following command adds the -y option to the command.

example# fwflash -y -f ./version.3.2.0000 \
-d /devices/pci@0,0/pci8086,3597@4/pci15b3,6278@0:devctl
About to update firmware on:

Updating . . . . . . . . . . . .
Done. New image will be active after the system is rebooted.

Example 4: Reading Device Firmware to File

The command shown below reads the device firmware to a file. The command
uses the -y option so that read occurs without prompting.

example# fwflash -y -r /firmware.bin \
-d /devices/pci@1d,700000/pci@1/pci15b3,5a44@0:devctl
About to read firmware on:
to filename: /firmware.bin

Reading . . .

Example 5: When No Flashable Devices Are Found

The command output shown below informs the user that there are no
supported flashable devices found in the system:

example# fwflash -l
fwflash: No flashable devices attached with the ses driver in this system
fwflash: No flashable devices attached with the sgen driver in this system
fwflash: No flashable devices attached with the tavor driver in this system
fwflash: No flashable devices in this system

Each plugin found in /usr/lib/fwflash/identify is loaded in turn, and
walks the system device tree, determining whether any currently-attached
devices can be flashed. For the list of device types and drivers that are
currently supported, please see the NOTES section below.


The fwflash command returns the following values:






See attributes(5) for descriptions of the following attributes:

|Interface Stability | Committed |


attributes(5), hermon(7D), ses(7D), tavor(7D)

The InfiniBand Trade Association website, http://www.infinibandta.org

The SCSI Storage Interfaces committee website, http://www.t10.org

SCSI Primary Commands-4, SPC4

SCSI Enclosure Services-2, SES2

Serial Attached SCSI-2, SAS2


The fwflash command supports:

o InfiniBand Host Channel Adapters (IB HCAs) containing either
the AMD or the Intel parallel flash parts.

o SCSI Enclosure Services devices such as SAS Expanders,
attached with ses(7D) drivers.

November 4, 2008 FWFLASH(1M)