C H A P T E R  10

NVRAM

The Sun Ultra 45 and Ultra 25 workstation motherboards use a nonvolatile random access memory module (NVRAM) that stores parameters used for configuring system startup (FIGURE 10-1). The NVRAM module uses a SEEPROM chip.

The workstation system configuration parameters are stored in NVRAM. These NVRAM parameters contain values that determine the startup configuration of your workstation. You can modify or reset the parameter values by using commands from the ok prompt, or the eeprom command from a terminal window, or by using key commands.


FIGURE 10-1 NVRAM on Motherboard


This chapter contains information about the following topics:


10.1 Obtaining the ok Prompt

When a Sun Ultra 45 or Ultra 25 workstation is put into run level state 0, the ok prompt is displayed. At the ok prompt, you can make changes to the NVRAM and conduct OpenBoot PROM tests (POST and OpenBoot Diagnostics). TABLE 10-1 lists methods for obtaining the ok prompt, listed from most preferred to least desirable.



Caution - The Stop-A key sequence causes a system abort which loses the system state and might corrupt file systems. Method 1 is the preferred procedure.




caution icon

caution icon
TABLE 10-1 Methods for Obtaining the ok Prompt

Method

Situation

Procedure

1

Operating system is functioning normally. You have superuser access.

  1. Save all data and close all active applications.
  2. Become superuser of the system.
  3. Type: # init 0

2

Operating system is functioning normally. You do not have superuser access.

  1. Save all data and close all active applications.
  2. Momentarily press and release the front panel Power button.
  3. Select Shutdown from the Power Off window (if a GUI is displayed).
    In a few moments, the system powers off.
  4. Momentarily press and release the front panel Power button to power the system back on.
  5. When the Power LED flashes, press the Power button twice quickly.

3

System is off.

  1. Momentarily press and release the front panel Power button to power the system back on.
  2. When the Power LED flashes, press the Power button twice quickly.

4

Operating system is not functioning normally. You can log in as superuser remotely.

Type: # init 0

5

System has just been powered on.

When the Power LED flashes, press the Power button twice quickly.

6

No other alternatives are available.

Press the Stop and A keys simultaneously. The Stop-A key sequence causes a system abort that loses the system state and might corrupt file systems.


 

If you are obtaining the ok prompt to run OpenBoot PROM diagnostics, see OpenBoot PROM.

If you are obtaining the ok prompt to view or change NVRAM configurations, see Changing NVRAM Configuration Parameter Values.


10.2 Changing NVRAM Configuration Parameter Values

The NVRAM configuration parameter values set the startup behavior of the Sun Ultra 45 or Ultra 25 workstation. Changes made to the variables typically survive power cycling and if not configured properly, might have an adverse affect. Use discretion when changing or resetting NVRAM configuration parameter values.

10.2.1 Displaying and Changing Parameter Values

Use the commands listed in TABLE 10-2 to view and modify NVRAM configuration parameter values.


TABLE 10-2 NVRAM Parameter Configuration Commands

Command

Description

printenv parameter

Displays the current value for the parameter.

If no parameter is provided, all parameters, their current value, and their default value are displayed.

setenv parameter value

Sets parameter to value. Values are typically textual or numeric. Changes made with the setenv command are permanent, but require a reset or power cycle to take affect.

set-default parameter

Resets the parameter to the default value.

set-defaults

Resets all parameters to their default values.

reset-all

Initiates a warm boot where most NVRAM configuration parameters are read by OpenBoot PROM. With power cycling or a cold boot, all NVRAM configuration parameters are read by the OpenBoot PROM.

password

Sets the security-password.


You can display your system's current and default parameter values by typing printenv at the ok prompt. For example:


ok printenv
Variable Name         Value                          Default Value
 
asr-policy            normal                         normal
test-args                                            
diag-passes           1                              1
local-mac-address?    true                           true
fcode-debug?          false                          false
scsi-initiator-id     7                              7
oem-logo                                             No default
oem-logo?             false                          false
oem-banner                                           No default
oem-banner?           false                          false
ansi-terminal?        true                           true
screen-#columns       80                             80
screen-#rows          34                             34
ttyb-rts-dtr-off      false                          false
ttyb-ignore-cd        true                           true
ttya-rts-dtr-off      false                          false
ttya-ignore-cd        true                           true
ttyb-mode             9600,8,n,1,-                   9600,8,n,1,-
ttya-mode             9600,8,n,1,-                   9600,8,n,1,-
output-device         screen                         screen
input-device          keyboard                       keyboard
auto-boot-on-error?   false                          false
error-reset-recovery  sync                           sync
load-base             16384                          16384
auto-boot?            true                           true
boot-command          boot                           boot
diag-file                                            
diag-device           net                            net
boot-file                                            
boot-device           disk net                       disk net
use-nvramrc?          false                          false
nvramrc                                              
security-mode         none                           No default
security-password                                    No default
security-#badlogins   0                              No default
verbosity             min                            min
diag-trigger          none                           none
service-mode?         false                          false
diag-script           normal                         normal
diag-level            max                            max
diag-switch?          false                          false

