


                                Emulex Corporation



                          Light Pulse Family Host Adapter
                            Combined Boot Release Notes


                                      5.00a5


                                  April 19th, 2004



I. Introduction


This Combined Boot version 5.00a5 contains:

(1) x86 BootBIOS  version 1.70a1 
(2) OpenBoot      version 1.41a4 

For detailed information about x86 BootBIOS, please refer to section II below,
and for OpenBoot, section III.  This Combined Boot can boot on either Intel 
x86 Platform or Non-Intel Fcode.  In other words, the platform is transparent
and the user should not be concerned with any differences with regard to x86
BootBIOS or OpenBoot.

Combined Boot is a complete image, whenever it is enabled by any Emulex OS 
utility, the whole image (x86 BootBIOS and OpenBoot) is enabled.  This 
is also true for disable.


Files included in this release:

\readme.txt       this file you are reading
\SC500A5.PRG      Lp7000  Combined Boot
\DC500A5.PRG      Lp8000  Combined Boot
\CC500A5.PRG      Lp9002  Combined Boot


Combined Boot Load Procedure

The Light Pulse Combined Boot is distributed as a .PRG file.  This file may be 
downloaded to the Adapter using the firmware upgrade procedure with the following 
Utility in Various systems. 

  1. LP6DUTIL.EXE              : DOS based utility.

     Please refer to the LP6DUTIL version 9.0a13, or later, documentation for user
     interface how to download EFIBoot in DOS PCI systems.

  2. LPUTILNT                  : Windows Miniport Driver.

     Please refer to the utility user manual for details on using the above tool.

  3. Emulex Configuration Tool : Windows Port Driver.

     Please refer to the elxcfg user manual for details on using the above tool.


/*-------------------------------------------------------------------------------*/
/*                                  History                                      */
/*-------------------------------------------------------------------------------*/
Problems Fixed, Features added or Other Updates Since 5.00a4:
-----------------------------------------------------------------------------------

  (1)  Fixed the drivers had to be connected more than once: can now boot without 
       connecting through EFI Shell.

  (2)  Fixed when Firmware Update Protocol functions called, not able to create/
       delete partition on targets: can now create/delete partition on targets


Problems Fixed, Features added or Other Updates Since 5.00a1:
-----------------------------------------------------------------------------------

  (1)  Fixed CR9254: Updated Readme document.


Problems Fixed, Features added or Other Updates Since 5.00a0:
-----------------------------------------------------------------------------------

  (1)  Changed the source files .bin to .efi for EFIBoot.


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

II. x86 BootBIOS

The current BootBIOS provides x86 boot capability through the use of INT13 system 
BIOS calls.  The BootBIOS supports:

(1)  Multi-topology: Fabric Point to Point, FC-AL, Private loop and Public loop 
(2)  Multi-initiators: Up to 8 adapters in a system
(3)  Multi-LUNs: Up to 256 LUNs 
(4)  Multi-boot: it complies with the BIOS Boot Specification (BBS).
(5)  EDD (Enhanced Disk Drive Services): it supports both EDD 3.0 and EDD 2.1 
     depending on the selection made in the BIOS Utility. 
(6)  Boot fail over feature: This was implemented in BootBIOS version 1.20.  There 
     are eight boot entries that can be configured.  If the first boot entry fails 
     for any reason, it is still able to boot from the second configured boot 
     entry and so on.

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

1. History:

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

                                      1.70A1
Problems Fixed, Features added or Other Updates Since 1.70A0:

1.  During the BIOS login, when the HBA receives the Unit Attention, the BIOS did 
    two retries for the Test_Unit_Ready command, this release will increase up to 
    five retries for TUR when the HBA receives the Unit Attention. (CR9429)

2.  Move hard_alpa variable to common region area. (CR10079)  

3.  Added LP101 support. (CR10080)

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

                                      1.70A0
Problems Fixed, Features added or Other Updates Since 1.63A2:

*  When Start Unit Command is enabled, there should be Test-Unit-Ready commands
   issued after the Inquiry command during the process of scan disk target 
   function.  This caused a boot failure if LUN1 from the primary path was 
   deleted and was expecting to boot from LUN1 on the secondary path.  The new 
   release added the TUR following the Inquiry command and makes FC boot successful 
   on the secondary path.

*  There is display error in BIOS utility menu on 3-digit adapter card, such as
   Lp982 in previous release code, the new release corrects the display error
   and fixed the issue.  

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

                                      1.63A2

Problems Fixed, Features added or Other Updates Since 1.63A1:

*  In some servers, the HBA fails to see target LUN addresses above 7F.  
   This release takes care this problem by fixing the size of temp_lun and can now
   see all the LUNs up to FF.

*  On some servers, the HBA fails to locate the target on some slots, this release 
   will fix the problem by re-adjusting the extend AX segment register.

*  Added new feature to scroll down instead of clearing the screen by disabling the
   clear screen function before loading the BIOS. 
   
***********************************************************************************

                                      1.63A1
Problems Fixed, Features added or Other Updates Since 1.63A0:

*  Update Copyright to 2003.

*  Support xx50 card.


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

                                      1.63A0
