Microcode Revision Level 3.93a0 With FCode 1.50a4 for F/C 6228,
0612, 0611

Contents

1.0 Overview

This is the Current  Level of Microcode for The IBM pSeries and iSeries (running AIX or Linux) Gigabit Fiber Channel PCI Adapter for 64 bit bus, which replaces Revision Level 3.82a1, 3.90X3 and 3.91A3, 3.91A1.
 

Note: Firmware LEVEL 3.91A3 has been pulled due to the following regression:
On FC adapters with black connectors:

When attaching to certain disk subsystems and switches, the laser will not turn on and the link is not established

 Back to Contents



2.0 Systems Affected

This update provides new adapter firmware for adapter pSereis FC 6228  PNs 03N2452 (FRU 09P0102) , 09P5079 (FRU 09P5080), 00P2995 (FRU 00P2996), 00P4494 (FRU 00P4495), 80P3388 (FRU 80P3389), 80P4383 (FRU 80P4384) and iSereis FC 0612 PNs 80P5081, 00P2997, 00P4496, 80P3387, 80P4385.
The typical time to install the microcode is .4 hr.

 Back to Contents



3.0 Firmware Description and Revision History


This firmware update contains the following features and fixes:
 
 

      Level

                                      Description

3.93a0

  • Fixes a problem in the linux environment , path does not recover from a short duration loss of link.

The Firmware Levels Below Are No Longer Supported By IBM Once They Have Been Removed From The Microcode Down Load Website.

It is best practices to update to the latest FW level not only for IBM support of these products, but for optimal performance and to ensure that all of the required HW/FW fixes are installed. Once new FW has been released to the field, we will provide a 6 month grace period for customers to update these products to the currently supported FW level
Please Update To The Latest Level At Your Earliest Convenience

3.91x4

  • Fixes problem with tape sequence recovery algorithm.

  3.91A1

 1.  (2105) Support Out Of Order ACKs within a range of 1-7 from  the expected
      sequence count.

 2.  Change DMA retry timer from 750 ms to 1500ms.

 3.  (2105) If timed out waiting for an ACK1, just abort the exchange instead of sending an
     ABTS.

 4.  (2105) Correctly handle XCB state WAIT_ACK_CONFIRM.

 5.  (2105) Range check each RRQ XID.

 6.  (2105) Determine correct local exchange ID when RRQ is
         received.

 7.  (2105) Accurately keep track of sequences when sending an
         ABTS.

 8.  (2105) When we receive a CLOSE_XRI, properly close the exchange no matter what 
     state it is in.

 9.  Initialize and un-initialized variable.

 10. Correct our handling of zero length Dams.

 11. Always complete transmit DMA for GEN_REQ_64.
 

      3.82A1

  1.  SAN Boot Support 
  2.  Fixed bug on inputting a invalid LUN number 
  3.  Fixed bug on inputting a invalid WWPN number and continue to access
       LOGO and PLOGI instead of exit.
  4.  Disable the message "Can't open disk label package" for non-bootable disks.
  5.  Bug fixed for FCODE map-in doesn't match decoded register error.
  6.  Bug fixed for "Error: can't free iommu-list" due to the data structure memory allocation 
       problem on true 64-bit machine.
  7.  Enhanced the behavior to relogin if a target logs out during the boot sequence.
  8.  Added new multiple topologies mode
  9.  Added default setting mode to set everything into default value
 10. Change the encode-fcp-unit such as when lun is non zero, the return string is "wwpn,unit",
       and if the lun is zero, the return string will be only "wwpn" and no comma and no 0's.
 11. Changed the new behavior for 64-bit machine which running under 32-bit format with
       64-bit machine.
 
12. Make CT timeout to be 2 * R_A_TOV instead of 1 sec before.
 13. Reduced Io_sequence timeout value if ABTS happened.
 14. Added set-els-err in cmd-fcp to update the IOSTAT_LOCAL_REJECT and
       IOERR_SEQUENCE_TIMEOUT if a Rad Box issued a logout during SCSI command.
 15. Added new feature, the host can able to determine 32bit BAR versus 64bit BAR base on
       the system firmware.
 16. Bug fixed on reservation conflict which fail to exit after exceeded 8 times of retries on
       executed a SCSI command.
 17. Replace the WWPN to LOGO payload instead of D_ID.
 18. Added one more retry for CT Response after retries on timeout.
 19. Change back number of retry of SCSI-command to 0 when system issues a "Reservation 
       Conflict" of status byte code due to the IEEE standard.
 20. Change number of retry of SCSI-command to 10 times when system issues a "Check 
       Condition" of the status byte code .

   3.90X3


