Updating Emulex boot code on Solaris hosts

I previously discussed updating Emulex adapter firmware, but didn’t touch on updating the adapter’s boot code. The boot code allows you to boot from a SAN device, and is a separate upgrade from the standard firmware. To upgrade the boot code, you can run the emlxadm download_boot command with the name of the boot code image:

emlxadm> download_boot /export/home/matty/TB202A2.PRG

Image Components: REL type size=50232
DWC file: BOOT: version=03812092, 2.02a2

Current: Boot: none
New: Boot: 2.02a2 50232 (0xc438) bytes

Are you sure you want to download this image? (y or n): y

Downloading…

Result: Operation successful.
Done.

emlxadm> get_boot_rev

Boot revision: LP10000DC 2.02a2



This post is a reference for myself, and I take ZERO responsibility for botched firmware updates. As with all information on this blog, use this information at your own risk (no warranties of any sort are provided).

Updating Emulex firmware on Solaris hosts

I’ve written about the Emulex emlxadm utility in the past, and how it can be used to view and manage adapters. In addition to viewing stats and configuration data, you can also use emlxadm to view and update firmware. To view the current firmware version, you can type “get_fw_rev” into the emlxadm shell:

emlxadm> get_fw_rev

Firmware revision: LP10000DC 1.81a1

If the firmware needs to be updated, you can run download_fcode with the path to the firmware image:

emlxadm> download_fcode /export/home/matty/emulex/firmware/1.92a1/td192a1.all

Image Components: NOP type
AWC file: KERN: version=ff801416, 1.40a6
DWC file: SLI2: version=07831991, 1.92a1
DWC prog: TEST: version=00f51051, 1.01a1
DWC prog: STUB: version=02881991, 1.92a1
DWC prog: SLI1: version=06831991, 1.92a1
DWC prog: SLI2: version=07831991, 1.92a1

Current: Fcode: none
New: Fcode: none 376064 (0x5bd00) bytes

Are you sure you want to download this image? (y or n): y

Downloading…

Result: Operation successful.
Done.

*NOTE: The new FCode version will not be activated until the host
is rebooted or a DR operation is performed on the adapter.

emlxadm> get_fw_rev

Firmware revision: LP10000DC 1.92a1

This post is a reference for myself, and I take ZERO responsibility for botched firmware updates. As with all information on this blog, use this information at your own risk (no warranties of any sort are provided).

Using the Emulex storage tools to manage Leadville controlled Emulex adapters

With the introduction of Solaris 10, the Sun leadville storage stack was integrated into Solaris. This means that you no longer need to download and install the SFS stack or third party drivers, and the native Solaris tools (e.g., iostat, mpathadm, fcinfo, luxadm, etc.) can be used to manage specific aspects of storage management. I would like to emphasize the word “specific,” since there are a number of management tasks that can’t be performed (or performed easily) with the built-in tools.

If you happen to be using Emulex host bus adapters with Solaris 10, you are in luck! Emulex provides the SFS drivers and emlxadm management tool, which can be used to supplement the tools provided with Solaris. The Emulex tools and drivers are provided by the EMLXemlxu package, which you can download from Emulex’s website. The pkgadd utility can be used to install the package, and it will place the management tools under the /opt/EMLXemlxu directory. To begin using the Emulex storage management tools, you can run the emlxadm utility without any options:

$ /opt/EMLXemlxu/bin/emlxadm

Available Emulex HBA's:

1.  /devices/pci@8,700000/lpfc@5/fp@0,0 (CONNECTED)
2.  /devices/pci@8,700000/lpfc@4/fp@0,0 (CONNECTED)
3.  /devices/pci@9,600000/lpfc@1/fp@0,0 (CONNECTED)
4.  /devices/pci@9,600000/lpfc@2/fp@0,0 (CONNECTED)

Enter an HBA number or zero to exit: 1

This will display the list of adapters that are installed on the system, and will allow you to select a specific adapter to manage. Once you select a specific HBA from the list, you can issue commands through the emlxadm shell to view or configure HBAs. To view the fcode, boot code and firmware versions installed on the detected HBAs, you can use the “get_fw_rev,” “get_fcode_rev” and “get_boot_rev” commands:

emlxadm> get_fw_rev

Firmware revision: LP9002L 3.93a0

emlxadm> get_fcode_rev

FCODE revision: LP9002L 1.41a4

emlxadm> get_boot_rev

Boot revision: LP9002L 5.00a5

To view HBA specific attributes such as the link speed, HBA state and the WWPN assigned to the card, you can run the “get_host_params” command:

emlxadm> get_host_params

Host:
          Dtype: 0
FC4_type[proto]: 0x00000120, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
0x00000000, 0x00000000
          State: Online
      Linkspeed: 2Gb
           D_id: 11b00
           LILP: 0
      Hard Addr: 0
           WWPN: 10000000c936560c
           WWNN: 20000000c936560c

To list the number of targets visible through a specific HBA, the “get_num_devs” command can be used:

emlxadm> get_num_devs

There are 3 devices reported on this port.

Since the fabric name server contains a slew of useful information, emlxadm provides a “ns” command to dump it’s contents:

emlxadm> ns

Nameserver: 
-----------------------------------------------------------------------------------
     TYPE: Lport
      PID: 011855 
     WWPN: 500104f0005f0276
PORT_NAME: (STK     T9940B          1.35)
     WWNN: 500104f0005f0275
NODE_NAME: (null)
      IPA: ffffffffffffffff
  IP_ADDR: 0.0.0.0
    CLASS: Class3
FC4_TYPES: 00000100,00000000,00000000,00000000,00000000,00000000,00000000,00000000 

-----------------------------------------------------------------------------------
     TYPE: Nport
      PID: 011900 
     WWPN: 500104f0005f027f
PORT_NAME: (STK     T9940B          1.35)
     WWNN: 500104f0005f027e
NODE_NAME: (null)
      IPA: ffffffffffffffff
  IP_ADDR: 0.0.0.0
    CLASS: Class3
FC4_TYPES: 00000100,00000000,00000000,00000000,00000000,00000000,00000000,00000000 

-----------------------------------------------------------------------------------
     TYPE: Lport
      PID: 011A55 
     WWPN: 500104f0005f0273
PORT_NAME: (STK     T9940B          1.35)
     WWNN: 500104f0005f0272
NODE_NAME: (null)
      IPA: ffffffffffffffff
  IP_ADDR: 0.0.0.0
    CLASS: Class3
FC4_TYPES: 00000100,00000000,00000000,00000000,00000000,00000000,00000000,00000000 

The emlxadm utility also provides “download_<fcode|fw|boot>” commands to download firmware images to each HBA, and has several “reset_<link|hard|hard_core>” commands to reset HBAs. These are two areas where the native Solaris tools don’t shine so well, so the emlxadm utility is a welcome addition to the Solaris storage stack! Viva la Emulex!!