To change a parameter value, use the setenv command. For example:


ok setenv diag-switch? true

This example enables diagnostics.



Note - Parameters that end with a question mark (?) can only be set true or false.



10.2.2 Configuration Parameter Default Values

Typing set-defaults resets all parameters to their default values. TABLE 10-3 lists the NVRAM configuration parameters, the default values, and a description.


TABLE 10-3 NVRAM Configuration Parameter Default Values

Parameter

Default Value

Description

asr-policy

normal

Reserved.

test-args

 

Arguments that configure OpenBoot Diagnostics.

diag-passes

1

Number of passes that diagnostics are to make before continuing to boot.

local-mac-address?

true

Value of true means to use the MAC address within the motherboard.

fcode-debug?

false

Value of false disables debugging of Fcode.

scsi-initiator-id

7

Identifying number of any SCSI host bus adapter.

oem-logo

no default

Bitmap of a custom OEM logo.

oem-logo?

false

Value of false disables use of a custom logo.

oem-banner

no default

Text of a custom OEM banner.

oem-banner?

false

Value of false disables use of a custom banner.

ansi-terminal?

true

Value of true enables the terminal emulator to interpret ANSI escape sequences.

screen-#columns

80

Number of character columns displayed on the console.

screen-#rows

34

Number of character rows displayed on the console.

ttyb-rts-dtr-off

false

Value of false disables hardware handshaking for ttyb

ttyb-ignore-cd

true

Value of true ignores carrier detect for ttyb.

ttya-rts-dtr-off

false

Value of false disables hardware handshaking for ttya.

ttya-ignore-cd

true

Value of true ignores carrier detect for ttya.

ttyb-mode

9600,8,n,1,-

Communication parameters for ttyb: 9600 baud, 8 data bits, no parity, 1 stop bit, no handshaking.

ttya-mode

9600,8,n,1,-

Communication parameters for ttya: 9600 baud, 8 data bits, no parity, 1 stop bit, no handshaking

output-device

screen

Device alias of the console output display. screen is aliased to the first graphics accelerator found in probe order.

input-device

keyboard

Device alias of the console input device.

auto-boot-on-error?

false

Value of false disables autoboot upon error.

error-reset-recovery

sync

Command to be executed upon recovery from an error.

load-base

16384

Decimal address of the start of the client program.

auto-boot?

true

Value of true enables the system to boot the Solaris OS without intervention.

boot-command

boot

String that is aliased to the action of booting the system.

diag-file

 

Path and filename of the diagnostics file.

diag-device

net

Device alias of the hardware that has the diagnostics file.

boot-file

 

Path and filename of the boot file.

boot-device

disk net

Device alias of the hardware that has the boot file. Aliases may be separated by a space, and are checked in left to right order.

use-nvramrc?

false

Value of false disables use of the information in the nvramrc space.

nvramrc

 

Storage space for special conditions and variables used for booting the system.

security-mode

No default

Firmware security level.

security-password

No default

Firmware security password.

security-#badlogins

No default

Number of failed security password attempts.

verbosity

min

Value of min provides almost no output during diagnostics.

diag-trigger

none

Reserved.

service-mode?

false

Reserved.

diag-script

none

Name of the diagnostics script.

diag-level

max

Value of max enables enhanced diagnostics.

diag-switch?

false

Value of false disables diagnostics under the OpenBoot PROM.

network-boot-arguments

none

Arguments used by the PROM for booting the network.


More information about the NVRAM configuration parameters is available from the eeprom man page.


10.3 Setting NVRAM Security Mode

You can restrict the set of operations that users can perform. When the security-mode parameter is set to either full or command, only users with the security-password may bypass the enforcement policy. TABLE 10-4 lists the different security modes and their conditions.


TABLE 10-4 security-mode Values and Their Enforcement Policy

Value

Enforcement Policy

full

All commands except go require the security-password.

command

All commands except boot (without arguments) and go require the security-password.

none

All commands are available, no password is required.




caution icon

Caution - You must set the security password before setting the security mode. Forgetting the password or configuring security mode before the password requires a call to customer support to make the system bootable.



To configure security mode:

1. Obtain the ok prompt.

See Obtaining the ok Prompt.

2. Set the security password with one of the following methods:

This is the only instance in which the security password is ever displayed.

3. Set the security mode to full or command:


ok setenv security-mode full
security-mode =       full
ok 

4. Enable the security mode:


ok reset-all

Upon reset, the ok prompt appears as a > symbol and the password is required. For example:


> printenv
Firmware Password: 