1. Fixed problem in FCODE if name server returns with bad return code. (Multi Boot menu hang,
    returned to system firmware incorrectly) 
2. Performance enhancements.

Back to Contents



4.0 Cautions and Important Notes

·         Concurrent Download
Concurrent download is an AIX feature that allows firmware to be downloaded without bringing the system down and rebooting following fibre channel download. Due to recent regressions with this AIX feature (unable to see end devices/hung system), it is strongly recommended that firmware upgrades be performed during a scheduled maintenance window and that the system be re-booted following firmware download.

  • Machine Type 7039-651

Machine type 7039-651 must be at system firmware level 3J030521 or higher.  If the system firmware level is less than 3J930521 and you attempt to change the fibre channel adapter firmware, you can damage the fibre channel adapter.

    To determine machine type, enter the following command:

       lscfg -pl sysplanar0 | grep Model | awk ' {print $2}'

   If machine type is "IBM,7039-651", check the system firmware level by entering the following command:

      lsmcode -rt system

    NOTE:  firmware level RJ030206 is a lower level than 3J030521.  To compare firmware levels, compare the trailing 6 characters.  For firmware levels RJ030206 and 3J030521, you compare the trailing 6 characters:     030206 is less than 030521
 

 Back to Contents


5.0 To Determine Adapter Microcode Levels

Before you install the microcode, it is important to determine the FRU Number and Microcode level of the adapter installed in the target system. Use the following instructions to read the FRU number stored in the adapter's non-volatile memory.

5.1 AIX Systems

1)  List the Fiber Channel PCI adapters installed in the system by typing:

lsdev -C | grep "fcs"

Note the device names of all the Gigabit Fiber Channel PCI Adapters installed. The adapter device names will be fcsX, where X is 0,1, or some other number.

2) There are two methods to check the current microcode level on the adapter.

  • The first method uses the "lscfg" command and will display much of the information from the adapter VPD. The Z9 field will contain the firmware level. This method will also display the FRU part number and the assembly part number.

lscfg -vl fcsX

Where X is the number of the adapter returned by the previous lsdev command.

The Command will produce output similar to

DEVICE       LOCATION       DESCRIPTION

fcs0                00-04            IBM Gigabit Fiber Channel PCI Adapter for 64 bit bus

Part Number.................00P4494
EC Level....................A
Serial Number...............1A25001206
Manufacturer................001A
FRU Number.................. 00P4495
Network Address.............10000000C930D02B

ROS Level and ID............02C03951
Device Specific.(Z0)........2002606D
Device Specific.(Z1)........00000000
Device Specific.(Z2)........00000000
Device Specific.(Z3)........03000909
Device Specific.(Z4)........FF401210
Device Specific.(Z5)........02C03951
Device Specific.(Z6)........06433951
Device Specific.(Z7)........07433951
Device Specific.(Z8)........20000000C930D02B
Device Specific.(Z9)........CS3.91X4
Device Specific.(ZA)........C1D3.91X4
Device Specific.(ZB)........C2D3.91X4

If the firmware level in the "Z9" field is less than 3.93a0, then you should update the microcode.

  • The second method uses the "lsmcode" command and will display the file extension of the firmware image file name the was last installed on the adapter.

lsmcode -d fcsX

Where X is the number of the adapter returned by the previous lsdev command

DISPLAY MICROCODE LEVEL 802111
fcs3 FC Adapter

The current microcode level for fcs3 is 393100.

Use Enter to continue.





F3=Cancel F10=Exit Enter

If the firmware level in the is NOT 393100, then you should upgrade the microcode.

5.2 Linux Systems

