Patch-ID# 109529-02
Keywords: luxdiag luxadm libg_fc FCode qlgc_s_download liba5k  
Synopsis: SunOS 5.8: luxadm, liba5k and libg_fc patch
Date: Oct/09/2000

Solaris Release: 8

SunOS release: 5.8

Unbundled Product: 

Unbundled Release: 

Topic: SunOS 5.8: luxadm, liba5k and libg_fc patch

BugId's fixed with this patch: 4174203 4267328 4278281 4299846 4306461 4306571 4308889 4309126 4319786 4322825 4325179 4328845 4331309 4332727 4358935 4359401 

Changes incorporated in this version: 4325179 4328845 4331309 4332727 4358935 4359401

Relevant Architectures: sparc

Patches accumulated and obsoleted by this patch: 110331-01 

Patches which conflict with this patch: 

Patches required with this patch: 

Obsoleted by: 

Files included with this patch:


/usr/sbin/luxadm
/usr/lib/liba5k.so.2
/usr/lib/libg_fc.so.2
/usr/lib/locale/C/LC_MESSAGES/a5k_g_fc_i18n_cat


Problem Description:

        This patch revision was generated to accumulate and obsolete
        the feature changes introduced in point patch 110331-01.

4328845 liba5k doesn't define all its dependencies
4325179 memory leak in g_get_port_path(), g_get_port_state()
4331309 interface name change requested for d_dev_bypass_enable, d_bp_bypass_enable
4332727 luxadm should not use libthread
4359401 enhance luxadm functionality to support new product offering
4358935 Need to enhance luxadm, libg_fc and liba5k to handle 24 bit-portid and ha.

(from 109529-01)

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.
4306571 usoc stats structure display in error
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.
4322825 luxadm display fails on a non-enclosure FC drives
4319786 luxadm qlgc_s_download failing on latest version of FCode (1.7)

*******************************************************************
*******************************************************************
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.

The FC100/S Host Adapter fcode may have to be downloaded into the
FC100/S Host Adapter after installing this patch.

Do not reboot the system until the patch has been installed.

*******************************************************************
*******************************************************************

(from 110331-01)

4328845 liba5k doesn't define all its dependencies
4325179 memory leak in g_get_port_path(), g_get_port_state()
4331309 interface name change requested for d_dev_bypass_enable, d_bp_bypass_enable
4332727 luxadm should not use libthread
4359401 enhance luxadm functionality to support new product offering
4358935 Need to enhance luxadm, libg_fc and liba5k to handle 24 bit-portid and ha.

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 <enclosure>

    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 <enclosure>

    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 9.

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 <firmware_file> <enclosure>

    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.

9.  Use the luxadm fcal_s_download command to check the fcode level of
    all of the FC100/S Host Adapters on the system:

    # /usr/sbin/luxadm fcal_s_download

    Found Path to 2 FC100/S Cards
    Device: /devices/sbus@f,0/SUNW,socal@0,0
    Detected FC100/S Version: @(#) FCode 1.11 97/12/07
    Device: /devices/sbus@2,0/SUNW,socal@2,0
    Detected FC100/S Version: @(#) FCode 1.11 97/12/07
    Complete

    The fcode level is reported for each FC100/S. For the example above,
    the firmware level is 1.11 for both FC100/S Host Adapters found.

    NOTE:  The fcal_s_download command DOES NOT check the SOC+ on Sun
           Enterprise I/O Boards.  Patch 103346-11 (or newer) should be applied
           on systems with onboard SOC+ ports.

10. Determine if you need to upgrade the fcode.

    If the fcode level for ALL of the FC100/S Host Adapters is
    1.11 or higher then you do not have to upgrade your fcode as
    it is already at the proper level.

    Go to step 12.

11. If you are in the single user mode, go to step 12, otherwise:

    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

12. Use the luxadm fcal_s_download command to download the new fcode to
    all FC100/S Host Adapters on the system:

    # /usr/sbin/luxadm fcal_s_download -f <fcode-file>

    where fcode-file is the path to the FC100/S Host Adapter fcode
    image file. This is usually /usr/lib/firmware/fc_s/fcal_s_fcode.

    This command is interactive and expects user confirmation
    before downloading the fcode to each Host Adapter.
    For more information, see the luxadm.1m man page.

13.  You have now completed the upgrade process.

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.

----------------------------- 

none

