C H A P T E R 4

OpenBoot PROM Features

This chapter describes some OpenBoot PROM features and procedures.

##

OpenBoot `ok` Prompt

A Sun Netra T6340 server module with the Solaris OS installed operates at different run levels. For a full description of run levels, refer to the Solaris system administration documentation.

Most of the time, you operate the server module at run level 2 or run level 3, which are multiuser states with access to full system and network resources. Occasionally, you might operate the system at run level 1, which is a single-user administrative state. However, the lowest operational state is run level 0. At this state, it is safe to turn off power to the system.

When the server module is at run level 0, the `ok` prompt appears. This prompt indicates that the OpenBoot firmware is in control of the system.

There are a number of scenarios under which OpenBoot firmware control can occur:

- By default, before the operating system is installed the system comes up under OpenBoot firmware control.

- When the `auto-boot?` OpenBoot configuration variable is set to `false`, the system boots to the `ok` prompt.

- After the Solaris OS is halted, the system transitions to run level 0 in an orderly way.

- During the boot process, when there is a serious hardware problem that prevents the operating system from running, the system reverts to OpenBoot firmware control.

- When you deliberately place the system under firmware control in order to execute firmware-based commands, you have the `ok` prompt.

The last scenario most often concerns you as an administrator, since there will be times when you need to reach the `ok` prompt. Several ways to do this are outlined in Reaching the ok Prompt. For detailed instructions, see Reaching the ok Prompt.

### Openboot `ok` Prompt Not Available After Solaris OS Has Started

The OpenBoot firmware is not available and might be removed from memory once the Solaris OS starts.

To reach the `ok` prompt from the Solaris OS, you must first halt the domain. Use the Solaris OS `halt` (1M) command to halt the domain.

### Reaching the `ok` Prompt

There are several ``ways to reach the `ok` prompt, depending on the state of the system and the means by which you are accessing the system console. In decreasing order of desirability, the list is as follows:

Note - To reach the `ok` prompt after a shutdown or reset of the server module, the `auto-boot?` option must be set to `false`. Also, you must shut down or restart the Solaris OS to get to the `ok` prompt. You cannot reach the `ok` prompt from the Solaris OS (see Openboot ok Prompt Not Available After Solaris OS Has Started).

- Graceful shutdown

- Graceful reset of the control domain using the ILOM `reset` command

- Manual system reset

- The Break key or the equivalent ALOM system controller command pair:
  `-> set` `/HOST send_break_action=break
  -> start /SP/console -force`

A discussion of each method follows. For step-by-step instructions, see Procedures for Obtaining the ok Prompt.

Note - As a rule, before suspending the operating system you should back up files, warn users of the impending shutdown, and halt the system in an orderly manner. However, it is not always possible to take such precautions, especially if the system is malfunctioning.

#### Graceful Shutdown

The preferred method of reaching the `ok` prompt is to shut down the operating system by typing an appropriate command (for example, the `init`, or
`uadmin` commands) as described in Solaris system administration documentation.

For example, if you type `init` `0` at the Solaris prompt the system gradually takes you to the `ok` prompt:

    ok

If the operating system is already halted, you can use the start /SP/`console` command without using `set` `/HOST send_break_action=break` to reach the `ok` prompt.

Gracefully shutting down the system prevents data loss, enables you to warn users beforehand, and causes minimal disruption. You can usually perform a graceful shutdown, provided the Solaris OS is running and the hardware has not experienced serious failure.

You can perform a graceful system shutdown from the ALOM system controller command prompt using the `stop` `/SYS` command.

You can also use the system Power button to initiate a graceful system shutdown.

#### Graceful Reset of the Control Domain With ILOM `reset` Command

Use the ILOM `reset` command to gracefully reset the control domain and obtain the `ok` prompt. If a graceful shutdown is not possible, a forced shutdown is performed. To use this method to obtain the `ok` prompt, you must first set the control domain `auto-boot` option to `false`. For example:

    -> set /HOST/domain/control auto-boot=disable
    -> reset /HOST/domain/control

#### Manual System Reset

| Caution - Forcing a manual system reset results in loss of system state data and should be attempted only as a last resort. After a manual system reset, all state information is lost, which inhibits troubleshooting the cause of the problem until the problem reoccurs.

Use the ALOM system controller `reset` `/SYS` command, or `start` `/SYS` and
`stop` `/SYS` commands, to reset the server module. For example

To Reset the System Manually

1. Type:

    -> set /HOST/bootmode script="setenv auto-boot? false"

The `auto-boot?` setting is permanent. The setting remains `false` until deliberately changed.

2. Press Enter.

3. Type:

`->` `reset /SYS` `->` `start /SP/console`

Reaching the `ok` prompt by performing a manual system reset or by power cycling the system should be the method of last resort. Using these commands results in the loss of all system coherence and state information. A manual system reset could corrupt the server module file systems, although the `fsck` command usually restores them. Use this method only when nothing else works.

| Caution - Accessing the `ok`prompt shuts down the Solaris OS. You cannot return to the Solaris OS without rebooting the OS, for example with the `boot`command.

To Shut Down the Server Module Using the Break Key or the Equivalent Pair of ILOM Commands

When it is impossible or impractical to shut down the system gracefully, you can get to the `ok` prompt, if you have an alphanumeric terminal attached to the server module, by pressing the Break key.

The equivalent method uses the following pair of commands:

1. Type `set /HOST send_break_action=break`

This command forces a running server module to drop to a menu. For example:

    -> set /HOST send_break_action=break
    Set ’send_break_action’ to ’break’

    -> start /SP/console
    Are you sure you want to start /SP/console (y/n)? y
    Serial console started.  To stop, type #.

2. Press Enter.

The server module responds with:

    c)ontinue, s)ync, r)eset

3. Select `r` to reset the system and stop at the `ok` prompt if the `auto-boot``?` option is set to false.

Selecting `c` returns you to the Solaris prompt without reset.

Selecting `s` causes a core dump, a hard reset of the control domain (the host if no guest domains have been configured), then boots the Solaris OS.

Note - These methods of reaching the `ok` prompt will only work if the system console has been left in the default setting of `virtual-console`.

### Procedures for Obtaining the `ok` Prompt

| Caution - Obtaining the `ok`prompt shuts down all application and operating system software. After you issue firmware commands and run firmware-based tests from the `ok`prompt, you cannot resume where the OS or applications left off. You must reboot the Solaris OS after reaching the `ok`prompt.

If possible, back up system data before starting this procedure. Also exit or stop all applications, and warn users of the impending loss of service. For information about the appropriate backup and shutdown procedures, see Solaris system administration documentation.

### To Obtain the `ok` Prompt

1. Decide which method you need to use to reach the `ok` prompt.

2. Follow the appropriate instructions in TABLE 4-1.

TABLE 4-1 Procedures for Accessing the `ok` Prompt
Access Method | What to Do
--- | ---
Graceful shutdown of the Solaris OS | From a shell or command tool window, type an appropriate command (for example, the `init` 0 or `uadmin 2 0` commands) as described in Solaris system administration documentation.
Graceful reset of the control domain using the ILOM `reset` command | From the -> prompt in the control domain, type: -> `set /HOST/domain/control auto-boot=disable` -> `reset /HOST/domain/control`
Manual system reset | From the `->` prompt, type:
    -> set /HOST/bootmode script="setenv auto-boot? false"
Press Enter. Then type: `->` `reset /SYS` `->` `start /SP/console`
Break key or equivalent ILOM break commands | From an alphanumeric terminal configured to access the system console, press the Break key. After the break, if a debugger is present the domain breaks to KMDB debugger prompt, which allows access to the `c)continue, s)ync, r)eset?` prompt. If a debugger is not present, the `c)continue, s)ync, r)eset?` prompt occurs: `c` - returns to the Solaris OS `s` - forces synchronization (sync) of the filesystem, resulting in a core dump `r` - resets the domain and reboots to the Solaris OS if the `auto-boot?` option is set to `true`, or stops at the `ok` prompt if the `auto-boot?` option is set to `false`.

