Microcode Revision Level 3.93a0 With FCode 1.50a4 for F/C 6228, 0612, 0611 Contents * 1.0 Overview <#ov> * 2.0 Systems Affected <#2.0_Systems_Affected> * 3.0 Firmware Description and Revision History <#3.0_Firmware_Description_and_Revision_H> * 4.0 Cautions and Important Notes <#4.0_Cautions_and_Important_Notes> * 5.0 To Determine Adapter Microcode Levels <#5.0_To_Determine_Adapter_Microcode_Leve> * 5.1 AIX Systems <#5.1_AIX_System> * 5.2 Linux Systems <#5.2_Linux_System> * 6.0 Downloading and Unpacking the Firmware Update Package <#6.0_Downloading_and_Unpacking_the_Firmw> * 6.1 Downloading AIX RPM Package <#6.1_Downloading_RPM_to_AIX_System> * 6.2 Downloading Linix RPM Package <#6.2_Downloading_RPM_to_Linux_System> * 7.0 Updating the Adapter's Microcode <#7.0_Update_the_Adapter's_Microcode> * 7.1 Using the AIX Command-Line Method <#7.1_Using_the_AIX_Command-Line_Method> * 7.2 Using the Update Flash Diagnostic Service Aid Method <#7.2_Using_the_Download_Micorcode_Diagno> * 7.3 Using the Linux lputil Method <#7.3_Using_the_Linux_lputil_Method> * 7.4 Verifying the Update on AIX Systems <#7.3_Verifying_the_Update_on_AIX_Systems> * 7.5 Verifing the Update on Linux <#7.4_Verifying_the_update_on_Linux> * 8.0 Machine Record <#8.0_Machine_Record> 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 <#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 <#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 <#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 <#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 (H2D*3.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 (H2D*3.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 <#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 <#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 <#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 <#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 <#Contents> ------------------------------------------------------------------------ *7.3 Using the Linux **lputil** Metho**d* 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. 2. 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. 3. Start the utility by typing: */usr/sbin/lpfc/lputil* 4. From the Main menu, enter *3*, *Firmware Maintenance* 5. If more than one HBA is installed, select the HBA to be updated. 6. Enter *1, Load Firmware Image* 7. Enter the full path to the firmware file, */lib/firmware/pci.00dff900.393100*, press enter. 8. Wait for message indicating update process is complete. 9. 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 (H2D*3.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 (H2D*3.93a0*) If the firmware level in displayed using either method is 3.93a0, then the firmware has been upgraded Back to Contents <#Contents> ------------------------------------------------------------------------ *8.0 Machine Record* Back to Contents <#Contents> ------------------------------------------------------------------------ Privacy | Legal | Contact IBM