Problems Fixed, Features added or Other Updates Since 1.62A1:

*  Added new feature to support up to 64 HBA adapters in a system.

*  Replaced new hot key in BIOS utility for return to Previous Menu from <PageUp> 
   to <Esc> key.  

*  When EBDA (Extended BIOS Data Area) reached more than 64k memory area or more 
   than one segment area, the HBA is failing to search for any fibre disks.  This 
   release takes care of the problem.

*  Re-arrange the Intel BIOS data segment for American Arium debugger ECM-20 to make
   it compatible with Link & Locate x86 and 286/386.


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

                                      1.62A1
Problems Fixed, Features added or Other Updates Since 1.62A0:

*  Add the reset behavior for error attention 0x04 during runtime. 


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

                                      1.62A0
Problems Fixed, Features added or Other Updates Since 1.61A2:

*  Using a USB mouse on some systems will cause our HBA to fail to boot, the reason
   is the USB mouse uses the EBDA (Extended BIOS Data Area) memory area, which
   automatically relocates the HBA EBDA memory address pointer once it is loaded.
   The fix will re-allocate and update the memory pointer in the data area, thus
   allowing the HBA to boot successfully.

*  Add firmware requested reset behavior for the Error Attention 0x04.

*  BIOS does not display targets when connected to a switch port which supplies the 
   targets with D_ID = 0xXX0000.  While doing Perform_GID_FT call, the returned 
   port ID list is checking only 2 bytes of information.  The fix will use all 3
   bytes of information for the Port ID, and it will identify the targets properly.

*  The prior code was using PIT timer #1, this version changed from PIT Timer 1 to 
   PIT Timer 2 that is a user defined timer.

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

                                      1.61A2
Problems Fixed, Features added or Other Updates Since 1.61A1:

*  There should be an update for the data variable after each INT13 call, because 
   INT13 call has reset function. 

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

                                      1.61A1
Problems Fixed, Features added or Other Updates Since 1.61A0:

*  Corrected the image header ID for LP850.

*  Added the ALPA parameter update to NVRAM.

*  Added the new spin up banner display when spin up delay is enabled.

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

                                      1.61A0
Problems Fixed, Features added or Other Updates Since 1.60A7:

*  System will not pass post if either LP9802 or LP982 are installed with a LP7000.

*  System would display a second banner when the LP982 was installed because there
   weren't any device tables in the code.

*  Add the auto detect feature to automatically detect the format of the boot 
   sector, either 32-sector or 63-sector, when there is a specific array controller 
   present.  Also, add the option to either disable or enable this auto sector 
   detect feature, the default is auto enable.
 
*  Update the copyright date in all boot BIOS banners to 2002.

*  Changed the boot order option to load the HBAs from the newest LP9802 down to
   the oldest LP6000.

*  Changed the Spin-up delay behavior, now the BIOS checks for the device presence
   first.  Thus if the device is ready, boot immediately, otherwise wait for the 
   spin-up delay.


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


2. BootBIOS Limitations and Default Configuration


2.1 Limitations and Features

Below is a list of the current preliminary LightPulse BootBIOS limitations and 
features.

*  In order to work properly, this version of BootBIOS must have the following 
   Firmware version or above.

     Firmware Version             Adapters
     ----------------             --------
   1. 3.30 or above               LP7000.

   2. 3.90 or above               LP8000, LP850, LP9002 and LP952.
 
   3. 1.01 or above               LP9802 and LP982.

   4. 1.80 or above               LP10000, LP1050 and LP101.

*  If there are any hardware changes such as replacing drives or re-configuring
   a Fabric switch environment, make sure to re-configure BootBIOS using the 
   BootBIOS Utility.

*  If the message "Retry this adapter!!" was displayed during the BootBIOS 
   scanning, please check the hardware configuration or re-configure BootBIOS
   using the BootBIOS Utility.

*  It will allow any number of LightPulse adapters in a system.  It can be
   any combination of LP7000, 8000, 9002, 9802, 10000, 850, 952, 982, 1050 and 101.
   However, only the first eight adapters can be configured as the boot adapters. 
   Any adapter after the eighth adapter will not be visible during the boot process.

*  Press <Alt E> to enter the Emulex BootBIOS Utility.

*  If a system does not have Multi-boot (BBS), the Boot disk (drive C:) 
   is determined by the first configured boot entry (Primary boot entry).
   It can be on the first adapter or the second adapter.  If a user wants to 
   configure the second adapter, do not configure any boot entry on the first 
   adapter.

   Example 1:

   Adapter 1: boot_entry0, boot_entry1.
   Adapter 2: boot_entry2, boot_entry3.
   
   Drive C: boot_entry0

   Example 2:

   Adapter 1: 
   Adapter 2: boot_entry2, boot_entry3.
   
   Drive C: boot_entry2

