Solaris 7 Sun Hardware Platform Guide

Chapter 5 Updating the Flash PROM on the Sun Enterprise 3x00, 4x00, 5x00, and 6x00 Systems

The steps in this chapter describe how to update the flash PROMs in your Sun Enterprise 3x00, 4x00, 5x00, or 6x00 system.

Some systems will need to be updated to a higher level of OpenBoot(TM) firmware in the flash PROM before they can run the 64-bit mode of the Solaris(TM) 7 operating environment. The OpenBoot firmware is contained in several PROMs that are located on several different boards.

The flash PROM devices, which contain OpenBoot, are electrically erasable and writable devices. This means that the firmware can be updated without removing the flash PROM from the system board. This Solaris 7 kit includes the routines and instructions you need to update the flash PROM in your system.

Determining If the Flash PROM Needs Updating


Note -

If your system is an Ultra(TM) Enterprise(TM) 10000, you do not need to do this update because the Ultra Enterprise 10000 does not have a flash PROM.


Only sun4u systems that can run the 64-bit mode of the Solaris 7 operating environment might need the flash PROM update. Systems that can only run the 32-bit mode (such as those in the sun4c, sun4d, and sun4m platform groups) do not require updated firmware to run Solaris 7 software.


Note -

If the Solaris 7 operating environment notified you that the flash PROM in your system needs updating, skip the steps in the procedure "To Determine If Your System Requires a Flash PROM Update" and go directly to "Updating the Flash PROM ".


To Determine If Your System Requires a Flash PROM Update
  1. Determine the architecture type of your system.


    % uname -m
    

    Table 5-1

    If your system architecture type is . . . 

    Then . . . 

    o sun4u 

    Go to Step 2. 

    o sun4c, sun4d, sun4m 

    You do not need a flash PROM update. Do not proceed further. 

  2. Determine the system type of your system.


    % uname -i
    

    Table 5-2

    If your system type is one of the following systems. . . 

    Then . . . 

    SUNW, Ultra-1 

    SUNW, Ultra-2 

    SUNW, Ultra-4 

    SUNW, Ultra-Enterprise 

    Go to Step 3 for each system type. 

    Not in the above list 

    You do not need a flash PROM update. Do not proceed further. 

  3. Determine the version level of the firmware in your system. Type prtconf -V (upper case V).


    % prtconf -V
    

    Table 5-3

    If your system type is . . . 

    And you see a number lower than . . . 

    Then . . . 

    Otherwise . . .  

    SUNW, Ultra-Enterprise 

    3.2.16 

    Proceed to "Updating the Flash PROM ".

    You do not need a flash PROM update. Do not proceed further. 

    SUNW, Ultra-1 

    3.11.1 

    Proceed to Chapter 4, Updating the Flash PROM on the Ultra 1, Ultra 2, Ultra 450, and Sun Enterprise 450 Systems.

    You do not need a flash PROM update. Do not proceed further. 

    SUNW, Ultra-2 

    3.11.2 

    Proceed to Chapter 4, Updating the Flash PROM on the Ultra 1, Ultra 2, Ultra 450, and Sun Enterprise 450 Systems.

    You do not need a flash PROM update. Do not proceed further. 

    SUNW, Ultra-4 

    3.7.107 

    Proceed to Chapter 4, Updating the Flash PROM on the Ultra 1, Ultra 2, Ultra 450, and Sun Enterprise 450 Systems.

    You do not need a flash PROM update. Do not proceed further. 

Updating the Flash PROM

This section describes the following:

Flash PROM Update Process


Note -

For step-by-step instructions, follow the procedures beginning with "Capturing Configuration Variable Settings".


After installing the Solaris 7 operating environment, make sure that the external front panel keyswitch is set to the On or Diagnostics position.

Take note of screen messages, during the flash PROM update, that report configuration variables that may be reset to their default values. When the update is complete and after you either reset the system or power cycle the system, revise the configuration variables as needed to restore your preferences.

Refer to the recovery procedure covered later in this chapter if there is a power interruption during the update process.

When your system has been updated to the proper firmware revision, you can run Solaris 7 software in 64-bit mode.

Capturing Configuration Variable Settings

While the Solaris operating environment is still running, capture the NVRAM configuration variable settings before you install the Solaris 7 operating environment or begin the flash PROM update process.

