FWFLASH(8) Maintenance Commands and Procedures FWFLASH(8)
NAME
fwflash - firmware query and update utility
SYNOPSIS
/usr/sbin/fwflash [
-l [
-c device_class |
ALL ]]
| [
-v] | [
-h]
fwflash [
-f file1,
file2,
file3,... |
-r file]
[
-y] [
-d device_path]
DESCRIPTION
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 devices.
OPTIONS
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,
sd,
ufm, or
ALL. If
-c is not specified for the
-l option, the class defaults
to
ALL.
-d dev_path The
dev_path is the absolute path name of the device that the
user wants to modify with the
-f or
-r option. 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.
-h Display the command line usage message for
fwflash.
-l 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.
For
ufm(4D) based devices, identifying information such as PCI
identifiers and supported capabilities such as the ability to
read firmware images or slot information is reported. For each
firmware image on the device, each slot is displayed along with
information about the slot's version and attributes.
-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. A message will be displayed if the selected
device does not support this operation.
-v Display
fwflash version information and exit.
-y Valid only when a flash read (
-r) or write (
-f) option 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.
EXAMPLES
Example 1: Entering Command Without Arguments
The following command shows
fwflash output when the command is
entered without arguments.
example#
fwflash Usage:
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/\
pci15b3,5a46@c/pci15b3,5a44@0:devctl
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
Finally, for devices that support the system's upgradeable firmware
module APIs (see
ufm(4D)), one might see output like:
example#
fwflash -l List of available devices:
Device[0] /devices/pci@0,0/pci1022,1483@3,2/pci8086,390d@0
Class [ufm]
Vendor: Intel Corporation
Device: SSD 660P Series
Capabilities: Report
Image 0: Firmware
Slot 0 (-|w|a): 002C
Slot 1 (-|w|-): 002C
Device[1] /devices/pci@3d,0/pci1022,1483@3,1/pci1849,1521@0
Class [ufm]
Vendor: Intel Corporation
Device: I350 Gigabit Network Connection
Capabilities: Report, Read Image
Image 0: NVM
Slot 0 (r|w|a): 1.69
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:
/devices/pci@0,0/pci8086,3597@4/pci15b3,6278@0:devctl
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:
/devices/pci@0,0/pci8086,3597@4/pci15b3,6278@0:devctl
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:
/devices/pci@1d,700000/pci@1/pci15b3,5a44@0:devctl
to filename: ./firmware.bin
Reading . . .
Done.
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.
RETURN VALUES
The
fwflash command returns the following values:
0 Success
1 Failure
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
SEE ALSO
hermon(4D),
ses(4D),
tavor(4D),
ufm(4D),
attributes(7) 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 June 20, 2021 FWFLASH(8)