InfoDoc ID   Synopsis   Date
21404   T3 RAID controller boot code recovery procedure (including tftpboot)   12 Jun 2000

Status Issued

Description
T3 array RAID controller boot code recovery procedure
=================================================

In the unforunate event that your T3 unit loses it's
RAID controller boot code (contained in the 150Mb reserved
area that is mirrored across disks u1d1 to u1d9), then the following
procedure will allow you to recover and reload the unit with the 
necessary software.

This may also be applicable to new units if the raid code
has not been factory loaded (THIS SHOULD NEVER HAPPEN,
AND SHOULD BE REPORTED IF SEEN).

The process is split into two distinct procedures:

1) TFTP booting the T3 unit from a suitable boot host.

2) Reloading the raid controller boot code onto u1d1.

NOTE: These procedures require the use of the Service Cable Kit
      (also known as the Serial Cable Kit), which may be ordered
      as part number 370-4119. If you do not have access to this
      kit, then you may construct a suitable cable using information
      found on page A-5 of the T3 Installation, Operation and
      Service manual (806-1062-10).


TFTP Boot Procedure for T3 unit
=================================

1) Download a copy of the latest raid boot code from SunSolve.
   (This will have a filename in the form: nbXXX.bin, where
    XXX is the version number. In the following example we
    are using nb095.bin, which indicates version 0.95 of the
    boot code).

2) Configure the Solaris host as a tftp boot server by performing
   the following steps (NOTE: This infodoc assumes that the tftp boot
   server is on the same network as the T3 unit. Usually, the admin
   host for the T3 is used as the tftp boot server.):

   a) Create a /tftpboot directory, and set the permissions to
      0755.

      e.g.      mkdir /tftpboot <RETURN> 
                chmod 0755 /tftpboot <RETURN>

   b) Copy the raid boot code into the /tftpboot directory, and
      set the permissions to 0444.

      e.g.      cp /export/home/download/nb095.bin /tftpboot <RETURN>
                chmod 0444 /tftpboot/nb095.bin <RETURN>

      The above example assumes that the raid boot code was downloaded
      into the /export/home/download directory on the boot host. If this
      is not the case, then you may need to use ftp, rcp etc.

    c) Edit /etc/inetd.conf, uncommenting the following line to enable
       the tftp boot server:

       tftp    dgram   udp     wait    root    /usr/sbin/in.tftpd
       in.tftpd -s /tftpboot

    d) Restart the inetd daemon.

       e.g.      ps -ef | grep -i inetd <RETURN>

                 root   133   1  0   Oct 25 ?    0:00 /usr/sbin/inetd -s
                         ^
                         |
                     Process ID

	         kill -1 133 <RETURN>

3) Put an entry into /etc/hosts for the T3 unit. If the unit does not
   yet have an IP Address, then allocate one from the available pool of
   free IP addresses (You may need to consult with the customer to
   determine a suitable address).

   e.g.      192.200.5.231   t3

   Alternatively, if the customer is running a naming service such
   as NIS or NIS+, you may wish to insert an entry for the T3 into
   the appropriate hosts table in the naming service.

   You should also ensure that the entries in the /etc/nsswitch.conf
   file for both ethers and hosts appear as follows:

   For NIS:

             hosts:      nis files [NOTFOUND=return]
             ethers:     nis files [NOTFOUND=return]

   For NIS+:

             hosts:      nisplus files [NOTFOUND=return]
             ethers:     nisplus files [NOTFOUND=return]

4) If you wish the T3 to attempt to get it's IP Address using RARP
   (instead of explicitly specifying it in the PSOS environment), you
   also need to put an entry into the /etc/ethers file on your boot server.

   This entry will look something like this:

              0:20:f2:0:1:d8	t3
                     ^            ^
                     |            |
                MAC Address     Name (as entered into hosts database)

   The MAC Address can be found by looking at the white pull out
   tab found on the front left hand side of the T3 unit.
   
   Alternatively, if the customer is running a naming service such
   as NIS or NIS+, you may wish to insert an entry for the T3 into
   the appropriate ethers table in the naming service.

   Once you have made this entry, you then need to check if the RARP
   daemon is running on your boot server. 

   e.g.		ps -ef | grep -i inetd <RETURN>

                root   587     1  0 17:29:35 ?   0:00 /usr/sbin/in.rarpd -a

   If you get no output from the above command, then issue the following
   to start the RARP daemon:

		/usr/sbin/in.rarpd -a <RETURN>

   By default, the T3 will attempt to use RARP to obtain it's IP
   address. If it cannot obtain one it will rely on the settings found
   in the PSOS environment, or on the settings that may be configured in
   the EEPROM boot environment (shown below in step 9).