After supplying the correct password, the command is run. If an incorrect password is supplied, the user is required to wait for 10 seconds until authorization can be re-attempted. For example:


> printenv
Firmware Password: 
Sorry.  Waiting 10 seconds.
 
> 


10.4 eeprom Command

It is possible to display and change NVRAM configuration parameters from the Solaris OS by using the eeprom command. The eeprom command is executed by superuser in the form of:


# eeprom parameter=value

If no parameter is specified, the eeprom command displays only the current NVRAM configuration parameter values, similar to the printenv command. For example:


# eeprom
asr-policy=normal
test-args: data not available.
diag-passes=1.
.
.
.
diag-script=normal
diag-level=max
diag-switch?=false

To enable diagnostics, use the eeprom command in this example:


# eeprom diag-switch?=true

The eeprom command requires a system reboot for the changes to take effect. For more information, refer to the eeprom man page.


10.5 Key Commands

This section describes how to use your USB keyboard to abort or reset NVRAM by using the Stop-A or Stop-N equivalent commands:

Before powering on the workstation, ensure that the keyboard and mouse are connected to the rear panel USB ports.



Note - The Stop-A and Stop-N key sequences are sometimes referred to as "OpenBoot Emergency Procedures."



10.5.1 Stop-A Key Sequence



caution icon

Caution - Using the Stop-A key sequencewhile the Solaris OS is running causes a system halt. The system state is lost, file systems are not synchronized, and data might be lost or corrupted.



Use the Stop-A key sequence to abort an OpenBoot process. To issue the Stop-A key sequence for the Sun Ultra 45 or Ultra 25 workstation, press both the Stop and A keys (Stop-A) immediately after powering on the workstation. Hold both keys down until the workstation beeps.



Note - Using Stop-A does not enable the workstation to perform a core dump. The information from a core dump could be useful if the Solaris Operating System has crashed.



10.5.2 Stop-N Equivalent Key Sequence Procedure

For older Sun systems, issuing the Stop-N key sequence upon startup resets workstation configuration variables. The Sun Ultra 45 and Ultra 25 workstations use a Sun Type-7 USB keyboard. It is not possible to issue a Stop-N key sequence with a USB keyboard. By the time the USB keyboard driver is loaded, the interval to use the Stop-N key sequence has expired. Instead, use the following procedure to reset your workstation configuration variables. This procedure puts the Sun Ultra 45 or Ultra 25 workstation into a Safe NVRAM mode.

10.5.2.1 Resetting the NVRAM Temporarily

1. Power on the workstation and wait until the front panel Power button LED begins to flash.

2. Quickly press the front panel Power button twice (similar to the way you would double-click a mouse).



Note - Once the Power button LED stops flashing and stays lit, pressing the Power button again powers off the system.



A screen similar to the following is displayed to indicate that you have successfully reset NVRAM contents to the default values and the system is in Safe NVRAM mode. If a screen similar to the following screen is not displayed, allow the system to boot, shut down the system, and repeat Steps 1 and 2.


Sun Ultra 45, Keyboard Present
OpenBoot 4.21.x, 1024 MB memory installed, Serial #53463596.
Ethernet address 0:3:ba:2f:ca:2c, Host ID: 832fca2c.
 
Safe NVRAM mode, the following nvram configuration variables have
been overridden:
  'diag-switch?' is true
  'use-nvramrc?' is false
  'input-device', 'output-device' are defaulted
  'ttya-mode', 'ttyb-mode' are defaulted
 
These changes are temporary and the original values will be restored
after the next hardware or software reset.
                                                                      
ok

While the workstation is in the Safe NVRAM mode, some of the NVRAM configuration parameters are reset to their default values. The reset parameters include those parameters that are more likely to cause problems, such as TTYA settings. However, these default NVRAM settings are reset only for one power cycle and are not permanent. If you change configuration parameters while in Safe NVRAM mode, those changes are permanent and do survive a reset.

TABLE 10-5 lists the configuration parameters that are reset to default values, and describes those values.


TABLE 10-5 Stop-N Equivalent Configuration Parameters

Parameter

Stop-N Equivalent Value

Description

diag-switch?

true

Workstation runs in diagnostic mode.

use-nvramrc?

false

Do not use the contents of nvramrc.

input-device

keyboard

Console input device.

output-device

screen

Console output device.

ttya-mode

9600,8,n,1,-

TTYA port default settings. See Setting Up for POST.

ttyb-mode

9600,8,n,1,-

TTYB port default settings. See Setting Up for POST.


10.5.2.2 Resetting the NVRAM Permanently

When the ok prompt is displayed, typing set-defaults discards any customized NVRAM values and permanently restores the default values for all NVRAM configuration parameters. See TABLE 10-3 for NVRAM configuration parameter default values.

10.5.2.3 Workstation Power Cycling

Use one of the following two methods to perform a workstation power cycle by shutting down and immediately restarting the workstation: