Patch-ID# 107473-07 Keywords: MLUN luxadm ibfirmware FCAL leadville liba5k libg_fc Synopsis: SunOS 5.7: luxadm patch Date: Mar/12/2001 Solaris Release: 7 SunOS Release: 5.7 Unbundled Product: Unbundled Release: Xref: Topic: SunOS 5.7: luxadm patch NOTE: Refer to Special Install Instructions section for IMPORTANT specific information on this patch. Relevant Architectures: sparc BugId's fixed with this patch: 1241630 4052989 4085991 4095654 4106779 4138453 4167039 4168974 4170637 4171180 4174203 4174408 4175643 4178514 4179070 4179292 4179506 4180833 4181098 4184487 4185601 4201182 4202581 4205222 4207316 4208558 4208731 4209393 4212185 4213747 4214498 4227254 4228914 4229485 4229491 4229498 4229760 4230230 4230882 4230929 4232311 4233293 4233453 4234243 4236366 4237214 4239619 4241949 4244603 4245394 4245426 4245923 4247164 4249003 4249721 4251957 4253453 4255255 4255709 4257384 4258209 4258243 4259394 4259704 4265345 4265357 4267328 4267331 4270008 4270032 4277697 4278281 4292988 4292989 4299846 4300876 4306461 4306571 4308889 4309126 4319786 4322825 4325179 4328845 4331309 4332727 4342013 4346160 4349481 4351705 4353263 4354574 4364789 4375525 4375872 Changes incorporated in this version: 4239619 4255709 4278281 4300876 4306571 4325179 4328845 4331309 4332727 4342013 4346160 4349481 4351705 4353263 4354574 4364789 4375525 4375872 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: /usr/lib/firmware/fc_s/fcal_s_fcode (deleted) /usr/lib/liba5k.so.2 /usr/lib/libg_fc.so.2 /usr/lib/locale/C/LC_MESSAGES/a5k_g_fc_i18n_cat /usr/lib/locale/C/LC_MESSAGES/ibfirmware /usr/sbin/luxadm Problem Description: Note : Patch 107473-07 no longer contains fcode updates. Please refer to patch 109400-03 or newer for the most current fcode version. 4239619 some error conditions in luxadm may not exit with error condition 4255709 error messages needs to be improved for ses operation on non-enclosure device. 4278281 Fix qlgcupdate to match changes in driver for FCode download to 2200 card. 4300876 luxadm display returns "No such file or directory" when device is busy. 4306571 usoc stats structure display in error 4325179 memory leak in g_get_port_path(), g_get_port_state() 4328845 liba5k doesn't define all its dependencies 4331309 interface name change requested for d_dev_bypass_enable, d_bp_bypass_enable 4332727 luxadm should not use libthread 4342013 luxadm -e port gives confusing output when ports cannot be opened. 4346160 luxadm display ,f0 produces NULLs in the output 4349481 Package SUNWluxop has wrong directory permissions and ownerships 4351705 dbx is detecting memory leaks in libg_fc g_get_dev_map() 4353263 incorrect serial number is displayed on 'display' and 'inquiry' 4354574 Remove fcode from the SUNWluxop package and patches 4364789 l_get_envsen not 64-bit safe 4375525 Take an error in luxadm l_convert_name function. 4375872 luxadm inquiry fails on T3 device (from 107473-06) NOTE: This rev06 was generated to fix a packaging issue that manifested in rev05. There are no additional bug fixes being delivered. Same patch RTI that generated -05 has been used as the basis for rev06 patch generation. (from 107473-05) 4174203 add luxdiag functionality to luxadm. 4267328 ifpio.h now available in gates; migrate lux to use it. 4278281 fix qlgcupdate to match changes in driver for FCode download to 2200 card. 4299846 libg_fc need to recognize Qlogic 2202 device path with qlc driver. 4306461 in single port config, luxadm display enclosure,f2 shows port b as BYPASSED 4308889 need to provide method to free memory cleanly if rdls function fails 4309126 'luxadm insert' with missing /dev/es directory fails. 4319786 luxadm qlgc_s_download failing on latest version of FCode (1.7) 4322825 luxadm display fails on a non-enclosure FC drives (from 107473-04) 4230882 luxadm remove_device reports incorrect usage when incorrect option is supplied 4270008 Error: FCIO_GET_NUM_DEVS ioctl failed. on luxadm command 4277697 display -r either gets no output or info from a wrong node. 4292988 remove .a version of library liba5k from patch 4292989 remove .a version of library libg_fc from patch (from 107473-03) 4270032 SCSI error with 'check' status gets a wrong error message. 4267331 need support for rdls subcommand on leadville 4265357 l_new_name() and l_get_ib_status() prototypes have to be exposed 4265345 luxadm -e bypass/enable - -f enclosure fails with 'Bad address' 4259704 luxadm "bus_*" expert commands fail during open on devctl node 4259394 "luxadm download" for SSA controllers broken in library version 4258243 start and stop on bad device or path gives ioctl error and control 4258209 display -r fails on PCI machine with leadville based OS 4257384 luxadm probe / display rewinds tape media, silent loss of backed up data 4255255 need luxadm support to get the HBAs parameters on leadville stack. 4253453 ibfirmware is located at wrong dir on 2.8. 4245426 luxadm display -r shows incomplete output 4174408 luxadm should not abort rdls on error (from 107473-02) 4245394 new interfaces are required for Leadville support 4233293 memory leaks in liba5k and libg_fc 4234243 in split-loop config, root on one host can remove disks of another host 4207316 seg. fault (core dumped) when trying to insert disk using luxadm ins 4232311 L_state local variables in liba5k occupy too much stack memory 4179292 error with luxadm display ses-paths after doing luxadm -e bypass 4230230 luxadm insert_device does not check for devices that are already online 4237214 luxadm insert_device does not work on offlined and bypassed devices 4229491 can't power off a reserved disk with -F (force) option. 4244603 once no path found, no operations can be executed on the enclosure 4249721 luxville: insert_device subcommand is not printing the newly created 4228914 luxadm insert is not printing the new device nodes (ifp) to stdout 4236366 luxadm return erroneous EXIT STATUS 4245923 crash in g_get_wwn_list 4202581 incorrect error msg when doing luxadm disp on a non-existence device 4229485 luxadm/library: Can't power-on the entire enclosure using power_on 4213747 replace system() calls in luxadm/library with the fork()/exec() calls 4214498 add FCode download support for PCI QLGC HBA (isp2100, isp2200) 4205222 create luxadm that uses the liba5k and libg_fc libraries 4170637 expert level luxadm subcommands require different pathname for different 4227254 luxadm forcelip ignores mult. args & needs better reporting of invalid 4230929 fc_s_download error message has a typo 4208558 luxadm display enclosure,dev doesn't return correct error message 4229760 luxadm download with invalid ibfirmware file reports invalid path error 4052989 some luxadm messages are not internationalized 4229498 power_off subcommand on a bypassed disk gives an incorrect error message 4247164 segmentation fault when doing "luxadm start c2 0" 4241949 g_i18n_catopen() is not MT-safe 1241630 typo in enabling fast writes message from ssaadm 4251957 display -r fails with invalid port message; leadville integrated gate 4249003 new interfaces are required in libg_fc and luxadm to offline/online 4233453 luxadm power_off reports invalid error (from 107473-01) 4085991 Incorrect error msg when doing inquiry to a powered off drive 4095654 luxadm display wrong enclosure when WWN=0 4106779 E3500 should have utility to get status on internal FCAL drives 4138453 luxadm: Printing of enclosure abnormal condition will not work 4167039 luxadm power_off enclosure does not work with no logical path device 4168974 power_off cmd will take place on busy devices under volume manager. 4171180 luxadm reports status of backplane element incorrectly when bypassed. 4175643 implement bypass, enable & sysdump subcommands in luxadm 4178514 luxadm -e bypass doesn't give a usage error message 4179070 device Type:Disk device displayed for device in enclosure. 4179506 luxadm -e bypass backplane not showing correct status 4180833 system booting was very slow or hung at the 2nd booting host with long wave 4181098 segmentation Fault (core dumped) when try to remove drive with WWN0s 4184487 core dumped using luxadm disp (luxadm usage with ifp) 4185601 segmentation Fault when try to remove busy devices. 4201182 luxadm sysdump is truncating logical path names on large configs 4208731 A5x00 22 disks + metaset -t + luxadm display = Panic ! 4209393 "Display Disabled ? ..." shown on FPM when download IB 1.0I 4212185 luxadm queries return very slowly ******************************************************************* ******************************************************************* IMPORTANT NOTICE: !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! Failure to read and follow the "Special Install Instructions" BEFORE attempting to install this patch could result in disabled A5x00 Interface Boards. In some cases, boards disabled by not following the "Special Install Instructions" may have to be replaced. Make sure you read the "Special Install Instructions" section in this README file BEFORE installing this patch. If a firmware upgrade failure has already occurred, see the section at the end of the Special Install Instructions titled "What to do in case of IB firmware upgrade failure". !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! The A5x00 IB firmware may have to be downloaded to the IBs after installing this patch. Do not reboot the system until the patch has been installed. ******************************************************************* ******************************************************************* Patch Installation Instructions: -------------------------------- For Solaris 2.0-2.6 releases, refer to the Install.info file and/or the README within the patch for instructions on using the generic 'installpatch' and 'backoutpatch' scripts provided with each patch. For Solaris 7-8 releases, refer to the man pages for instructions on using 'patchadd' and 'patchrm' scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/104945-02 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages. Special Install Instructions: ----------------------------- ******************************************************************** ******************************************************************** !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! Interface Boards (IB) with firmware revision 1.01 MUST BE UPGRADED to revision 1.03 BEFORE being upgraded to revision 1.09. Contact your local Service representative to get the IB FW1.03. ******************************************************************** ******************************************************************** Before installing this patch on the system, you must check the Interface Board (IB) firmware level for all A5x00s on the system: 1. Enter the following command to see what the firmware revision is for each A5x00 on your system: # /usr/sbin/luxadm display where enclosure is the name of the A5x00. For more information, see the luxadm.1m man page. Look at the output for a line similar to the following to find the firmware level: Revision:1.07 Box ID:0 Node WWN:5080020000000398 Enclosure Name:macs0 The firmware level is referred to as the Revision number. For the example above, the firmware level is 1.07. 2. Based on the firmware levels for all A5x00s on the system, decide what to do next: - If all A5x00s on the system have firmware revision 1.03 or higher, go to step 4. - If there are any A5x00s with firmware revision 1.01 or lower, go to step 3. 3. Due to IB firmware revision level incompatibilities between revisions 1.01 and 1.09, upgrade all A5x00s to IB firmware level 1.03. Contact your local service representative to get the IB firmware level 1.03. DO NOT upgrade the IB firmware level to 1.09 until the firmware is upgraded to revision 1.03. 4. Install this patch on the system. 5. Enter the following command to see what the firmware level is for each A5x00 on your system: # /usr/sbin/luxadm display where enclosure is the name of the A5x00. For more information, see the luxadm.1m man page. Look at the output for a line similar to the following to find the firmware level: Revision:1.09 Box ID:0 Node WWN:5080020000000398 Enclosure Name:macs0 The firmware level is referred to as the Revision number. For the example above, the firmware level is 1.09. 6. Determine if you need to upgrade the firmware. If the firmware level reported by the luxadm command (Step 1) is 1.09 or higher for ALL A5x00s on the system then you do not have to upgrade your firmware as it is already at the proper level. Go to step 8. 7. Download the firmware to your A5x00, if necessary. If the boot device is a part of a A5x00, the host MUST be rebooted from another boot device other than a A5x00 as firmware cannot be downloaded while booted from a A5x00. Note that you will need access to the luxadm utility and the A5x00 firmware file to do the download. a) Stop all I/O activity on the A5x00. b) Unmount any filesystems residing on the A5x00 disks. c) Stop all Sun Enterprise Volume Manager (SEVM) volumes (if any) running on the A5x00. d) Put the system in single user mode using the init command: # /etc/init s NOTE - The following step must be completed for each A5x00 to download the firmware safely: e) Use the luxadm download command to download the new firmware to each A5x00 on the system. Download the firmware to only one A5x00 at a time: # /usr/sbin/luxadm download -s -f where enclosure is the name of the A5x00(s) and firmware_file is the firmware image for the A5x00, which is usually located in /usr/lib/locale/C/LC_MESSAGES/ibfirmware. For more information, see the luxadm.1m man page. CAUTION: This operation may take a few minutes to complete. Do NOT interrupt the operation before it is finished or the system may not be able to communicate with the A5x00. Note that the luxadm command may complete BEFORE the firmware update completes on the A5x00. Verify that the A5x00 has completed by checking the firmware level for all Interface Boards on your A5x00(s) through the FPM. 8. The firmware download is now complete. What to do in case of IB firmware upgrade failure ------------------------------------------------- An upgrade failure could happen under the following circumstances: - Attempting to upgrade from IB firmware revision 1.01 to 1.09 without following the steps outlined above. - Interrupting the luxadm download command before it has time to complete. - Interrupting the re-initialization of the A5X00 after the completion of the "luxadm download" command, say because of power failure to the A5X00. - On very rare occasions, upgrading from IB firmware revision 1.03 to revision 1.09. Such a failure may manifest itself in one of several ways: - The A5X00 is non-responsive to probing as with the "luxadm probe" command. - The disks in the A5X00 become unavailable to the system. - The A5X00 goes offline and does not come back online after more than 5 minutes during the upgrade process. - The FPM on the A5X00 exhibits a flashing warning sign - a triangle with an exclamation point inside - and the failure is traced down to one or both of the IBs. - The FPM is blank, scrambled or otherwise unreadable and is not responsive to queries. If such a failure is encountered, it may be possible to recover by following this procedure: R1. If it is possible to use the FPM, determine if either of the IBs has a valid copy of IB firmware. See the A5X00 service manual for instructions on how to determine IB firmware revision level from the FPM. If both IBs on the A5X00 have valid, matching revisions of firmware, then the problem may be in the cable, Host Adapter, or GBICs. R2. If only one of the IBs has a valid firmware revision, power off the A5X00 and remove the IB that is invalid. If neither of the IBs have a valid revision of firmware or the A5X00 is unresponsive, go to step R6. R3. Put the IB with a valid revision in slot B and power on the A5X00. Wait until the A5X00 initializes and verify that the IB in slot B has a valid firmware revision. Note - It may be possible that the revision will be different after this operation is complete. R4. Power off the A5X00 and remove the IB in slot B. Insert the other IB into slot A. Power on the A5X00. Wait until the A5X00 initializes and verify that the IB in slot A now has the same firmware revision as the other IB. If the A5X00 does not initialize, go to step R6. R5. Insert the other IB in slot B. - If both IBs now have IB firmware revision 1.09, then IB firmware upgrade for this A5X00 is complete. Continue with the upgrade process above. - If both IBs now have firmware revision 1.03 or 1.01, follow the instructions above to upgrade the IBs to revision 1.09. R6. If it is not possible to use the FPM, power-cycle the A5X00, and wait until it initializes. If initialization does not complete and the A5X00 does not complete POST, remove one of the IBs and power cycle again. If initialization still does not complete, swap the IBs and power cycle again. If initialization still does not complete it is necessary to replace the IB board(s). Contact your local service representative to replace the IB boards. README -- Last modified date: Monday, March 12, 2001