Patch-ID# 111413-14 Keywords: luxdiag luxadm libg_fc fcode qlgc_s_download liba5k Synopsis: SAN 4.4.2: luxadm, liba5k and libg_fc patch Date: Aug/30/2004 Install Requirements: See Special Install Instructions Solaris Release: 8 SunOS Release: 5.8 Unbundled Product: SAN Unbundled Release: 4.4.2 Xref: Topic: SAN 4.4.2: luxadm, liba5k and libg_fc patch Relevant Architectures: sparc BugId's fixed with this patch: 4322345 4383149 4397071 4401517 4423409 4425154 4426724 4426912 4428394 4429517 4431824 4433284 4449175 4449404 4449953 4455468 4455577 4462496 4462858 4463188 4469666 4472816 4473337 4478093 4479154 4488727 4492459 4497195 4497256 4501754 4533136 4594744 4620792 4622011 4627913 4628256 4632356 4639750 4645177 4649823 4653210 4656321 4659903 4679001 4697537 4705260 4716866 4717605 4719114 4720752 4721744 4729297 4730548 4730870 4731789 4732376 4734692 4736094 4739247 4739315 4741532 4745557 4745596 4750923 4753995 4755594 4759725 4761677 4775357 4778380 4780746 4782045 4787666 4789699 4794578 4800328 4800418 4800576 4801408 4801410 4803203 4811626 4815895 4842236 4872991 4873329 4878328 4886903 4888193 4921470 4934649 4953976 4967529 4981945 5012124 5046819 5090186 Changes incorporated in this version: 5046819 5090186 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: 109529-07 (or newer) Patches required with this patch: 109529-06 111095-17 or greater 111412-15 or greater Obsoleted by: Files included with this patch: /usr/lib/liba5k.so /usr/lib/liba5k.so.2 /usr/lib/libg_fc.so /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/lib/sparcv9/liba5k.so /usr/lib/sparcv9/liba5k.so.2 /usr/lib/sparcv9/libg_fc.so /usr/lib/sparcv9/libg_fc.so.2 /usr/sbin/luxadm Problem Description: 5046819 luxadm should support new array product 5090186 Change preinstall scripts for SAN patches (from 111413-13) 4921470 Luxadm to extend support for FC 3510 JBOD - SES support 4967529 luxadm core dumps when trying to display a device that has been deleted 4981945 IO DR to replace JNI HBA results in No version available 5012124 luxadm should support 3511 array (from 111413-12) 4873329 Luxadm fcode download updates the fcode for the qlc HBA on the boot path 4934649 luxadm fcode_download -p returns error if JNI card does not exist on host 4953976 luxadm display devicename shows incorrect unformatted capacity (from 111413-11) 4778380 Support fcode download functionality for jni hba 4800418 WARNING during FCode update on 23xx cards shows as ISP2200 4801408 g_free_portlist(NULL) core dumps 4801410 g_get_nexus_path(NULL, &nexus_path_addr) core dumps 4842236 Support required for FC SCSI bridge device 4872991 luxadm display No UNIX Label in solaris 9 after installing patches 4878328 init_drv may do a double free 4886903 Need support for PSX1000 4888193 patch 111413 breaks luxadm display on sbus systems (from 111413-10) 4656321 luxadm removes wrong disk when WWN=0 4697537 Add new product offering VID/PID to table for discovery purposes 4705260 passing a null argument to functions results in a segmentation fault 4719114 Memory leak issues seen with g_get_wwn_list libg_fc library interface 4729297 some of libg_fc scsi library interface function core dump 4734692 libg_fc library functions return zero when passed a null ptr 4736094 Mem leak with g_stms_path_get_state() 4745557 g_get_lilp_map illegal acces with strcpy 4745596 Memory leak issue seen with g_get_lilp_map 4750923 luxadm display failed with Error: Invalid pathname - after DR off/on 4753995 luxadm display on FC-Tape WWN shows duplicate output 4755594 performance on probe and display needs to be improved 4759725 g_get_lilp_map test core dumps if NULL is given for the Path argument 4761677 luxadm utility failed to display mpxio logical drives 4775357 luxadm insert doesn't spin up drive after installing latest patches 4780746 SFK6.2.2 luxadm display incorrect path name on MPxIO devices 4782045 Memory leaks and duplicate free seen with g_get_multipath() 4787666 luxadm display WWN showed incorrect unformatted capacity 4789699 luxadm -e rdls displays huge negative number. 4794578 Memory leaks seen with g_get_wwn 4800328 luxadm disp on mpxio device displays erroneous msg. 4800576 Duplicate free (duf) and read from uninitialized (rua) seen with g_get_multipath 4803203 luxadm display WWN showed duplicate device entries 4811626 luxadm probe fails to see FC devices when SCSI SE3310/3110 arrays are attached 4815895 mem leak in g_stms_path_enable(), g_stms_path_disable() (from 111413-09) 4428394 luxadm failover messages confusing, not informative enough 4622011 luxadm commands fail entirely when ULP failure occurs while processing FC devics 4627913 Luxadm needs different behaviour for fabric devices 4628256 luxadm display output missing multiple paths for T3 device 4639750 After intalling Leadville 5c on S9-b55, luxadm is broken if a RSM is connected 4645177 Invalid argument (NULL) passed to function results in a seg fault 4649823 l_get_disk_status() returns success and data with invalid input arg 4653210 libg_fc needs to support 3rd party vendor FCA on leadville stack 4659903 Error: Device's Node WWN is not found in the WWN list using luxadm remove 4679001 libg_fc needs to handle FC device list from driver with unexpected size 4716866 libg_fc operation for getting FC topology fails with busy error from excl open. 4717605 Need to implement PSARC/2002/362 : MPXIO/scsi_vhci path disable 4720752 g_get_dev_list fails when a logout fails on a single device 4721744 Program takes a SEGV in g_get_lilp_map 4730548 Null input failures for PSARC 2002/171 defined api 4730870 g_dev_map_init() takes too long when login to device fails 4731789 Rfe - Implement a new return code to signify the end of a list 4732376 luxadm disp on WWN doesn't show all matching scsi_vhci device. 4739247 luxadm does not recognize all SE9900 LUN types 4739315 g_rdls goes infinite loop when PLOGI fails on a device. 4741532 luxadm gets "Could not get the target inquiry data from FCP" when path offline (from 111413-08) 4594744 patch 111413-05 not -R compliant 4632356 New 2G HBAs require FCode download capability from user land (from 111413-07) 4533136 1.13.06 upgrade script output can be misinterpreted 4620792 SE6900 + MPxIO: 2nd FC-Fabric Pair Not Used (from 111413-06) 4383149 luxadm requires awareness of multi-LUN devices 4472816 luxadm -e forcelip fails on /dev/rmt argument 4488727 inq_dtype field should be masked with DTYPE_MASK 4497195 luxadm display on port b of a bypass device won't work with mpxio enable. 4497256 luxadm displays wrong port status 4501754 Luxadm inquiry gives no output after install of patch 111413-04 (from 111413-05) 4492459 luxadm displays garbled version string during new FCode download (from 111413-04) 4462496 luxadm should support fcode download for the new FC HBA 4469666 move mp_pathlist_t from gfc.h to g_state.h 4473337 l_get_box_list needs better handling of locked resources 4478093 luxadm remove -F using WWN results in Error: converting WWN to physical path. 4479154 luxadm commands causing tapestry/mpxio devices to go offline (from 111413-03) This patch provides enhancements for fabric device support as well as the bug fixs listed below. 4397071 g_get_devmap library call fails when no targets are present on loop 4401517 luxadm does not understand WWN cmd line args in upper case 4426912 introduction of g_get_lilp_map interface (based on updated FCIO_GET_DEV_LIST) 4423409 luxadm should report EBUSY with msg better than "Error: Error opening path" 4425154 T3 T3B Invalid field in CDB with 109529-03 or -04 (SUNWluxop) 4426724 the retry time interval for fc driver ioctl needs to be optimized. 4429517 libg_fc needs to handle dev_state for FCP_TGT_INQUIRY ioctl 4431824 luxadm shouldn't print Serial# and Firmware Rev fields for SENA 4433284 luxadm qlgc_s_download needs to filter 2100 or 2200 cards 4449175 Unrecognized mpxio devices cause luxadm insert to dump core 4449404 Stdiscover will not start after disconnecting mia on t3 connected to remote sw 4449953 g_get_pathlist needs to recognize dev paths w/o minor names 4455468 "luxadm inq a" prints incorrect results and dumps core 4455577 g_get_dev_list needs to return devoce list for partial failure. 4462858 timer on FCP_TGT_INQUIRY ioctl call needs to be decreased 4463188 luxadm remove core dumped on second attempt after failing to remove device (from 111413-02) This patch revision was generated due to compilcation with 111413-01. (from 111413-01) All necessary storage command and library support for the MPXIO (Multi-path IO project). This patch does not enable MPXIO but does support it. 4322345 luxadm should support T300 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-9 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. NOTE : This patch requires the package SUNWsan (San Foundation Kit). The SUNWsan package is available via the Sun Download Center at http://www.sun.com/storage/san/ !!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! This patch, 111413, is not compatible with jfca driver patches earlier than 114877-08. It is strongly recommended that all systems with patch 114877-07 (or earlier) be upgraded to 114877-08 (or later). !!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! README -- Last modified date: Monday, August 30, 2004