*  If a system supports Multi-boot (BBS), the Boot disk (drive C:) will be
   the first entry in Multi-boot on the system BIOS setup Menu.  The list of 
   entries that are exported to the Multi-boot menu, are determined by the list
   of configured boot entries in the BIOS utility.  For example:

   Adapter 1: boot_entry0, boot_entry1.
   Adapter 2: boot_entry2, boot_entry3.

   The order of boot entries that are exported to the Multi-Boot (BBS) are:
   boot_entry0, boot_entry1, boot_entry2 and boot_entry3.  However, Multi-
   boot can overwrite this order by: boot_entry2, boot_entry0, boot_entry1
   and boot_entry3.  In this case, Drive C: is boot_entry2.

*  A maximum of 256 LUNs is supported (LUN 0 through 255) per target id 
   (D_ID or ALPA).  These 256 LUNs can be scanned in different stages using the
   BootBIOS Utility.  However, only 8 entries can be seen during BIOS 
   initialization.

*  For FC-AL, the adapter's ALPA, PCI bus number and PCI device number can be 
   viewed on the welcome screen or in the BootBIOS Utility menu.  In this way, 
   the user can know exactly which adapter is in which PCI slot in the system.

*  For Fabric Point to Point or Public Loop, the S_ID (source id), PCI bus
   number and PCI device number will be displayed on the screen. 

*  On Fabric environment, the maximum number of devices (D_ID) is 90 when 
   configuring boot device in BootBIOS Utility.

*  On Private Loop, the maximum number of devices (ALPA) is 99 when 
   configuring a boot device in the BootBIOS Utility.


2.2  Default Configuration

*  To reset the selected adapter to its defaults, press <d> in the Parameter 
   menu. 

*  BootBIOS is disabled by default.  In order to use Emulex BootBIOS, the user 
   must press <Alt E> to enter the BootBIOS Utility to enable the BootBIOS.

*  In "Configure Boot Devices" option, Loop is the default mode.  The BootBIOS 
   will look for a Public Loop first.  If a Public Loop is not detected, it will
   look for a Private Loop.

*  For "Configure Boot Devices" option, the eight boot entries will be zero 
   by default (<d> key).

*  For FC-AL, each host adapter has a default ALPA of 00 (Hex).

*  If more than one adapter is in the system with the same PCI bus number, and 
   each has a Boot drive attached, the first PCI-scan adapter will be the BOOT 
   adapter.  The first adapter is usually the lowest PCI slot in the system.  
   This information can be viewed from the BootBIOS Utility.

*  Default PLOGI Retry Timer is 0 (no retry), it can be changed to 50, 100, 
   and 200 milli-sec.

*  Spin up delay is disabled by default.

*  Auto Scan is disabled by default.

*  All the above default settings can be changed in the BootBIOS Utility.  All 
   adapters or BOOT drives can be configured to different ALPAs other than 
   their default values.

*  EDD 3.0 is disabled by default.  This is because current Win2K does not 
   support EDD 3.0 and it could hang during the Win2K installation on regular 
   Pentium series systems.

*  Start Unit command is disabled by default.

*  Environmental variable is disabled by default.

*  Auto Sector format is enabled by default.


3. BootBIOS Utility

User can press <Alt E> to enter the BootBIOS Utility.  Each menu is described below.


3.1 Main Menu

This menu lists all the adapters in the system and the BootBIOS version number.  
User can enter the number to select a particular adapter.


3.2 Adapter Menu

*  The adapter is displayed by ALPA for FC-AL, PCI bus number and device number.

*  The top screen also displays I/O base address, on board firmware version, 
   port name and node name.

*  <x> is the only way to exit the BootBIOS Utility and reboot the system.

*  <d> is used to reset the selected adapter to the default value while in 
   the BootBIOS Utility.


3.2.1 Configure Boot Devices

Currently, this menu supports FC-AL, Private Loop, Public Loop, and Fabric 
Point to point.  If this board is configured as FC-AL, it will do public loop 
first, if it fails, it will perform private loop.

Configure Boot Devices will configure Fabric, Public loop, and Private 
loop.  On Private loop, it can boot from either WWPN or ALPA.  On Fabric, it 
can boot from either WWPN or DID.

The first entry is the primary boot entry, please fill in this entry before 
filling in the rest of the entries.

*  It has 8 boot entries with the first one as the primary boot entry. 

*  If user selects any entry, another menu will be displayed:

   00. Clear selected boot entry!!  This is used to clear the selected boot
       entry.
 
   01. DID or ALPA, WWPN and disk information.  The LUN will stop on the first
       LUN found on this particular target device.

   02. Same as 01 with different target device.

*  If the user selects any two-digit number such as 01, a Pop up menu will be
   shown.  Please enter the first two digits of the LUN to be scanned for.

*  A list of 16 LUNs starting with the LUN that was entered in the above 
   paragraph.  In front of each entry B#D or B#W specifies the Boot entry 
   number with boot via DID or WWPN.  For example, B1D means Boot entry 
   number one will boot via DID.  B2W means Boot entry number two will 
   boot via WWPN.

*  Enter the two digit LUN: 
       
       If any two-digit number is entered, another Pop-up menu will be shown. 

              1. Boot this device via WWPN
              2. Boot this device via DID

*  If a user selects 1.  The WWPN of the earlier selected entry will be saved 
   in the Flash.  However, during initial BIOS scan, it will issue a Name 
   Server Inquiry GID_PN (Get Port Identifier), then based on this DID, do 
   the rest of the scanning.