As part of the flash PROM update, your NVRAM configuration variables might change to the default values. To ensure that you can change the default values back to the values you customized, you need to save the current state of the NVRAM configuration variables using the eeprom command.

To Capture the Configuration Variable Settings
  1. Using the eeprom utility, capture the system's configuration variable settings in a file. Type eeprom > filename. The filename is any file name you choose.


    % eeprom > filename
    


    Note -

    If you have custom values installed in oem-logo or keymap, those values cannot be displayed or printed properly by the eeprom utility because the contents contain binary information. If it is necessary to restore these values after a power loss, you should determine the original method by which these values were placed into NVRAM and use that method to restore the values.


  2. Print out the values captured by the eeprom command. You must have a printed copy of the configuration values before you install the Solaris 7 operating environment and begin to update the flash PROM. Type the following:


    lp filename 
    

To Install the Solaris 7 Operating Environment
  1. Install the Solaris 7 operating environment on your system.

    Refer to the Installation Library which is in your Solaris 7 media kit. As the Solaris 7 operating environment is installed, you will be notified whether the flash PROM in your system needs updating. Installing this Solaris release will provide the software that can upgrade your system's flash PROM to the required level.

Making the Flash PROM Write-Enabled

Before you update the OpenBoot firmware, which is contained in the flash PROM, you must set the front panel keyswitch to the proper position to allow the flash PROM to be write-enabled.

When the switch is set to the Locked position (Figure 5-1), the flash PROM is write-protected. When the switch is set to the On position or to the Diagnostics position, the flash PROM is write-enabled.

Figure 5-1 shows the keyswitch positions on a 16-slot Sun Enterprise 6000 system. The server systems described in this section have the same keyswitch positions.

To Write Enable the Flash PROM
  1. Turn the keyswitch to the On or Diagnostics position (Figure 5-1) before updating the flash PROM.


    Note -

    Disabling write-protection on servers assumes that the system's write-protect/enable jumpers were set in the default position (enabled). If you previously removed the write-protect/enable jumper, perform the steps to make the flash PROM write enabled in "Location of Flash PROM Jumpers in Sun Enterprise Server Systems".


    Figure 5-1 Sun Enterprise 6x00, 5x00, 4x00, 3x00 Keyswitch Locations

    Graphic

Before Updating the Flash PROM

Before you begin updating the flash PROM, please note the following cautions.


Caution - Caution -

Do not interrupt power during flash PROM updating. When you are using the update routine, do not remove or insert system boards.



Caution - Caution -

The flash update may cause default NVRAM values to overwrite customized NVRAM variables. Be sure to record the custom and default values displayed so that you can restore them after you perform the flash PROM update.



Note -

If power is interrupted during flash PROM updating, follow the power interruption recovery procedures covered later in this chapter.


Running the Flash PROM Update Script Manually

The flash PROM update script is typically run at bootup. You can also run the flash PROM update script manually by doing the following:

  1. Bring the system down to single user mode.


    % su
    Type your superuser password
    # init S
    

    Type the following:

  2. Execute the flash PROM update script by typing the following:


    /bin/sh /usr/platform/sun4u/lib/prom/`/usr/bin/uname -i`

    Follow the step-by-step instructions when running the script in the section "To Update the Flash PROM". Begin with Step 2 (do not execute the reboot command).