##

OpenBoot Configuration Variables on the SP

TABLE 4-2 describes the OpenBoot firmware configuration variables. The OpenBoot configuration variables are printed here in the order in which they appear when you type the `printenv` command at the OpenBoot `ok` prompt.

TABLE 4-2 OpenBoot Configuration Variables Stored on the Service Processor
Variable Name | Possible Values | Default Value | Description
--- | --- | --- | ---
    {0} ok printenv
    None
    None
| Printenv command displays the variables below.
    ttya-rts-dtr-off
    true, false
    false
| If `true`, operating system does not assert `rts` (request-to-send) and `dtr` (data-transfer-ready) on serial management port.
    ttya-ignore-cd
    true, false
    true
| If `true`, operating system ignores carrier-detect on TTYA port.
    reboot-command
    security-mode
    none, command, full
    No default
| Firmware security level.
    security-password
    variable-name
    No default
| Firmware security password if `security-mode` is not `none` (never displayed). Do not set this directly.
security-#badlogins |
    0
    No default
| Number of incorrect security password attempts.
    verbosity
    min, normal, max
    min
| Controls mount and detail of firmware output.
    pci-mem64?
    true, false
    true
    diag-switch?
    true, false
    false
| If `true`, OpenBoot verbosity is set to maximum If `false`, OpenBoot verbosity is set to minimum
    local-mac-address?
    true, false
    true
    If true, network drivers use their own MAC address, not the server MAC address.
    fcode-debug?
    true, false
    false
| If `true`, include name fields for plug-in device FCodes.
    scsi-initiator-id
    0 to 15
    7
| SCSI ID of the serial attached SCSI controller.
    oem-logo
| No default
    oem-logo?
    true, false
    false
| If `true`, use custom OEM logo. Otherwise, use the server manufacturer’s logo.
    oem-banner
    No default
    oem-banner?
    true, false
    false
| If `true`, use custom OEM banner.
    ansi-terminal?
    true, false
    true
| If `true`, enable ANSI terminal emulation.
    screen-#columns
    0-n
    80
| Sets number of columns on screen.
    screen-#rows
    0-n
    34
| Sets number of rows on screen.
    ttya-mode
    9600,8,n,1,-
    9600,8,n,1,-
| TTYA port (baud rate, bits, parity, stop, handshake). The serial management port only works at the default values.
    output-device
    virtual-console, screen, rscreen
    virtual-console
| Power-on output device.
    input-device
    virtual-console, keyboard, rkeyboard
    virtual-console
| Power-on input device.
    auto-boot-on-error?
    true, false
    false
| If `true`, boots automatically after system error.
    load-base
    0-n
    16384
| Address.
    auto-boot?
    true, false
    true
| If `true`, boots automatically after power on or reset.
    network-boot-arguments:
| Arguments to be used by the PROM for network booting. Defaults to an empty string. `network-boot-arguments` can be used to specify the boot protocol (RARP/DHCP) to be used and a range of system knowledge to be used in the process. For more information, see the `eeprom` (1M) man page or your Solaris reference manual..
    boot-command
    boot
    boot
| Executed if `auto-boot?` is true
    boot-device
    disk, net, cdrom
    disk, net
| Device from which to boot.
    multipath-boot?
    true, false
    false
    boot-device-index
    0
    0
    use-nvramrc?
    true, false
    false
| If `true`, executes commands in NVRAMRC during server module startup.
    nvramrc
    variable-name
    none
| Command script to execute if `use-nvramrc?` is `true.`
    error-reset-recovery
    boot, sync, none
    boot
| Command to execute following a system reset generated by an error.

You can change the OpenBoot PROM variables using the `setenv` command or by using the `eeprom` command in Solaris.

For more information, see the `eeprom` (1M) man page or your Solaris reference manual.

### For More Information

For more information about the OpenBoot firmware, refer to the OpenBoot 4.x Command Reference Manual at:

`http://docs.sun.com`

Copyright © 2010, Oracle and/or its affiliates. All rights reserved.