*  If a user selects 2.  The DID of the earlier selected entry will be saved 
   in the Flash.


3.2.2 Configure This Adapter's Parameters

This option is used to configure parameters for this adapter.


3.2.2.1 Enable or disable BootBIOS on this adapter

This option is used to Enable or Disable BootBIOS on an individual adapter 
basis.  The default is disabled.


3.2.2.2 Change default ALPA of this adapter

This applies only to FC-AL.  This option can be used to change the ALPA of the 
adapter.  The default value of the ALPA for the adapter BIOS is 00 in Hex.  If 
a user changes the Host ALPA to a different value, it will not show on the NVRAM 
ALPA until the system has been reset.


3.2.2.3 Change PLOGI Retry Timer

This option is used to set the interval time for the PLOGI Retry Timer.  This 
option is especially useful for Tachyon-based RAID arrays.  On very rare 
occasions, a Tachyon-based RAID array will reset itself and the port will be 
temporarily off line in the loop.  When the port comes to life, the PLOGI 
retry interval helps to discover this device. 

The resolutions are 0 (no retry), 50, 100, and 200 msec.  The time it takes 
for one PLOGI to scan the whole loop (if 126 ALPA are on the loop) is shown 
below:

          50 msec will take 5 to 6 seconds.
          100 msec will take 12 seconds.
          200 msec will take 22 seconds.


3.2.2.4 Topology Selection

This menu is used to choose the Topology:

  (1) Auto Topology (Default): Loop first, if it fails, it will try Fabric point to
      point.
  (2) Auto Topology: Fabric point to point first, if it fails, it will try Loop.
  (3) FC-AL (Loop) only
  (4) Fabric point to point only
 

3.2.2.5  Enable or Disable Spin up delay 

The default is disabled

When the spin up delay was enabled, it'll search for the first available boot 
device, if there is a boot device present, boot immediately.  Otherwise, if the 
boot device is not ready, then wait for spin up delay and keep searching for the 
bootable device for 3 minutes.  If the BootBIOS doesn't find the device within
three minutes, then it will continue the boot scanning algorithm, and hopefully 
another multi-boot device is available.

If no boot devices have been defined, and the Auto Scan flag option is enabled
(defaults to disabled), then the BootBIOS will delay for 5 minutes before scanning 
for devices.  In the private loop case, we will attempt to boot from the lowest 
target AL_PA we find.  In the fabric-attached case, we will attempt to boot from 
the first target found in the NameServer data. 


3.2.2.6  Enable or Disable Auto Scan

If there is a configured boot entry, autoscan setting will not be allowed.
It has to be set to default first <d>, then the autoscan can be set.

The default is disabled.  The other options are:

2. Any first device
3. First LUN 0 device
4. First NOT LUN 0 device

The above options are valid only if none of the eight boot entries are 
configured.  In other words, the configured boot entry will override any of the 
above options if they were selected.


3.2.2.6.1 Any first device

The first adapter will:

*  Issue a Name Server Inquiry.  
*  The first D_ID from Name Server Inquiry will become the boot device.

The adapter will attempt to log in to a Public Loop first.  If it fails, it will 
log in to a Private Loop.  The first successful scan device will be the boot device 
and only this one device will be exported to the Multi-Boot Menu. 


3.2.2.6.2 First LUN 0 device

Same as 3.2.2.6.1 except auto scan the first LUN 0 as the boot device.


3.2.2.6.3 First NOT LUN 0 device

Same as 3.2.2.6.1 except auto scan the first NOT LUN 0 as the boot device.

Therefore, it is strongly recommended that you use the "Configure Boot Devices" 
option to configure at least one boot entry for Fabric, Public loop, or Private 
loop configuration.


3.2.2.7 Enable or Disable EDD 3.0

EDD 3.0 was disabled by default.  This is because the current Win2K does not 
support EDD 3.0 and it would hang the system during the Win2K installation.


3.2.2.7 Enable or Disable Start Unit Command

This option was disabled by default.  It is used to issue the SCSI Start Unit
command.  When it is enabled, the user has to know the specific LUN to
issue the SCSI Start Unit Command to.  This is because when the user configures
the boot device, "Enter two digits of starting LUN (hex):" has to be the known 
specific LUN and it will not display like the regular LUN scanning.


3.2.2.7 Enable or Disable Environment Variable

This option was disabled by default.  It is used to set the boot controller 
order if the system supports the Environment Variable.


3.2.2.7 Enable or Disable Auto Sector Format Select

This option was enabled by default.  It is used to automatically define the 
boot sector (32-sector or 63-sector) of the target disk.  If there isn't any 
partition on the target, the default boot sector format is 63 sectors.


4. Procedure to Build the Boot Disk from the LightPulse Adapter

(1) Set the boot disk to be the lowest AL_PA in the loop or use BootBIOS Utility 
    to configure the ALPA.
(2) Prepare a floppy disk that contains both DOS FDISK and FORMAT programs.
(3) Boot from floppy and use FDISK to create DOS primary partition.
(4) Format the C: drive from the floppy.
(5) Install DOS version 6.00 or above.
(6) Install Windows NT.


