Readme for IBM Flex System FC3172 2-port 8Gb FC Adapter *7/19/2013: See Document Change History <#_Document_Change_History> for details on changes to this document.* Contents * 1.0 Overview <#_1.0_Overview> * 2.0 Adapters Affected <#_2.0_Adapters_Affected> * 3.0 Microcode Description and Revision History <#_3.0_Microcode_Description> * 4.0 Cautions and Important Notes <#_4.0_Cautions_and> * 5.0 To Determine Adapter Microcode Levels <#_5.0_To_Determine> o 5.1 AIX Systems <#_5.1_AIX_Systems> o 5.2 Linux Systems <#_5.2_Linux_Systems> * 6.0 Install RPM Package <#_6.0_Install_RPM> o 6.1 AIX RPM Package <#_6.1_AIX_RPM> * 7.0 Installing the Adapter's Microcode <#_7.0_Installing_the> o 7.1 Using the AIX Command-Line Method <#_7.1_Using_the> o 7.2 Using the Diagnostic Service Aid Method <#_7.2_Using_the> o 7.3 Enabling Linux driver firmware load from flash <#ov2> o 7.4 Using the Standalone Diagnostics CD <#ov3> * 8.0 Verifying the Update <#_8.0_Verifying_the> o 8.1 Verifying the Update on AIX <#_8.1_Verifying_the> o 8.2 Verifying the Update on Linux <#8.2_Verifying_the_Update_on_Linux> * Document Change History <#_Document_Change_History> ------------------------------------------------------------------------ 1.0 Overview This update contains the AIX RPM file for the current level of microcode for the IBM Flex System FC3172 2-port 8Gb FC Adapter, Feature Code 1764. This is a multiport adapter with a single ASIC. To update the microcode for the entire adapter, only a single resource (port) need to be updated to ensure the card is updated. Back to Contents <#_Contents> ------------------------------------------------------------------------ 2.0 Adapters Affected This microcode is for feature code 1764: PN 69Y1940: CCIN 2B5F To determine the part number of the adapter on an AIX system, on the command line key the following command: *lscfg** -vl fcsX* where fcsX represents the adapter. Affected adapters will be listed as: Dual Port 8Gb FC Mezzanine Card (7710322577107501) To determine the presence of this adapter on a Linux system, on the command line key in: *ls** /sys/class/fc_host* Example output: host1 host2 Next determine the model description and name for each host. For each host{n} displayed in previous command, on the command line key in the following command,where host{n} is replaced by one of hosts listed in previous step: *cat** /sys/class/scsi_host/host**{n}/model** * * Affected adapters will be listed as: FC3172 8Gb FC Adapter QMI2592 The typical time to install the microcode is 0.4 hr. Back to Contents <#_Contents> ------------------------------------------------------------------------ 3.0 Microcode Description and Revision History *Microcode Level* *Changes* 7710322577107501.0320070000 * Initialize credits before changing fill word from ARB to idle to avoid dropped frames during LR protocol with switch. * Fix firmware fails to detect port id change after Fabric login timeout. * Fix S_ID in PRLI when N_PORT is directly attached to N_PORT. * Fix fatal error during FC internal loopback. * Fix RISC pause during termination of CTIO exchange whose associated port was previously freed by driver. * Fix RISC pause during unplug/plug test when Receive Out-of-Order Data Frame is enabled. * Fix command parameter error during Get Port Database mailbox command with Force Login option. * Fix intermittent aborts for multi-sequence write IOs with T10 DIF Remove support enabled. * Fix firmware hang due to processing invalid register data. * Fix firmware fatal error while completing T10_CRC IOCB with bad entry status. * Update CTIO completion status reported by firmware for an exchange with DIF error. * Fix firmware reporting incorrect reason code in outgoing MB1 for Link down notification. * Fix command timeout due to context error when mix of originator and responder FCP_DATA frames are received. * Fix Task Management IOCB type 14h completion with dma error status. * Fix firmware potentially losing AL_PA when driver issues mailbox command 0x72 to perform link initialization. * Fix firmware running out of exchange buffers if multiple Test ELS commands (enabled as pass-through ELS) exchanges are terminated (after received) by the driver. * Fix firmware to report DMA_ERROR instead of DIF_ERROR if multiple errors are pending on T10 pcie transfer. * Provide workaround for link not coming up in point to point mode with non-QLogic targets. * Fix firmware incorrectly reporting Link up notification and Port database change notification upon receiving Flogi Reject in point to point mode. * Fix firmware fatal error seen on failure to acquire ATIO Queue lock. * Fix intermittent firmware fatal error seen while processing CTIO with terminate exchange bit. * Firmware fix to generate the correct TPRLO ACC payload. * Fix BB-credit calculation to avoid a corner case resulting in buffer overflow. * Fix firmware failing get link statistic and private data if VP was disabled. * Add support to return node name/portname and topology info in Immediate Notify IOCB. * Prevent misinterpretation of LUN information in command IOCB. * Prevent potential firmware fatal error with Extended Logins feature enabled. * Fix mailbox command timeout seen during link re-initialization by host driver. * Fix performance scaling issues seen with multiple 4G tape devices. * Fix potential firmware fatal error during link initialization process. * Fix firmware sending duplicate ELS Pass-Through IOCB Type 53 on response queue. * Display Product-ID string in VPD area during initial selection. * Fix stack bug in .adapter-info, found in blade hotplug test by efcode. 7710322577107501.0319050702 * Fix Task Management IOCB type 14h completion with dma error status. * Add check for MBAR2 (Multi-Queue memory) and create reg property if it exists. * Make validate-nvram silent. Print messages only if debug-flash?(x1000) is set. * Added dynamic sizing of the BAR registers at probe-time for reg property. * Remove dis-exp (disable-exprom) in ena-reg-acc. Causes problem on SPARC T3-1B. * Fix bugs in search of Card-Type-Lists for SSDID when flashing w/find-ilt-code. * Change oem property to QLogic, and manufacture property to QLogic. * Added SSDID check to set-edc-config. * Stripped ISP2400 & SUN specific code using #ifdefs to reduce IBM size by .5KB 7710322577107501.0316050700 * New Feature: Firmware sends Report ID Acquired IOCB Type 32h upon Flogi failure. * New Feature: Firmware reports NportHandle, WWPN and WWNN of remote port in Report ID Acquired IOCB Type 32h for N2N connection topology. * Fix firmware not logging out SNS port (PID=0xFFFFFc) while processing implicit Logout. * EP Device Only: Fix advertised BB_Credits not increasing with additional receive credits option set. * Target Mode: Fix firmware fatal error seen while aborting an exchange. * Fix firmware failing request to disable multiple virtual ports using iocb type 30h. * Fix Loop port bypass (40h) and loop port enable (41h) mailbox commands not working correctly. * FC-VI only: Fix disconnect request iocb timeout. * T10 Only: Fix firmware reporting DIF errors while running multi sequence, T10-DIF enabled IO's with protection mode set to DIF- Remove. * Fix firmware fatal error while running T10-DIF enabled IO's with protection mode set to DIF-Remove. * Fix incorrect reporting of discarded and dropped frame count in mailbox command 6Dh. * Add support for programming page and payload length fields in TPRLO response frame. 7710322577107501.0316050605 This is the level of microcode that is initially supported when it became generally available. *The Firmware Levels Below Are No Longer Supported Please Update To The Latest Level At Your Earliest Convenience* Back to Contents <#_Contents> ------------------------------------------------------------------------ 4.0 Cautions and Important Notes * *Concurrent Download* The microcode installation does *NOT* support concurrent download while the fcs resources are available for use. If the fcs resources are in use, they must manually be released prior to starting the download. Failure to do so will result in a message instructing that the fcs resource be freed. *NOTE*: It is recommended that the installation be scheduled during a maintenance window or during non-peak production periods. * *NOTICE FOR AIX CUSTOMERS INSTALLING 0320070000 MICROCODE* o *AIX Requirements* Prior to installing the microcode, it is required that the following AIX Service Packs or later be installed. + AIX 6.1 TL6 SP8 + AIX 6.1 TL7 SP3 + APAR IV14283 + AIX 7.1 TL0 SP6 + AIX 7.1 TL1 SP3 + APAR IV14284 The Service Packs can be obtained from the IBM Fix Central website located at http://www.ibm.com/eserver/support/fixes. o *VIOS Requirements *If the adapter is running in a partition running VIOS, it is required that VIOS 2.2.1.4 or later be installed. o *Linux* *Requirements* RHEL 5.7, RHEL 6.2, and SLES11 SP2 or later are supported. Back to Contents <#_Contents> ------------------------------------------------------------------------ 5.0 To Determine Adapter Microcode Levels Before installing the microcode, it is important to determine the current microcode level of the adapter. 5.1 AIX Systems 1. List the Fibre Channel (FC) adapters installed in the system by typing on the command line: *lsdev**-C | grep fcsX* Note the device names of all the fibre channel adapters installed. The adapter device names will be fcsX, where X is 0,1, or some other number. There will be an fcsX listing for each port of the FC 1764 adapter 2. Determine the current microcode level on the adapter by typing on the command line: *lsmcode**-d** fcsX * where X is the number of the adapter's port returned from the "lsdev" command above. A screen similar to the following will be displayed: DISPLAY MICROCODE LEVEL 802111 fcs0 Dual Port 8Gb FC Mezzanine Card (7710322577107501) The current microcode level for fcs0 is 0320070000. Use Enter to continue. F3=Cancel F10=Exit Enter If the current microcode level is not 0320070000, then the microcode image on the adapter is not at the latest level. Back to Contents <#_Contents> 5.2 Linux Systems 1. Identify fibre channel hosts. Following command will list fibre channel hosts. *ls** /sys/class/fc_host* Example output: host3 host4 2. Verify firmware version running on the host. The following command will display the firmware version loaded by the adapter, where host{n} is replaced by one of hosts listed in previous step. *cat** /sys/class/scsi_host/host{n}/optrom_fw_version* Expected output: 7.00.00 (nnnn) (nnnn) can be ignored If version reported is not greater than or equal to 7.00.00, then the microcode image on the adapter is not at the latest level. Back to Contents <#_Contents> ------------------------------------------------------------------------ *6.0 Install RPM Package* 6.1 AIX RPM Package Use this method to install the AIX RPM package on an AIX system. Note that the commands are case sensitive and must be entered exactly as shown, including file names. Installing the RPM places the binary file 7710322577107501.0320070000 in the /etc/microcode directory. 1. If the /etc/microcode directory does not exist, make a directory to receive the RPM format file. On the command line type: *mkdir** /etc/microcode* 2. Transfer the RPM format file, 7710322577107501.0320070000.aix.rpm to any temporary directory on the target system. 3. Unpack the file. On the command line type: *rpm** -ihv --ignoreos 7710322577107501.0320070000.aix.rpm* 4. If the microcode package unpacks successfully, the microcode file will be added to the /etc/microcode directory. If a message is received saying the "package ** is already installed", you will need to uninstall the rpm package. On the command line type: *rpm** -e * where is the name of the package that was returned in the message. Return to step 3 and attempt to unpack the file again. 5. Go to section 7.0 to complete the update. Back to Contents <#_Contents> ------------------------------------------------------------------------ 7.0 Installing the Adapter's Microcode 7.1 Using the AIX Command-Line Method Login as root user. From the command line key in: *diag** -d fcsX -T download* where fcsX is the port you on which you want to install the microcode. Self-explanatory menus will step you through the microcode installation. Repeat this command for all of the adapters/ports. Back to Contents <#_Contents> 7.2 Using the Diagnostic Service Aid Method Login as root user. From the command line key in: *diag* Select: *Task Selection (Diagnostics, Advanced Diagnostics, Service Aids, etc.)* Select: *Microcode Tasks* Select: *Download Latest Available Microcode* Select: *file system* * /etc/microcode* Select the device: *fcs**** Press enter when prompted to download the microcode. Only one of the fcs resources needs to be updated for the entire adapter to be updated. Upon completion, a message will state that the microcode has been successfully downloaded and that the new level is 0320070000 . _Back to Contents_ <#_Contents> * * *7.3 Enabling Linux driver firmware load from flash* On RHEL6 and SLES11 Linux distributions, the firmware is loaded automatically by the qla2xxx driver from the /lib/firmware/ directory. On RHEL5 the firmware is* *loaded by the qla2xxx driver from the driver image itself. If Standalone Diagnostics are used to update the adapter flash, then the qla2xxx driver must be set to load the firmware from the flash by specifying qla2xxx driver parameter, ql2xfwloadbin. The steps required to set the ql2xfwloadbin driver parameter in a persistent manner varies by Linux release as described next. RHEL5 1) Using a Linux text editor, edit the file /etc/modprobe.conf 2a) If there is a line in the file starting with options qla2xxx then add /ql2xfwloadbin//=1/ to the end of that line. 2b) If there is no line in the file starting with options qla2xxx then add a new line to the file, /options qla2xxx //ql2xfwloadbin=1/ 3) Save the file 4) Make a new initrd to include the updated qla2xxx driver options in the boot image. On the command line, key in /mkinitrd// -f /boot/initrd-$(uname -r).img $(uname -r)/ / /5) Reboot RHEL6 1) Using an a Linux text editor, create a new file /etc/modprobe.d/qla2xxx.conf 2) Add this line to the /etc/modprobe.d/qla2xxx.conf file created in step 1, /options// qla2xxx //ql2xfwloadbin=1/ 3) Save the file 4) Save the file 4) Make a new initramfs to include the updated qla2xxx driver options in the boot image. On the command line, key in /dracut// -f /boot/initramfs-$(uname -r).img $(uname -r)/ 5) Reboot SLES11 mkinitrd 1) Using a Linux text editor, edit the file /etc/modprobe.local.conf 2a) If there is a line in the file starting with options qla2xxx then add /ql2xfwloadbin=1 to/ the end of that line. 2b) If there is no line in the file starting with options qla2xxx then add a new line to the file, /options qla2xxx //ql2xfwloadbin=1/ 3) Save the file 4) Make a new initrd to include the updated qla2xxx driver options in the boot image. On the command line, key in /mkinitrd/// 5) Reboot _Back to Contents_ <#_Contents> 7.4 Using the Standalone Diagnostics CD Below are references and the general flow on how to update microcode update via CD. This method requires 1) Boot the system via a Standalone Diagnostic's CD a) To create a bootable Diagnostic's CD go to the following URL. http://www.software.ibm.com/webapp/set2/sas/f/diags/home.html b) After booting to Standalone Diagnostics, the Diagnostic's CD can be removed. 2) The Diagnostic's CD should be replaced by a CD containing the unpacked microcode image(s). The CD containing the microcode images should be prepared prior. This can be done by taking the 7710322577107501.0320070000.aix.rpm file(s) and unpacking them on a usable server. The unpacked files can then be burned on to the CD media. _Back to Contents_ <#_Contents> ------------------------------------------------------------------------ 8.0 Verifying the Update 8.1 Verifying the Update on AIX 1. List the Fibre Channel (FC) adapters installed in the system by typing on the command line: *lsdev**-C | grep fcsX* Note the device names of all the fibre channel adapters installed. The adapter device names will be fcsX, where X is 0,1, or some other number. There will be an fcsX listing for each port of the FC 1764 adapter 2. Determine the current microcode level on the adapter by typing on the command line: *lsmcode**-d** fcsX * where X is the number of the adapter's port returned from the "lsdev" command above. A screen similar to the following will be displayed: DISPLAY MICROCODE LEVEL 802111 fcs0 Dual Port 8Gb FC Mezzanine Card (7710322577107501) The current microcode level for fcs0 is 0320070000. Use Enter to continue. F3=Cancel F10=Exit Enter If the current microcode level is 0320070000, then the microcode image was updated successfully. _Back to Contents_ <#_Contents> 8.2 Verifying the Update on Linux 1. Identify fibre channel hosts. Following command will list fibre channel hosts. *ls** /sys/class/fc_host* Example output: host1 host2 2. Verify firmware version running on the host. The following command will display the firmware version loaded by the adapter, where host{n} is replaced by one of hosts listed in previous step. *cat** /sys/class/scsi_host/host{n}/optrom_fw_version* Expected output: 7.00.00 (nnnn) (nnnn) can be ignored If version reported is not as expected, carefully retrace steps to confirm each step is completed without error. _Back to Contents_ <#_Contents> ------------------------------------------------------------------------ Document Change History *Date* *Change* 06/01/2012 Initial Document 06/26/2012 Updates required for FW level 050700 10/30/2012 Updates required for FW level 050702 07/19/2013 Updates required for FW level 070000 _Back to Contents_ <#_Contents> ------------------------------------------------------------------------ _Privacy_ | _Legal_ | _Contact IBM_