5) Attach a serial cable from the RS-232 port on the T3 (labelled
   COM on the right hand side of the raid controller) to a free 
   serial port on the tftp boot server (assuming they are in close
   proximity to each other). If this is not possible, then you may
   also use any host with a free serial port that is near to the T3
   unit. 

   NOTE: You may require a 25-pin D-type male->male gender 
   changer for the Solaris host end of the serial cable. Ensure 
   that one is available if required.

6) Create an entry in /etc/remote for the T3 unit. This should be
   done on the machine whose serial port is connected to the T3.

   Use the entry for 'hardwire' as your template.

   e.g.

       hardwire:\ 
               :dv=/dev/term/b:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:

   Copy this line, and then modify it to something like this:

       t3:\ 
           :dv=/dev/term/b:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:

   With regards to the dv entry, modify this to represent the serial
   port which the T3 is attached to:

           /dev/term/a for ttya
           /dev/term/b for ttyb

   Creating an entry in /etc/remote is not mandatory, but does provide
   for easier administration by virtue of the fact that symbolic names
   may be used. If you know which serial port your T3 unit is attached
   to then you may also use the following command(s):

             tip -9600 /dev/term/a
             or
             tip -9600 /dev/term/b

7) Start a tip session to the T3.

   e.g.
             tip t3 <RETURN>

   This will allow you to monitor the tftpboot process.

8) Power on the T3 array (or arrays if using a partner group), and
   when prompted press the <RETURN> key on the tip host. 

   NOTE: For the tftpboot process to work correctly, you may need to
         disconnect the ethernet cable from the alternate master unit. 
         This is because the IP spoofing that occurs to allow both units
         to have the same IP address can prevent the tftpboot process 
         from completing. Do not unplug the cable unless the tftp
         boot process hangs without display an error message.
         

   e.g.

          T3-EP Release 2.06 1999/08/13 13:51:44 (192.200.5.231)
          Copyright (C) 1997-1999 Sun Microsystems, Inc.
          All Rights Reserved.

          Found units: [u1-ctr] 
          auto boot is enabled
          hit the RETURN key within 3 seconds to cancel...Cancelled!
          NobleEP>

   This will then return you to the 'NobleEP>' prompt.

   NOTE: This prompt should change to something more indicative of a
   Sun product by GA (General Availability). At this time, it is not
   known what this prompt will be.

9) We must now configure the T3 unit to use our boot server as
   the source for it's raid boot code. If the unit is not factory fresh,
   then these setting may already be configured. If this is the case, then
   simply verify that they are correct. If they are not correct, then
   adjust them as necessary. 

   Assuming a factory fresh unit, we must configure the following settings
   at the 'NobleEP' (EEPROM boot environment) prompt:

           bootmode
           ip (only required if RARP is not being used.)
           netmask
           tftphost
           tftpfile
           hostname

   To see the current settings (these are the defaults for a factory
   fresh unit) type:

           set <RETURN>

           NobleEP>set
           bootmode  auto
           bootdelay 3
           sn        000594
           ip        0.0.0.0
           netmask   0.0.0.0
           gateway   0.0.0.0
           tftphost  0.0.0.0
           tftpfile  
           hostname  
           spindelay 0
           revision  0206
           mac       0:20:f2:0:1:d8
           NobleEP>

   These must be modified as follows:

   set bootmode tftp <RETURN>
   set ip xxx.xxx.xxx.xxx <RETURN>        where xxx.xxx.xxx.xxx is the
                                          IP address chosen previously,
                                          and entered into /etc/hosts,
                                          NIS or NIS+.
                                          

   set netmask xxx.xxx.xxx.xxx <RETURN>   where xxx.xxx.xxx.xxx is
                                          the subnet mask for the
                                          network that the T3 is
                                          connected to.

   set tftphost xxx.xxx.xxx.xxx <RETURN>  where xxx.xxx.xxx.xxx is
                                          the IP address of the
                                          tftp boot server.

   set tftpfile <filename> <RETURN>       where <filename> is the name
                                          of the raid boot code file in
                                          in /tftpboot on the boot server.
                                          e.g. nb095.bin

   set hostname <hostname> <RETURN>       where <hostname> is the name 
                                          you have chosen for the T3.

   For our example, the results of the set command now appear 
   as follows:

           NobleEP>set
         ->bootmode  tftp
           bootdelay 3
           sn        000594
         ->ip        192.200.5.231
         ->netmask   255.255.255.0
           gateway   0.0.0.0
         ->tftphost  192.200.5.230
         ->tftpfile  nb095.bin
         ->hostname  t3
           spindelay 0
           revision  0206
           mac       0:20:f2:0:1:d8
           NobleEP>

   NOTE: These settings will not persist across a system reset, unless
         they have already been configured in the PSOS environment. For
         this reason, the next command is a 'boot', and not a 'reset -y'.
         If we issued a reset at this point, and the initial settings were
         factory default (as shown above), then they would again revert to 
         the defaults following the reset.