5. Procedure to Install Windows on the Fibre Channel Disk

Make sure the user always gets the latest version of Windows Port driver, 
SCSIport Miniport, or Storport Miniport driver. 

*  Your computer's system BIOS may require that another controller take
precedence over the Emulex adapter during boot.  If this occurs, you must
disconnect or disable the other adapter.  This will allow you to configure 
and build your operating system on the drive connected to the Emulex adapter.


5.1 Install Windows NT 4.0

(1) Boot with Windows NT 4.0 Setup Media (See Microsoft Documentation For 
    Details)
(2) When the "Specify additional storage driver" message is displayed, insert 
    the Emulex driver diskette.
(3) Follow the instruction to complete the installation.

  
5.2 Install Windows 2000

(1) Boot with Windows 2000 Setup Media (See Microsoft Documentation For 
    Details)
(2) Monitor the white bar on the bottom of the screen. 
(3) Press [F6] within 5 seconds when the "Press F6 if you need to install a 
    third party SCSI or RAID driver" message is displayed. 
(4) When the "Setup could not determine the type of one or more mass storage 
    devices installed in your system, or you have chosen to manually specify an 
    adapter." message is displayed, insert the Emulex driver diskette.
(5) Follow the remaining instructions to complete the Windows 2000 installation.


6. Advanced BootBIOS Features


6.1 Multi-Boot BIOS (BBS)

Multi-boot BIOS is in compliance with BIOS Boot Specification (BBS).  The 
system must have multi-boot system BIOS in order to take advantage of this 
feature.  Multi-boot BIOS allows a user to select any boot disk in the system 
BIOS setup menu.  The boot disk can be a Fibre Channel drive, a SCSI drive, an 
IDE drive or a floppy drive.  Emulex BootBIOS will supply 8 drives to the 
system BIOS menu.  The multi-boot BIOS can override the Fibre Channel drive
that is selected in the BootBIOS Utility.  

For example, the system has only eight Fibre Channel disks.  The boot disk has 
ALPA 02.  However, the user can select ALPA 23 in the system BIOS setup menu. 
The boot device will be Fibre Channel disk with ALPA 23 instead of ALPA 02 
that is set in BIOS Utility 6.2 Driver Initialization after BIOS Boot.


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



III. OpenBoot


This version of OpenBoot supports FC-AL, Private loop, Public loop, and 
Fabric Point to Point.  Also, it supports multi-initiators and multi-LUNs 
(0 through 255).


----------------------------  NOTES and CAUTIONS  --------------------------------
** Ensure that critical files on local boot disk are backed up
   as a measure of protection.

(1) This procedure assumes there is already a 'local' boot disk.

(2) The size of the intended (target) fibre channel disk should 
    be big enough to hold all the file systems, and swap space 
    of the local current boot disk. 
   
(3) As there will probably be more than one logical disk drive on
    the fibre channel adapter it will be necessary to use persistent
    binding ('nailing' a specific scsi id to a specific wwpn or did).

(4) It will be necessary to correlate the intended boot disk displayed
    by the 'probe-scsi-all' command to the devices displayed by the
    operating system.


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

1. History:

-----------------------  NEW CHANGES  1.41A4  ------------------------

1.  The "ct-req" info. was erased by adding the "memory erase" function 
    before "ct-req" dma-free in previous release which cause the fcode 
    fail to see the target in fabric mode, the new fixed is removed the 
    "memory erase" function from "ct-req" before the dma-free. (CR11852) 


-----------------------  NEW CHANGES  1.41A3  ------------------------

1.  In some system server, during the DR, there is a WARNING message
    with memory leaked issue.  The new release corrected this issue by
    adding additional memory erase functions to set to 0 all the previously
    obtained dma memory before the fcode released out the dma and virtual 
    address mappings by dma-map-out and dma-free. (CR11350 & CR11351)

2.  In the universal boot code, during the boot time, there is an 
    warning message "Warning: Fcode sequence resulted in a net stack 
    depth change of 1", the new release fixed issue by remove some 
    unnecessarily call function in the fcode. (CR11538) 

3.  In some system, if the HBA was fail on the initialization by pulling
    or remove the cable during boot time, the .properties command in the
    ok prompt will display the wrong mode number of the HBA.  The new 
    fixed will not show any model number of the HBA in this scenario.  If 
    the system initize the HBA properly, it will display the correct 
    model number of the HBA. (CR9842)    

4.  Added the new instruction for using the alpa to set the boot id in 
    readme file. (CR9781) 

5.  There is an issue which user can't use "Alpa" command to set Boot ID,
    because the command was missing, the new release correct this issue,
    so the user can use "Alpa" to set the boot id on HBA in the loop mode.  
    (CR9257)  

-----------------------  NEW CHANGES  1.41A2  ------------------------

1.  In some system servers, the HBA adapter does not get initialized
    when dynamic reconfiguration is initiated on entire PCI I/O assembly,
    and shows the error message "Segmentation Fault" by the system's 
    Fcode interpreter.  The cause of this problem is the forth word 
    "erase" can't use in device memory on some system server during DR,
    "erase" should only be used on system memory.  This release fixed 
    the issue by using "do-loop" to zero out the device memory area. 
    (CR9683)