On Linux systems one of two possible methods must be used to determine the current level of Microcode on installed adapters. If the first method does not display the Microcode level, the second method should display the Microcode level for installed adapters. Both methods assume you are logged in as root and one or more Fiber Channel PCI adapters are installed.

  • The first method generally works on systems running Linux 2.4 kernels and some systems running 2.6 kernels which do not have full support for the /sys filesystem.

1.      List Fiber Channel PCI adapter information for all installed adapters by typing:

cat /proc/scsi/lpfc/*

Output will display various information for each installed Fiber Channel PCI adapter. Make note of Driver version, Emulex LightPulse model and Firmware Version:

Emulex LightPulse FC SCSI 7.2.4
Emulex LightPulse LP9002L 2 Gigabit PCI Fiber Channel Adapter
Firmware Version: 3.93 (H2D3.93a0)

  • The second method works on systems running Linux 2.6 and higher kernels which support the /sys file system.

1.      Determine which host numbers are assigned to installed Fiber Channel PCI adapters by typing:

cd /sys/class/scsi_host
find . -name "lpfc_drvr_version" -print

Output will list relative path names for each installed Fiber Channel PCI adapter. Note the host{n} portion of each path.

./host2/lpfc_drvr_version
./host1/lpfc_drvr_version

2.      Determine driver version for installed Fiber Channel PCI adapters by typing:

cat host{n}/lpfc_drvr_version

Where host{n} is one from step 1. Driver version should be noted as it will be required later when Microcode is updated. Driver version may vary but will display as follows:

Emulex LightPulse FC SCSI 7.2.4

3.      Display Emulex LightPulse model for each installed Fiber Channel PCI adapter by typing:

cat host{n}/modelname

Where host{n} is one from step 1. Model will display as follows:

LP9002L

4.      Display Firmware version for each installed Fiber Channel PCI adapter by typing:

cat host{n}/fwrev

Where host{n} is one from step 1. Firmware version will display as follows:

3.93 (H2D3.93a0)

If, as shown in bold text above, the Emulex LightPulse model is LP9002L and the firmware version is not 3.93a0, then the microcode should upgraded.

 Back to Contents



6.0 Downloading and Unpacking the Firmware Update Package

Instructions for downloading and unpacking firmware update packages follows.

 NOTE:   Microcode can now be installed during normal operations. If you are on 4.3.3, please install APAR IY26204 from FIXDIST. If you are on AIX 5.1.0, please install APAR IY26249 from FIXDIST.

The download choices are from the internet and CORE:
 

  •    Description    (Instruction document)
  •    AIX RPM format      (For downloading to an AIX system)
  •    Linux RPM format  (For downloading to a Linux system).


You will want a copy of the description and one of the above formats.  You may transfer the files to
the target system in one of the following ways:
 

  •  Download the AIX RPM format File to a AIX system
  •  Download the Linux RPM format File to a Linux system..

Detailed download /unpacking instruction follow for each format.

NOTE: The following values apply to this microcode file:        File size:  458884 bytes
                                                                                                    Checksum: 19356      

6.1 Downloading AIX RPM Format File to an AIX Server
Use this method to download to an AIX system:

Note: The instructions that follow are specific AIX commands. AIX commands are CASE (lower and upper) SENSITIVE, and must be entered exactly as shown, including filenames.

1. Make a directory on an AIX system to receive the RPM format file.
    Enter:      mkdir /etc/microcode

Note: The /etc/microcode directory may already exist, if so, proceed to the next step. 

      Enter:
                     cd /etc/microcode

2. Transfer the RPM format file to the /etc/microcode directory (using "Save as ...").
    You'll see the filename is pci.df1000f9-3-93a0.aix.noarch.rpm

3. Unpack the file by executing the instructions below:
    Enter the commands:
        rpm -ihv --ignoreos pci.df1000f9-3-93a0.aix.noarch.rpm

4. If the firmware unpacks successfully, the microcode files will be added to /etc/microcode/

5.The file size and checksum will be verified on the firmware image, NOT the RPM file.
File size: 458884
Checksum: 19356

If step 3 returns with: " package package_name is already installed"
You will need to un-install the rpm package as follows:

rpm -e package_name

Where "package_name" is the package name returned in the failure of step three.

Now go to step 3 above to unpack the firmware.

6.2 Downloading Linux RPM Format File to a Linux Server

Note: The steps that follow list specific Linux commands. Linux commands are CASE (lower and upper) SENSITIVE, and must be entered exactly as shown, including filenames.

1. Transfer the Linux RPM format file, pci.10dff900-3-91x4.Linux.noarch.rpm to a temporary directory on the target server, /tmp in this example.

2. Unpack the RPM file by typing:
    rpm -ivh /tmp/pci.10dff900-3-93a0.Linux.noarch.rpm

3. Verify the firmware update file, pci.10dff900.393100, was installed in /lib/firmware directory.

4. If not, carefully review previous steps and carefully examine output from rpm command for any reported errors.

 Back to Contents


7.0 Update the Adapter's Microcode

The Diagnostic Microcode Downpour software supports the following naming convention for the microcode binary file :
   df1000f9.393100   where the 393100 is the version of the file.

NOTE: Due to regressions with the AIX concurrent download feature, it is recommended that firmware download be performed during a maintenance window.

Back to Contents


7.1 Using the AIX Command-Line Method

You are now ready to FLASH the EEPROM in the adapter using the single command:

diag -d fcsX -T download

Where X is the number found from the "lsdev -C | grep fcs " command.
Self-explanatory menus will step you through the microcode installation.
Repeat each step in  7.1 above for all the cards that need the update.

To Back level the firmware
 

diag -d fcsX -T "download -f -l previous"

 Back to Contents


7.2 Using the Update Flash Diagnostic Service Aid Method

From the command line login, log in as root.

Enter
    diag
Select
    Task Selection (Diagnostics, Advanced Diagnostics, Service Aids, etc.)
Select
    Download Microcode
Select the device returned for above
    fcs*
Press enter when prompted to download the microcode

Upon completion, a message will state that the firmware has be successfully downloaded and that
the new level is  393100.

Exit.

 Back to Contents


7.3 Using the Linux lputil Method

To update the Fiber Channel PCI adapter microcode on installed adapters in a Linux system the Emulex lputil flash program must be used. This program is included in an Application Kit availble only from the IBM OEM web pages on the Emulex web site. Some versions of Linux will also require an Application Helper Module also available from the IBM OEM web pages on the Emulex web site.

In some cases, the IBM OEM web page may list an updated driver for the Linux version installed on the target server. The updated Driver Kit includes both an updated driver and the corresponding Application Helper Module. You should consider installing the updated Driver Kit along with the Application Helper Module.

To begin, open the IBM OEM web page by entering http://www.emulex.com/ibm/support/index.jsp in an Internet browser. Follow links on the page to the LP9002 IBM Branded Fiber Channel PCI adapter page. This page will contain a list of supported drivers for this adapter.

Scroll down to the "Drivers for Linux" or the "Previous Releases" section. Find the entry in the table which corresponds to the Linux driver version currently installed on the target server as determined in section 5.2 above. Download the Application Kit or Driver Kit and, if needed, the Application Helper Module to a temporary directory on the target server. Follow the installation instructions provided on the IBM OEM web page to install the downloaded packages.

Once both the Application Helper Module Kit or Driver Kit and the Application Kit have been installed on the target, updating the microcode can proceed as follows.

  1. Begin by confirming proper installation of Application Kit and Application Helper Module.

Verify lputil command is present, type ls /usr/sbin/lpfc/lputil   Output should list file path for lputil command.
Verify Driver Module (lpfc of lpfcdd) is loaded, type lsmod   Examine output for presence of lpfc or lpfcdd in loaded module list. If not present, type modprobe lpfc or modprobe lpfcdd, examine console messages for error reported.
Verify Helper Module (lpfcdfc) is loaded, type lsmod   Examine output for presence of lpfcdfc in list. If not present, type modprobe lpfcdfc, examine console messages for error reported.

If any of the verification checks fail, review the installation documentation and insure all steps were completed, look for any errors reported during installation. If problems cannot be resolved, contact IBM service support.

  1. Since firmware update will reset the Fiber Channel adapters, you should unmount any storage devices controlled by the adapter being updated before proceeding.

Caution: Do not interrupt this process, shutdown the system or remove power until the firmware update process is complete.

  1. Start the utility by typing:   /usr/sbin/lpfc/lputil
  2. From the Main menu, enter 3, Firmware Maintenance
  3. If more than one HBA is installed, select the HBA to be updated.
  4. Enter 1, Load Firmware Image
  5. Enter the full path to the firmware file, /lib/firmware/pci.00dff900.393100, press enter.
  6. Wait for message indicating update process is complete.
  7. Enter 0 twice to exit the utility, the new firmware has been flashed to the adapter.

If you are updating the firmware on a dual-channel HBA, repeat steps 3 through 8 to update the firmware on the second port.

7.4 Verifying the Update on AIX Systems 

1  List the Fiber Channel PCI adapters installed in the system by typing:

   lsdev -C | grep "fcs"

 Note the device names of all the Gigabit Fiber Channel PCI Adapters installed. The adapter  device names will be fcsX, where X is 0,1, or some other number.

 

2 There are two methods to check the current microcode level for the adapter.

  • The first method uses the "lscfg" command and will display much of the information from the adapter VPD. The Z9 field will contain the firmware level.

lscfg -vl fcsX

Where X is the number of the adapter returned by the previous lsdev command.

The Command will produce output similar to

DEVICE       LOCATION       DESCRIPTION

fcs0                00-04            IBM Gigabit Fiber Channel PCI Adapter for 64 bit bus

Part Number.................00P4494
EC Level....................A
Serial Number...............1A25001206
Manufacturer................001A
FRU Number.................. 00P4495
Network Address.............10000000C930D02B

ROS Level and ID............02C03951
Device Specific.(Z0)........2002606D
Device Specific.(Z1)........00000000
Device Specific.(Z2)........00000000
Device Specific.(Z3)........03000909
Device Specific.(Z4)........FF401210
Device Specific.(Z5)........02C03951
Device Specific.(Z6)........06433951
Device Specific.(Z7)........07433951
Device Specific.(Z8)........20000000C930D02B
Device Specific.(Z9)........CS3.93a0
Device Specific.(ZA)........C1D3.93a0
Device Specific.(ZB)........C2D3.93a0

If the firmware level in the "Z9" field is 3.93a0, then the microcode has been successfully upgraded.

  • The second method uses the "lsmcode" command and will display the file extention of the firmware image file name the was last installed on the adapter.

lsmcode -d fcsX

Where X is the number of the adapter returned by the previous lsdev command

DISPLAY MICROCODE LEVEL 802111
fcs3 FC Adapter

The current microcode level for fcs3 is 393100.

Use Enter to continue.





F3=Cancel F10=Exit Enter

If the firmware level in the "Z9" field is 393100, then microcode has been successfully upgraded.

 

7.5 Verifying the Update on Linux

On Linux systems one of two possible methods must be used to determine the current level of Microcode on installed adapters. If the first method does not display the Microcode level, the second method should display the Microcode level for installed adapters. Both methods assume you are logged in as root and one or more Fiber Channel PCI adapters are installed.

  • The first method generally works on systems running Linux 2.4 kernels and some systems running 2.6 kernels which do not have full support for the /sys filesystem.

1.    List Fiber Channel PCI adapter information for all installed adapters by typing:

cat /proc/scsi/lpfc/*

Output will display various information for each installed Fiber Channel PCI adapter. Make note of Firmware Version:

Firmware Version: 3.93 (H2D3.93a0)

  • The second method works on systems running Linux 2.6 and higher kernels which support the /sys file system.

1.    Determine which host numbers are assigned to installed Fiber Channel PCI adapters by typing:

cd /sys/class/scsi_host
find . -name "lpfc_drvr_version" -print

Output will list relative path names for each installed Fiber Channel PCI adapter. Note the host{n} portion of each path.

./host2/lpfc_drvr_version
./host1/lpfc_drvr_version

2.    Display Firmware version for each installed Fiber Channel PCI adapter by typing:

cat host{n}/fwrev

Where host{n} is one from step 1. Firmware version will display as follows:

3.93 (H2D3.93a0)

If the firmware level in displayed using either method is 3.93a0, then the firmware has been upgraded

 Back to Contents



8.0 Machine Record


 
 

Back to Contents


Privacy | Legal | Contact IBM