10) Issue the 'boot' command to attempt a tftp boot.

   e.g.
           boot <RETURN>

   For a successful tftp boot, you should now see the following:

   T3-EP Release 2.06 1999/08/13 13:51:44 (192.200.5.231)
   Copyright (C) 1997-1999 Sun Microsystems, Inc.
   All Rights Reserved.

   Found units: [u1-ctr]
   tftp boot is enabled
   hit the RETURN key within 3 seconds to cancel...Cancelled!
   NobleEP> 
         .
         .
   Our set commands from above
         .
         .
   NobleEP> boot <RETURN>
   Initializing TFTP...
   Loading 192.200.5.230:nb095.bin
   file header: size 268bac, checksum a39e806a, start 20010, base 20000
   ...........................................................................

   Starting...



   T3 Release 0.95 1999/10/04 13:25:45 (192.200.5.231)
   Copyright (C) 1997-1999 Sun Microsystems, Inc.
   All Rights Reserved.

   Initializing software...
   Found units: [u1-ctr]  
   Default master is u1
   Starting Heartbeats...
   Assigning Select IDs: u1(1) 
   Initializing system drivers...
   Initializing XPT component...
   Initializing QLCF component...
   Initializing loop 1 ISP2100 ... firmware status = 3
   Detected 10 FC-AL ports on loop 1
   Initializing loop 2 ISP2100 ... firmware status = 3
   Detected 10 FC-AL ports on loop 2
   Initializing QLCS component...
   Initializing SVD services...
   256 MBytes Cache Memory Detected
   Testing CPU DRAM...  Passed
   Testing ISP2100...  Passed
   Testing Cache memory...  Passed
   Testing XOR Memory...  Passed
   Initializing system DB structure...
   Initializing configuration...
   Initializing port configuration...
   Initializing loop 3 to accept SCSI commands...
   Mounting root volume...
   Checking local file system...
   Initializing network routes...
   Starting Syslog Daemon...
   Initializing host port u1p1 ISP2100 ... firmware status = 4
   System has 1 active controller(s)
   Initializing TFTP...
   Starting ftpd...
   Starting telnetd...
   Starting timed...
   Starting pshd...
   Starting httpd...
   Starting snmpd...
   Starting schd...
   Checking disk positions...
   Starting psh...

   Login: 


   An unsuccessful tftp boot might produce an error such as
   the following:

   T3-EP Release 2.06 1999/08/13 13:51:44 (129.200.5.231)
   Copyright (C) 1997-1999 Sun Microsystems, Inc.
   All Rights Reserved.

   Found units: [u1-ctr] u2-ctr 
   tftp boot is enabled
   hit the RETURN key within 3 seconds to cancel...
   Initializing TFTP...
   Loading 129.200.5.230:nb095.bin
   tftp download error 10060002

   
   If you see this error (or something similar), check the following:

   a) Confirm that the /tftpboot directory contains the correct raid
      boot code, and that the tftpfile setting on the T3 matches
      the filename in /tftpboot.

   b) Check the permissions on the /tftpboot directory (0755):

      drwxr-xr-x   2 root     other        512 Oct 26 12:02 tftpboot

      and on the raid boot code file (0444):

      -r--r--r--   1 root     other    2526140 Oct 26 12:02 nb095.bin

   c) Check that the tftphost setting on the T3 is correct, and
      confirm that the boot server and the T3 are on the same
      network. You may consider using snoop at this point to help
      troubleshoot any network connectivity problems.

   d) If you are using a partner group, try disconnecting the ethernet
      cable from the alternate master, as mentioned in step 8. above. 

   e) If the T3 unit(s) are connected to an ethernet hub, try connecting
      the primary master directly to the host using a twisted pair crossover
      cable. It has been observed that some poor quality hubs can cause
      problems when trying to tftpboot the T3.