To Update the Flash PROM
  1. Reboot your system. Type reboot at the superuser prompt.


    # reboot
    

  2. If your flash PROM needs to be updated, the flash PROM update script displays the following message:


    This system has older firmware.  Although the current firmware is fully capable of running the 32-bit packages, you will not be able to run the 64-bit packages installed on this system until you update the system flash PROM.
    
    This system ships with flash PROM write-protect jumpers in the "write enabled" position.  Unless the jumpers on this system have been changed, there is no need to change them in order to run the system flash PROM update.
    
    The front panel keyswitch on this system must NOT be in the "SECURE" position while the system flash PROM update is running.  Please check the keyswitch position before answering the next question.
    
    See the Hardware Platform Guide for more information.
    
    Please answer the next question within 90 seconds, or press the ENTER key to disable the timer.
    
    Would you like to run the system flash PROM update now?
    (By default the system flash PROM update will not be run now.)
    yes or no? [y,n] y
    Extracting files
    Loading flashprom driver

  3. When the flash update process begins, it displays the current and available system board PROM revisions.


    Current System Board PROM Revisions:
    -----------------------------------
    Board  0: CPU/Memory OBP   3.2.16 1998/06/08 16:58 POST  3.9.4 1998/06/09 16:25
    Board  2: CPU/Memory OBP   3.2.16 1998/06/08 16:58 POST  3.9.4 1998/06/09 16:25
    Board  4: CPU/Memory OBP   3.2.16 1998/06/08 16:58 POST  3.9.4 1998/06/09 16:25
    Board  6: CPU/Memory OBP   3.2.16 1998/06/08 16:58 POST  3.9.4 1998/06/09 16:25
    Board  1: I/O Type 2 FCODE 1.8.3  1997/11/14 12:41 iPOST 3.4.6 1998/04/16 14:22
    Board  3: I/O Type 5 FCODE 1.8.7  1997/12/08 15:39 iPOST 3.4.6 1998/04/16 14:22
    Board  7: I/O Type 5 FCODE 1.8.7  1997/12/08 15:39 iPOST 3.4.6 1998/04/16 14:22
    
    Available `Update' Revisions:
    -----------------------------------
    CPU/Memory OBP   3.2.16 1998/06/08 16:58 POST  3.9.4 1998/06/09 16:25
    I/O Type 1 FCODE 1.8.3  1997/11/14 12:41 iPOST 3.4.6 1998/04/16 14:22
    I/O Type 2 FCODE 1.8.3  1997/11/14 12:41 iPOST 3.4.6 1998/04/16 14:22
    I/O Type 3 FCODE 1.8.7  1997/05/09 11:18 iPOST 3.0.2 1997/05/01 10:56
    I/O Type 4 FCODE 1.8.7  1997/12/08 15:39 iPOST 3.4.6 1998/04/16 14:22
    I/O Type 5 FCODE 1.8.7  1997/12/08 15:39 iPOST 3.4.6 1998/04/16 14:22

  4. If any of the NVRAM configuration variables have been customized, the update displays both the default value and the customized (current) value.


    Verifying Checksums: Okay
    
    Do you wish to flash update your firmware? y/[n] : y
    **IMPORTANT**  As a consequence of the firmware upgrade that is about to take place, it is very possible that the customized values in the configuration variables will revert to their *default values* upon the next system power-cycle or soft-reset. If this happens, it could have a significant effect on the behavior of the system after the power-cycle or soft-reset.
    Following is a list of the system's NVRAM configuration variables which have been customized (i.e. they are different than the default values).
    You may wish to write down the values of the indicated configuration variables so that they may be restored (if necessary) after the next power-cycle or soft-reset.
    Name: auto-boot?
    Default: true
    Current: false
    
    Name: boot-file
    Default: <null>
    Current: kadb -d

  5. Take note of the variables and values for current settings. Either write down the current values or mark up the eeprom output you captured in "To Capture the Configuration Variable Settings" so that you know which NVRAM configuration variables will need to be changed from their default values after the flash PROM update.

  6. If the keyswitch is set to the locked position, you will see the following error message. To remedy the problem, make the flash PROM write-enabled by turning keyswitch to the On or Diagnostics position then type reboot at the # prompt.


    FPROM Write Protected: Check Write Enable Jumper or Front Panel Key Switch.

  7. The update then prompts you if you want to continue. Make sure that you have turned the keyswitch to the On or Diagnostics position then type y. The flash PROMs are updated.


    Are you sure that you wish to continue? y/[n] : y
    
    Updating Board 0: Type 'cpu' (PromID=1a4)
    1 Erasing           ................................ Done.
    1 Verifying Erase   ................................ Done.
    1 Programming       ................................ Done.
    1 Verifying Program ................................ Done.
    
    Updating Board 1: Type 'upa-sbus' (PromID=1a4)
    1 Erasing           ................................ Done.
    1 Verifying Erase   ................................ Done.
    1 Programming       ................................ Done.
    1 Verifying Program ................................ Done.
    
    Updating Board 4: Type 'dual-pci' (PromID=1a4)
    1 Erasing           ................................ Done.
    1 Verifying Erase   ................................ Done.
    1 Programming       ................................ Done.
    1 Verifying Program ................................ Done.
    
    Updating Board 6: Type 'dual-pci' (PromID=1a4)
    1 Erasing           ................................ Done.
    1 Verifying Erase   ................................ Done.
    1 Programming       ................................ Done.
    1 Verifying Program ................................ Done.
    
    Unloading flashprom driver
    
    The new firmware will not take effect until the system is power-cycled.

  8. After the flash PROMs are updated, the system asks if you would like to halt the system. Type yes.


    Do you wish to halt the system now? yes or no? yes
    
    The system's shutdown messages are displayed.
    
    Program terminated
    ok


    Note -

    If you answered no to the question on halting the system, the installation will continue but the updated firmware will not become effective until the next system reboot. The NVRAM configuration variables are changed to default values at the next system reboot. If you customized NVRAM configuration variables you must change the values back to their customized settings.


  9. Turn the keyswitch to the Standby position.

  10. Turn the power on to the system. As the system boots, diagnostics will be run at boot up because the OpenBoot diag-switch? was set to true in the flash PROM update procedure. Running diagnostics could take several minutes.


    Note -

    Other NVRAM variables may be reset to their default values, which could affect the system in other ways. For example, if you ran the flash PROM update through the serial port and the system still has its keyboard plugged in, you will no longer get any response from the serial port connection. The firmware will be waiting for input from the keyboard. Table 5-4, which follows, describes the workarounds for NVRAM settings.


  11. As the system boots, go to the ok prompt by one of the following methods.

    1. Press Stop-a from the keyboard.

    2. If you are running on a terminal and connected to serial port A of the system, press the Break key.

    3. If you are connected to serial port A via telnet connection send a Break sequence by pressing the Control and ] keys simultaneously. This returns you to the telnet command line. Type send brk at the telnet command line.

    4. If you are connected to serial port A via a tip connection, send a Break sequence by typing the characters ~# in quick succession.

  12. Reset the configuration variables default value to the current value (see the values you captured with the eeprom command in "To Capture the Configuration Variable Settings" and the values you wrote down earlier in this procedure in Step 1). At the ok prompt, type the following for each configuration variable:


    ok setenv variablename currentvalue
    

    For example:


    ok setenv auto-boot? false
    

    The setenv command resets each configuration variable you entered to the current value.

  13. When you updated the flash PROM, the OpenBoot diag-switch? variable was also set to true. With diag-switch? set to true, diagnostics will run when you reboot the system. If you don't want diagnostics to be run at boot up, set diag-switch? to false with the setenv diag-switch? false command.

  14. Make sure that other configuration variables are set properly. Table 5-4 describes what might occur if you did not have the default NVRAM configuration variables set before the flash PROM update.

    1. Use the printenv OpenBoot command to display the NVRAM configuration variables and their settings.

    2. Use the setenv OpenBoot command to restore the NVRAM configuration variables to the customized values except for the nvramrc configuration variable.

    3. For the nvramrc configuration variable refer to Table 5-4 for how to restore the configuration variable to the customized settings. For additional information on the NVRAM configuration variables, refer to the OpenBoot 3.x Command Reference Manual.

      Table 5-4

      Variable Name 

      Default Value 

      Description 

      output-device

      screen

      If output-device is not set to the default value before the flash PROM update, then it is possible that the output device may be other than what you anticipate.

      input-device

      keyboard

      If input-device is not set to the default value before the flash PROM update, then it is possible that the input device may be other than what you anticipate.

      ttyb-mode

      9600,8,n,1,-

      If you are running anything from the serial ports A or B with port settings other than what is default (baud rate, number of bits, parity, number of stop bits, handshake), then those communications lines may not function after the flash PROM update. 

      ttya-mode

      9600,8,n,1,-

      If you are running anything from the serial ports A or B with port settings other than what is default (baud rate, number of bits, parity, number of stop bits, handshake), then those communications lines may not function after the flash PROM update. 

      boot-command

      boot

      If there are any custom flags to boot, then the system may not boot as anticipated after the flash PROM update.

      auto-boot?

      true

      The system may attempt to autoboot after the first reset or power cycle following the flash PROM update. With auto-boot? set to false, the system will not autoboot.

      diag-switch?

      true

      After you reboot or power cycle the system after the flash PROM update, the diag-switch? may be set to true. With diag-switch? set to true, diagnostics will be run at boot up. Also, the system may attempt to boot from a different device than was booted prior to the flash PROM update.

      diag-device

      disk

      If you had diag-switch? set to true before the update then this is the device that would probably have been booted. This device might not be the boot device after the flash PROM update.

      diag-file

      Empty string 

      If you were booting a customized kernel file before the update, and diag-switch? was set to true after the flash PROM update, the customized kernel file might not be booted after the flash PROM update.

      boot-file

      Empty string 

      If you were booting a customized kernel file before the flash PROM update, and diag-switch? was false (default), the customized kernel file might not be booted after the flash PROM update.

      boot-device

      disk net

      If you had a different sequence of boot-devices specified, after the flash PROM update an incorrect device might be booted. 

      use-nvramrc?

      false

      If you had customized commands in the nvramrc, and use-nvramrc? was set to true, then those customized commands might not be used after the flash PROM update.

      nvramrc

      Empty 

      If you had customized commands in the nvramrc, then those customized commands might be lost after the flash PROM update. Do not use setenv to change the nvramrc variable. Instead use nvedit and nvstore. If you know that the nvramrc variable contains a firmware patch which is no longer compatible with the newly programmed firmware, do not change the nvramrc variable to its previously customized value.

      oem-logo?

      false

      If oem-logo? was true before the flash PROM update, the oem-logo might be lost after the update, and oem-logo? might be set to false.

      oem-banner?

      false

      If oem-banner? was true before the flash PROM update, the oem-banner might be lost after the flash PROM update, and oem-banner? might be set to false.

  15. Turn the keyswitch to the Standby position, wait a few seconds, and then power on again.

    This power-cycling flushes any old firmware code out of system memory.

    If you set the auto-boot? NVRAM configuration variable to true, and the boot-device variable contains the device or device alias where the Solaris 7 operating environment was installed, then the system will boot the Solaris 7 operating environment. This concludes the flash PROM update procedure.

Location of Flash PROM Jumpers in Sun Enterprise Server Systems

If you previously removed the write-protect/enable jumper, you must reinstall it in order to successfully perform the flash PROM update procedure.

Sun Enterprise 3x00, 4x00, 5x00, and 6x000 systems have a jumper on the clock board, P0601, which controls if the flash PROM can or cannot be updated.

If you previously removed jumper P0601, you must reinstall it before you can complete the flash PROM update procedure.

Installing the P0601 Jumper

To install the P0601 jumper, follow these steps:

  1. Halt the system then turn the keyswitch to the Standby position.


    Caution - Caution -

    The clock board is not hot-pluggable. Do not remove the clock board until the system has been halted and powered off.


  2. Remove the clock board from the system (see Figure 5-2).

    Figure 5-2 Rear View of the Sun Enterprise 6000 System

    Graphic


    Note -

    Figure 5-2 shows a 16-slot system. Systems also come in 4-, 5-, and 8-slot configurations.


  3. Locate the P0601 jumper location (Figure 5-3) on the clock board.

    Figure 5-3 Clock Board and Jumper P0601 Jumper Location

    Graphic

  4. Insert the P0601 jumper on the clock board.

  5. Replace the clock board in the system.

    Refer to Chapter 6 in your reference manual for the detailed procedure.

  6. Turn the keyswitch to the On or Diagnostics position.

Recovering From a Power Failure During the Flash PROM Update

If the power was lost during the flash PROM update, complete the power interruption recovery procedure for your system.

Sun Enterprise 3x00, 4x00, 5x00, and 6x00 Systems

There are three scenarios for the Sun Enterprise 3x00, 4x00, 5x00, and 6x00 systems:

To Complete the Update of the Flash PROM

If power was interrupted during the flash PROM update procedure, it is possible that one or more system boards were not updated successfully. You must become superuser and complete the flash PROM update.

  1. At the # prompt, type the following:


    # /bin/sh /usr/platform/sun4u/lib/prom/`uname -i`
    

To Recover a One-Board System After Power Interruption
  1. Call your Sun service provider or local Sun service Authorized Service Provider.

To Recover a Multi-Board System After Power Interruption

Only one board is updated at any given time in the flash PROM updating process. If there is a power interruption to the system while the flash PROMs are being updated, only one board will have its flash PROMs in an inconsistent state.


Note -

Power interruption during updating of the flash PROMs aborts the updating at the point of the power interruption. Turn the keyswitch to the Standby position (Figure 5-1) to prevent power surge to the system when power is restored.


The following recovery procedure requires another board of the same type with an uncorrupted PROM image (if you are updating an "I/O Type 1" board, you must use another "I/O Type 1" board). In the following code examples, the flash PROM on board 3 recovers by copying the flash PROM image from board 0.

  1. Connect a null modem cable to port A and to either a terminal or a Sun(TM) Workstation(TM).

  2. Set the serial port at 9600 bps, 8-bit word, no parity, and 1 stop bit.

  3. Remove the board that was being programmed when the power went out.

  4. Turn the keyswitch to the On position (Figure 5-1).

The system responds with the message:


Hardware Power ON

  1. Wait 15 seconds and type s on the keyboard terminal or the tip window connected to the serial port.

    The system responds:


    0,0>
    *** Toggle Stop POST Flag = 1 ***

This message shows that POST (power-on self-test) has recorded your request to stop after testing is completed.

When POST stops, it will display the following options menu:


0,0>Extended POST Menus
0,0>Select one of the following functions
0,0>     '0'       Return
0,0>     '1'       Reset
0,0>     '2'       Peek/Poke device
0,0>     '3'       Environmental Status
0,0>     '4'       Test Menus
0,0>     '5'       State Dump
0,0>     '6'       Frequency Margining
0,0>     '7'       Display System Summary
0,0>     '8'       Display Fatal Reset Info
0,0>     '9'       Scan System Board Ring
0,0>     'a'       Set Memory Test Megs
0,0>     'b'       Print SIMM Info
0,0>     'c'       Focus CPU
0,0>     'd'       CPU State
0,0>     'f'       fcopy
0,0>     'g'       System Power Off
0,0>     'h'       Bounce Patterns
0,0>     'i'       Focus I/O Board
0,0>

  1. Type f to select fcopy.


    Command ==> f
    0,0>Flash PROM Copy Menu
    0,0>Select one of the following functions
    0,0>     '0'       Return
    0,0>     '1'       Copy
    0,0>     '2'       Verify
    0,0>     '3'       Display Version
    0,0>     '4'       Activate System Board
    0,0>
    
    Command ==>

  2. Without powering off the system, plug in the board with the corrupted flash PROM. Be sure its power LED is lit.

  3. Type 4 to select Activate System Board.

    The system prompts you to enter the board number in hexadecimal notation from 0 through 9 and "a" through "f". In the example below, board 3 is entered as the board to be activated.


    Command ==> 4
    0,0>Input board number in hex (`0' thru `9' and `a' thru `f')
    ?3
    0,0>
    0,0>Flash PROM Copy Menu
    0,0>     '0'       Return
    0,0>     '1'       Copy
    0,0>     '2'       Verify
    0,0>     '3'       Display Version
    0,0>     '4'       Activate System Board
    0,0>
    
    Command ==>

  4. Type 1 to select Copy. Respond to the prompts for source (where to copy from) and destination (where to copy to) board numbers in hexadecimal notation.

    In the example below, board 0 is entered as the source and board 3 is entered as the destination:


    Command ==> 1
    0,0>Input board number in hex (`0' thru `9' and `a' thru `f')
    0,0>
    from board? 0
    to board? 3
    0,0>    Mfg code 04, Dev code a4
    0,0>Erasing prom at 000001cc.f8000000
    0,0>Copy prom at 000001c0.f8000000 to prom at 000001cc.f8000000
    0,0>................................
    0

  5. Type 3 to select Display Version.

    The system responds by showing all PROM versions in the system.


    Command ==> 3
    0,0>Slot 0 CPU/Memory  OBP    3.2.1 1996/3/11 09:57 POST   3.0.1 1996/3/11 18:38
    0,0>Slot 1 IO Type 1   FCODE  1.6.0 1996/1/23 13:44 iPOST  1.1.4 1996/3/05 04:06

  6. Turn the keyswitch to the Standby position (Figure 5-1). Wait 15 seconds.

  7. Complete the procedure "To Update the Flash PROM" to reattempt the flash PROM update process.