2.  There is an issue regarding the variable declaration, because the
    variable of "#lun-a0" was declared as CONSTANT, if some system's
    Fcode interpreter tries to change or modify this variable during 
    program execution after it is declared, it can corrupt the Open
    Firmware dictionary entry with error message "default catch".  
    This release fixed the issue by changing the "CONSTANT" to "VALUE"
    for the declared variable of (#lun-a0) in fcp-luns.  (CR9717)
    

-----------------------  NEW CHANGES  1.41A1  ------------------------

1.  When bringing up some system servers, there is an error message 
    "Cannot Configure Port" and cause fail to config the HBA port.  The 
    cause of this failure was Fcode needs to issue a reset command 
    before initializing the HBA.  (CR9064)

2.  In some system servers, when system comes up from cool boot, there is
    an error message "Cannot Initialize Port", and causes a failure.
    The fix is adding a mailbox restart command before reset and config 
    the HBA.  (CR9400)

3.  Added new feature for adding the Alpa input command, so the user can
    use Alpa list in the loop mode to set the boot id.  (CR9257)

4.  In some system servers, there is an error message "STACK OVERFLOW" on 
    DR operation, and causes a failure to config the HBA in DR.  This 
    release fixed the issue by adding the reset command.  (CR9079)

5.  In some system servers, the Dynamic Reconfiguration fails when Fcode
    is enabled, and shows the error message" Segmentation Fault" in DR.
    This release fixed the issue by changing the device path and adding the
    reset command.  (CR6966)

----------------------------  NEW CHANGES  1.41A0  ------------------------------

1.  In some UNIX server, the OS Fcode interpreter does not contains the
    word "vendor-id" or "device-id" in their library, during the DR 
    login, it will cause the segmentation error if the Fcode is using
    those words to locate the vendor or device ids' address in PCI config
    space.  This new fix will use the "my-space" method instead.

2.  The boot device path is report incorrect path on devalias in some
    latest release server, and cause boot failure.  This release takes
    care the issue by replace new device path function.


----------------------------  NEW CHANGES  1.40A0  ------------------------------

1.  In some server system, the default "ihandle/devname" is not in the 
    OBP library, and that will issue a wrong device path in devalias.
    In this release, the new function "devname-path" will substitute the 
    word "ihandle/devname", and makes correct device path in devalias.


----------------------------  NEW CHANGES  1.33A2  ------------------------------

1.  Update the Emulex Copyright.


----------------------------  NEW CHANGES  1.33A1  ------------------------------

1.  Add the reset behavior for error attention 0x04 during runtime.


----------------------------  NEW CHANGES  1.33A0  ------------------------------

1.  Add firmware requested reset behavior for the Error Attention 0x04.

2.  Change the return stack value on fcp-luns to "0 0" when fcp-luns 
    command returns with an error.

3.  Change the display LP9000 adapter on boot banner to LP9002.


----------------------------  NEW CHANGES  1.32A0  ------------------------------

1.  Add the default topology mode without using "set-default-mode", and
    the default topology mode is loop first, then point-to-point.

2.  Set the default machine code into SUN machine instead of IBM.  This
    setting can takes care some of the SUN compatible machine.  Also 
    change the default device-path for SUN and IBM machine.

3.  Able to boot with the new lp9802 Pegasus chipset.


----------------------------  NEW CHANGES  1.33A0  ------------------------------

1.  Add firmware requested reset behavior for the Error Attention 0x04.

2.  Change the return stack value on fcp-luns to "0 0" when fcp-luns 
    command returns with an error.

3.  Change the display LP9000 adapter on boot banner to LP9002.


----------------------------  NEW CHANGES  1.33A1  ------------------------------

1.  Add the reset behavior for error attention 0x04 during runtime.

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

1. OpenBoot Firmware Update Procedure

The OpenBoot is loaded in the same way as a firmware update is 
performed and is distributed as a .PRG file.  It could download 
through DOS based Lp6util if the adapter is first installed in a PC. 


                        ******** Note *********

If the OpenBoot has never been loaded into the FC adapter before,
and it has been use under the device path name "fibre-channel" other 
than "lpfc" in Sun Solaris system, in order to download Fcode and 
boot from FC disk, convert the path name into "lpfc" is required,
the procedure as follow:

(1) Boot up the Sun Solaris local disk.
(2) Download the lpfc driver Rev 5.00i or latest.  
(3) Run the lputil @ "/usr/sbin/lpfc/lputil" and download the Fcode
    flash.
(4) Run "/usr/sbin/lpfc/convert_path_lpfc" to convert the path into
    "lpfc"
(5) Reboot the system.     

Note: Please be aware, once the path has been converted into "lpfc",
      it can't go back to the original ("fibre-channel") path. 


2. OpenBoot Setup Procedure

Note: Always reset the system before making any changes to your Fcode 
      OpenBoot settings.  Changes will not be saved if a reset is not
      performed first. 


a. To reset into default value mode:

   ok set-default-mode


b. To select the multiple adapters:
        
   ok show-devs                        /* show all system devices */
   ok " /pci@1f,0/pci@1/lpfc@#" select-dev      /* select /lpfc@# */
  
  Note:  Under the show-devs, we will found the path end with lpfc@#,
         where the # will be the actual number of FC adapter.
                                                  
                                                   
c. To display OpenBoot driver version:

   ok show-devs                            
   ok " /pci@1f,0/pci@1/lpfc@1" select-dev 
                                  /* select lpfc@1 (for example) */
   ok .version
   ok unselect-dev


d. To display the topology of the current device:

   ok show-devs                            
   ok " /pci@1f,0/pci@1/lpfc@1" select-dev 
                                  /* select lpfc@1 (for example) */
   ok .topology

  For intended (target) fibre channel boot disk select appropriate
  topology either point-to-point, FC-AL, or auto mode:

     if point-to-point (for connect to the switch)

        ok " /pci@1f,0/pci@1/lpfc@1" select-dev
        ok set-ptp                      
        ok unselect-dev
        ok reset-all 

     if public or private loop (for connect to the hub)

        ok " /pci@1f,0/pci@1/lpfc@1" select-dev
        ok set-fc-al            
        ok unselect-dev
        ok reset-all
    

     if auto topology with public or private loop first

        ok " /pci@1f,0/pci@1/lpfc@1" select-dev
        ok set-auto-fcal            
        ok unselect-dev
        ok reset-all

     if auto topology with point-to-point first

        ok " /pci@1f,0/pci@1/lpfc@1" select-dev
        ok set-auto-ptp            
        ok unselect-dev
        ok reset-all

     Note:  By default, the topology is set to auto-FCAL.
            If only one card and device connects to the switch, the
            auto-sensing mode will comes on as point-to-point first.


e. To display the all SCSI and Fibre Channel devices: 

        ok probe-scsi-all



f. To display the current boot device id: 
      
        ok show-devs                            
        ok " /pci@1f,0/pci@1/lpfc@1" select-dev 
                                  /* select lpfc@1 (for example) */
        ok .boot-id

g. To set boot device id:  
                     
      Make note of the actual wwpn, did or alpa returned from the 
      probe and copy down the corresponding boot entry.

        To use wwpn ( point to point):

           ok " /pci@1f,0/pci@1/lpfc@1" select-dev
           ok wwpn <wwpn> <lun> <target id> set-boot-id
           ok unselect-dev

           <wwpn> : must in hex
           <lun> : default is in hex, to change decimal type d# <lun>
           <target id> : default is in hex, to change decimal type d# 

        Example: 2200.0020.3799.7f70 d# 140 d# 10 set-boot-id
         

        To use did (public loop):

           ok " /pci@1f,0/pci@1/lpfc@1" select-dev
           ok did <did> <lun> <target id> set-boot-id
           ok unselect-dev

           <did> : must in hex
           <lun> : default is in hex, to change decimal type d# <lun>
           <target id> : default is in hex, to change decimal type d# 

        Example: 2009e1 d# 100 d# 10 set-boot-id
         

        To use alpa (private loop):

           ok " /pci@1f,0/pci@1/lpfc@1" select-dev
           ok alpa <alpa> <lun> <target id> set-boot-id
           ok unselect-dev

           <alpa> : must in hex
           <lun> : default is in hex, to change decimal type d# <lun>
           <target id> : default is in hex, to change decimal type d# 

        Example: e1 d# 100 d# 10 set-boot-id
         

        To remove boot id just assigned

           ok " /pci@1f,0/pci@1/lpfc@1" select-dev      
           ok remove-boot-id        /* to clear boot id settings */
           ok unselect-dev

h. To display all the current flag for OpenBoot driver:                


           ok show-devs                            
           ok " /pci@1f,0/pci@1/lpfc@1" select-dev 
                                  /* select lpfc@1 (for example) */
           ok .nvram

           The following information will be display

              Signature           /* open boot signature */ 
              Vaild_flag          /* internal flag for open boot */  
              Host_did            /* shows host did number */
              Enable_flag         /* internal flag for open boot */
              Topology_flag       /* topology flag for open boot */ 
              Boot_id             /* shows target id number */
              Lnk_timer           /* internal use for open boot */
              Plogi_timer         /* internal use for open boot */
              LUN                 /* shows Boot LUN in use */
              DID                 /* shows Boot DID in use */
              WWPN                /* shows Boot WWPN in use */

       Note: Target id can be bind to either did (destination id)
             or wwpn (worldwide port name) and saved in the adapter
             nvram.  It can also save in the environment variable 
             boot-device.  
             wwpn <wwpn> <lun> <target-id> set-boot-id : 
             binding target-id with wwpn and lun.  
             did <did> <lun> <target-id> set-boot-id : 
             binding target-id with did and lun.


3. Make Fibre Channel Bootable System Disk
      
   Note: If fibre channel disk(s) is not found when system is up 
         it may be necessary to do one of both of the following:

      (a) Enter the following "touch /reconfigure"  and then reboot
      (b) Edit the /kernel/drv/lpfc.conf file on boot disk and change 
          the topology from 4 to 2  or  the reverse.

   This procedure may be used to make a bootable system disk from 
   any size logical disk.  This procedure also requires that a 'local'
   boot disk be used to build the fibre channel boot disk.

   The Following example will assume that the user has selected 
   logical drive designated as "c1t1d0" (controller 1, target 1,
   lun 0) though any may be selected.

   After boot from local system disk

      Run format utility  (enter 'format') 
          
        (a) Select logical drive to become boot disk.   
        (b) Select partition option and partition disk as desired.
        (c) select label option and write volume label to target disk.

       * If necessary, view man page on format utility  ("man format")

      Install boot on partition 0 of target disk with the following
         command (c1t1d0 - for example):

         installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev
         /rdsk/c1t1d0s0
 
      Create a filesystem for each partition which will contain a 
         mounted Filesystem. 

         newfs -v /dev/rdsk/c1t1d0s0    (will become root)
         newfs -v /dev/rdsk/c1t1d0s6    (will become usr)
         newfs -v /dev/rdsk/c1t1d0s7    (will become export/home)


      Create temporary mount points for the new partitions, so they
         can be mounted for copying.

         mkdir /root2
         mkdir /usr2
         mkdir /export2

   
      For the /dev/fd must be unmount to copy the root file system.
        
         First 'kill' the volume manager 

         Enter ps -ef|grep vold /* to obtain the process id  (PID) */
         Enter kill -9 PID      /* where PID is obtained above */
         Enter umount /dev/fd

      Mount, copy then unmount the usr file system:

         mount /dev/dsk/c1t1d0s6 /usr2
         cd /usr
         tar cvf - * | ( cd /usr2; tar xf - )
         umount /usr2
 
      To copy the export/home file system:

         mount /dev/dsk/c1t1d0s7  /export2
         cd /export
         tar cvf - * | (cd /export2; tar xf - )
         umount /export2

      Copying the root file system 

      a. To build a file list first

         cd /
         ls -a > root_copy
         use the editor, vi, to edit root_copy and delete 
         the following entries:

         . .. proc, usr, usr2, export, export2, and any other 
         apparent filesystem displayed by the 'df'  command.

         Then join file names so that they are on one line using
         <shift><j> in vi.  Add the tar command to the file list 
         so that the result looks like this:
   
         tar cvf - .Xauthority .cpr_config .dt .dtprofile TT_DB 
         arg bak bin cdrom dev devices doit etc firmware fun 
         kernel lib mnt mt net opt platform sbin timer tmp var 
         vol xfn | (cd /root2; tar xf - )

      b. To Perform copy

             mount /dev/dsk/c1t1d0s0 /root2
             chmod 777 root_copy
             sh root_copy

      c. Create the additional mount points (filesystem name)

             cd /root2
             mkdir usr
             mkdir export
             mkdir proc
       
          Repeat for any other mount unique mount point which was 
          excluded in the copy procedure.
  
      Edit /root2/etc/vfstab to point to "new" boot disk as physical 
      location of mount points for root, swap, usr, export, and etc.

         Change the current entries from
     
    /dev/dsk/c0t0d0s1                      to show c1t1d0s1  (swap)
    /dev/dsk/c0t0d0s0 & /dev/rdsk/c0t0d0s0 to show c1t1d0s0  (root)
    /dev/dsk/c0t0d0s6 & /dev/rdsk/c0t0d0s6 to show c1t1d0s6  (usr)
    /dev/dsk/c0t0d0s7 & /dev/rdsk/c0t0s0s7 to show c1t1d0s7  (export)
    
    
      If multiple targets exist on fibre channel adapter it will
      be necessary to edit /root2/kernel/drv/lpfc.conf to set up
      'persistent binding' which will ensure that the desired 
      logical disk is always assigned the correct target ID.  See 
      instructions in lpfc.conf file to set persistent binding.
 
          Disk is now ready to use as boot disk
   

      Shutdown system


      Setup Sparc monitor and lpfc host adapter for boot if 
      not done already.


      At the ok Prompt TYPE:   
 
               boot disk
          
      The system now should boot on the fibre channel disk.


4. Troubleshooting

  (1) During boot process cannot mount or fsck /usr, the vfstab 
      on fibre channel boot disk not updated correctly persistent
      binding not implemented or implemented incorrectly.

        
  (2) After entering 'boot disk', the message appears that file 
      which was loaded is not executable. 
      There probably not boot on target disk, or copy from local to 
      correct target was not successful.

  (3) System hangs for a long time after displaying diver information
      or reboots just after displaying diver information.  Possible 
      incorrect topology in /kernel/drv/lpfc.conf file on target disk.


5. Useful monitor commands

   When in the system monitor ("ok") prompt.

   show-devs        display current system devices       {See Sec. 2b}
   .version         display current version of open boot {See Sec. 2c}
   .topology        display current FC topology          {See Sec. 2d}
   probe-scsi-all   display current SCSI & FC device     {See Sec. 2e}
   .boot-id         display current boot device id       {See Sec. 2f}
   .nvram           display current flags for open boot  {See Sec. 2h}