RAID controller boot code installation procedure
================================================

Once you are able to successfully get the 'Login:' prompt
on the T3 (as a result of a good TFTP boot), then you 
must complete the following steps to install a new copy
of the raid controller boot code.

1) Login to the T3 as the 'root' user. By default, there will
   be no password assigned at this point.

   e.g.

           Login: root <RETURN>
           Password: <RETURN>

           T3 Release 0.95 1999/10/04 13:25:45 (192.200.5.231)
           Copyright (C) 1997-1999 Sun Microsystems, Inc.
           All Rights Reserved.

           t3:/:<1>

2) Using ftp, retrieve a copy of the raid boot code from the
   tftp boot server.

   e.g.

   t3:/:<1>ftp xxx.xxx.xxx.xxx <RETURN>    where xxx.xxx.xxx.xxx           
   Connected to xxx.xxx.xxx.xxx.             is the IP address of
   220 host FTP server (SunOS 5.6) ready.    the tftp boot server.
   Name (192.200.5.230:root): root <RETURN>

   331 Password required for root.
   Password: 
   230 User root logged in.

   ftp> cd /tftpboot <RETURN>
   250 CWD command successful.
   ftp> bin <RETURN>
   200 Type set to I.
   ftp> get <filename> <RETURN>         where <filename> is the name
                                        of the raid boot code file in
                                        in /tftpboot on the boot server.
                                        e.g. nb095.bin

   200 PORT command successful.
   150 Binary data connection for nb095.bin (xxx.xxx.xxx.xxx,1026) (xxx bytes).
   226 Binary Transfer complete.
   2526140 bytes received in 113 seconds (21 Kbytes/s)
   ftp> quit <RETURN> 
   221 Goodbye.
   t3:/:<2>

   NOTE: It is very important to use a BINARY transfer when copying 
         the raid code onto the T3 unit.

3) Once the boot code has been copied to the T3 unit, issue the
   following commands:

   boot -i <filename> <RETURN>         where <filename> is the name
                                       of the raid boot code file in
                                       in /tftpboot on the boot server.
                                       e.g. nb095.bin
   
   set bootmode auto <RETURN>
   reset -y <RETURN>

   You should then see something similar to the following:

   t3:/:<3>boot -i nb095.bin
   file header: size 268bac, checksum a39e806a, start 20010, base 20000   
   t3:/:<4>set bootmode auto
   t3:/:<5>reset -y         
   Disabling controllers
   Enabling controllers
   Resetting myself


   The raid controller boot code will now have been successfully
   reloaded, and a normal boot of the T3 unit should be seen.

   e.g.

   T3 Release 0.95 1999/10/04 13:25:45 (192.200.5.231)
   Copyright (C) 1997-1999 Sun Microsystems, Inc.
   All Rights Reserved.

   Initializing software...
   Found units: [u1-ctr]  
   Default master is u1
   Starting Heartbeats...
   Assigning Select IDs: u1(1) 
   Initializing system drivers...
   Initializing XPT component...
   Initializing QLCF component...
   Initializing loop 1 ISP2100 ... firmware status = 3
   Detected 10 FC-AL ports on loop 1
   Initializing loop 2 ISP2100 ... firmware status = 3
   Detected 10 FC-AL ports on loop 2
   Initializing QLCS component...
   Initializing SVD services...
   256 MBytes Cache Memory Detected
   Testing CPU DRAM...  Passed
   Testing ISP2100...  Passed
   Testing Cache memory...  Passed
   Testing XOR Memory...  Passed
   Initializing system DB structure...
   Initializing configuration...
   Initializing port configuration...
   Initializing loop 3 to accept SCSI commands...
   Mounting root volume...
   Checking local file system...
   Initializing network routes...
   Starting Syslog Daemon...
   Initializing host port u1p1 ISP2100 ... firmware status = 4
   System has 1 active controller(s)
   Initializing TFTP...
   Starting ftpd...
   Starting telnetd...
   Starting timed...
   Starting pshd...
   Starting httpd...
   Starting snmpd...
   Starting schd...
   Checking disk positions...
   Starting psh...

   Login:                   
SUBMITTER: Andrew R Fox APPLIES TO: AFO Vertical Team Docs/Storage, Hardware/Disk Storage Subsystem/StorEdge Disk Array/StorEdge T3 ATTACHMENTS:


Copyright (c) 1997-2003 Sun Microsystems, Inc.