EEPROM(8)

NAME
eeprom - display or modify contents of the EEPROM or NVRAM

SYNOPSIS
eeprom -a
eeprom [-] name[=value] ...

DESCRIPTION
The eeprom utility provides an interface for displaying and changing the system's configuration variables contained in EEPROM or NVRAM. In the first synopsis form, all available configuration variables and their current values are printed. In the second form, only the variable selected by name and its value is printed or changed if name is followed by ‘=’ and a value.

The following options are available:

-   Commands for displaying or changing variables are taken from stdin, allowing one name or one name and value pair per line. The output is printed on stdout.

-a  Print all available configuration variables and their current values.

VARIABLES AND VALUES
Below are variables and values that one is likely to find on a system equipped with OpenBoot 3.x and Open Firmware respectively.

Note: the attempt to set a variable to an illegal value results in the Open Firmware setting it to some legal value instead. The eeprom utility will detect this, try to recover the previous value of the variable and issue a warning telling that the requested value could not be set.

auto-boot?
    If “true”, the system will try to boot automatically from the devices listed in boot-device and diag-device respectively, using the command specified in boot-command at power-up. Default: “true”.

auto-boot-retry?
    If set to “true” and auto-boot? is also set to “true”, the system will try to boot from the specified boot devices forever. Default: “false”.

ansi-terminal?
    If “false”, ANSI escape sequences are not interpreted by the terminal emulator. Default: “true”.

boot-command
    Command executed when auto-boot? is set to “true”. Default: “boot”.

boot-device
    Default device to boot from if diag-switch? is set to “false”. Takes one or more device aliases or device paths. The boot devices are sequentially tried to boot from, beginning with the first one specified. Default: “net disk”.

cpci-probe-list
    Digits in the format “0,1,2” specifying in which order to probe the devices on the CompactPCI bus at power-up. Default: system-dependent.

boot-file
    Default arguments for boot when diag-switch? is set to “false”. When empty, the secondary boot loader will choose the file to boot. Default: empty string.

diag-device
    Like boot-device. Used when diag-switch? is set to “true”. Default: “net”.

diag-file
    Like boot-file. Used when diag-switch? is set to “true”. Default: empty string.

diag-level
    Level of diagnostics to run when diag-switch? is set to “true”. Possible values are “max”, “menus”, “min” and “off” (depending on the system model). When set to “off”, the Power-On Self Test (POST) is not run. The other values are interpreted by the POST. Default: “min” or “max” (system-dependent).

diag-switch?
    If “true”, the system will boot and run in diagnostic mode. Default: “false” or “true” (system-dependent).

env-monitor
    Enables or disables the Advanced System Monitoring (ASM). Possible values are “enabled” and “disabled”. Default: “enabled”.

fcode-debug?
    Used for debugging FCode programs. If set to “true”, names of additional FCodes are registered in the Forth dictionary. Default: “false”.

hardware-revision
    A string describing the system hardware version. Default: system-dependent.

input-device
    One of the strings “keyboard”, “ttya”, or “ttyb”, specifying the default console input device. Default: “keyboard” or “ttya” (system-dependent).

keyboard-click?
    If set to “true”, the keys click annoyingly. Default: “false”.

keymap
    Keymap for a custom keyboard. Default: empty string.

last-hardware-update
    Similar to hardware-revision, describing when the hardware was last updated. Default: system-dependent.

last-poweroff-cause
    Cause of the last power-off. Used internally by the OpenBoot PROM. Default: “0”.

load-base
    Default address where client programs are loaded to. It is unlikely that this value should ever be changed. Default: “16384”.

local-mac-address?
    If set to “false”, all Ethernet devices with FCode will use the system default MAC address. If set to “true”, Ethernet devices with FCode that contains a unique MAC address will use it rather than the system's default MAC address. Default: “false”.

    Ethernet devices with FCode include those supported by dc(4), gem(4) and hme(4). Please see the respective manual page for further information.

mfg-mode
    Manufacture test mode interpreted by the POST. Possible values are “chamber” and “off”. Default: “off”.

mfg-switch?
    If set to “true”, manufacturing tests are repeated until stopped by pressing STOP-A. Default: “off”.

net-timeout
    If set to “0”, the system will try to boot forever when the boot device used is a network device. Any non-zero value is interpreted as minutes to try a network boot. Default: “0”.

nvramrc
    Contents of the NVRAMRC. Default: empty string.

    While nvramrc can be set using eeprom, it is preferred to use nvedit in the boot monitor instead.

oem-banner
    A string displayed at power-up, rather than the default banner. Used when oem-banner? is set to “true”. Default: system-dependent.

oem-banner?
    If set to “true”, the string stored in oem-banner is displayed at power-up rather than the default banner. Default: system-dependent.

oem-logo
    A logo displayed at power-up when oem-logo? is set to “true”, rather than the default logo. The logo has to be 512 bytes in size, containing a 64x64-bit monochrome image in Sun Raster format without the leading 32-byte header. Default: system-dependent.

    To set the logo with eeprom, give the pathname of the file containing the image as the value. Using an empty value will remove the image.

oem-logo?
    If set to “true”, the logo stored in oem-logo is displayed at power-up rather than the default logo.

output-device
    One of the strings “screen”, “ttya”, or “ttyb”, specifying the default console output device. Default: “screen” or “ttya” (system-dependent).

pcia-probe-list
    Digits in the format “1,2,3” specifying in which order to probe the devices on the PCI bus A. Default: system-dependent.

pcib-probe-list
    Like pcia-probe-list, but for PCI bus B. Default: system-dependent.

#power-cycles
    Number of power-cycles. Automatically incremented on each power-cycle. Default: system-dependent.

sbus-probe-list
    Digits in the format “0123” specifying in which order to probe the SBus slots at power-up. Default: system-dependent.

screen-#columns
    An integer specifying the screen width in characters per line. Default: “80”.

screen-#rows
    An integer specifying the screen height in lines. Default: “34”.

scsi-initiator-id
    The SCSI ID of SCSI controllers in the range of [0-7] or [0-f] (depending on the controller). A SCSI controller may or may not adhere to this setting, depending on its FCode and device driver. Default: “7”.

security-#badlogins
    Number of incorrect password attempts when security-mode is set to “command” or “full”. Default: “0”.

security-mode
    Boot monitor security level. One of the three possible values “full”, “command”, or “none”. When set to “full”, all boot monitor commands except for go require the password. When set to “command”, all boot monitor commands except for boot and go require the password. When set to “none”, no password is required. Default: “none”.

    When eeprom is used to set security-mode to “full” or “command”, you will be prompted for the password. When security-mode is set to “none”, eeprom will clear the password.

security-password
    The password used when security-mode is set to “full” or “command”. The maximum length for this password is 8 characters. All characters exceeding this length will be ignored. The value displayed for security-password is always an empty string, even when a password is set. Default: empty string.

    When security-mode is set to “full” or “command”, eeprom can be used to enter a new password using any value for security-password on the command line. You will be prompted by eeprom to type in the new password in this case. Trying to set security-password when security-mode is set to “none” using eeprom has no effect.

selftest-#megs
    An integer specifying the number of megabytes of memory to test upon power-up when diag-switch? is set to “false”. Default: “1”.

shutdown-temperature
    Temperature at which the ASM issues an over-temperature shutdown. Default: system-dependent.

silent-mode
    If set to “true”, memory test messages will not be displayed at power-up. Default: “false”.

sunmon-compat?
    If set to “true”, the old bootROM interface will be used while in the boot monitor, rather than the OpenBoot PROM interface. Default: “false”.

system-board-date
    Manufacturing date of the system board. Default: system-dependent.

system-board-serial#
    Serial number of the system board. Default: system-dependent.

tpe-link-test?
    Enable link test on 10baseT and 100baseTX Ethernet devices. Default: “true”.

ttya-mode
    A string of five comma separated fields in the format “9600,8,n,1,-”. The first field is the baud rate. The second field is the number of data bits. The third field is the parity; acceptable values for parity are ‘n’ (none), ‘e’ (even), ‘o’ (odd), ‘m’ (mark), and ‘s’ (space). The fourth field is the number of stop bits. The fifth field is the “handshake” field; acceptable values are ‘-’ (none), ‘h’ (RTS/CTS), and ‘s’ (Xon/Xoff). Default: “9600,8,n,1,-”.

ttya-ignore-cd
    If set to “true”, the system will ignore carrier detect. Default: “true”.

ttya-rts-dtr-off
    If set to “true”, the system will ignore RTS/DTR. Default: “false”.

ttyb-mode
    Like ttya-mode, but for ttyb. Default: “9600,8,n,1,-”.

ttyb-ignore-cd
    Like ttya-ignore-cd, but for ttyb. Default: “true”.

ttyb-rts-dtr-off
    Like ttya-rts-dtr-off, but for ttyb. Default: “false”.

use-boot-table?
    Use boot table defined by the OEM. Default: system-dependent.

use-nvramrc?
    If set to “true”, the script stored in nvramrc will be executed during start-up. Default: “false”.

warning-temperature
    Temperature at which the ASM issues an over-temperature warning. Default: system-dependent.

watchdog-enable?
    Enables or disables the system watchdog timer. Default: “false”.

watchdog-reboot?
    If set to “true”, the system will reboot upon terminal count of the system watchdog timer. If set to “false”, the system will fall into the boot monitor. Default: “false”.

watchdog-timeout
    Expiry limit for the system watchdog timer. Range and unit depend on the system model. Default: system-dependent.

EXAMPLES
Print all available configuration variables and their current values:

    eeprom -a

Print the current value of the local-mac-address? variable:

    eeprom local-mac-address\?

Set the value of the local-mac-address? variable to “true”:

    eeprom local-mac-address\?=true

Note that the ‘\’ in the above examples is used to keep the shell from interpreting the ‘’?.

Write an image to the oem-logo variable:

    eeprom oem-logo=/path/to/image.raw

Remove the image from the oem-logo variable again:

    eeprom oem-logo=

Set the value of the security-mode variable to “full”, and set the password:

    eeprom security-mode=full
    New password:
    Retype new password:

Remember that the maximum length for the password is 8 characters. All characters exceeding this length will be ignored.

Set a new password when the security-mode variable is set to “command” or “full”:

    eeprom security-password=
    New password:
    Retype new password:

SEE ALSO
dc(4), gem(4), hme(4), ofwdump(8)

HISTORY
The eeprom utility first appeared in 4.4BSD. It was adopted from there by FreeBSD 2.0. The eeprom utility was removed from FreeBSD again after FreeBSD 2.1.7 because the utility was unused at that time. The present implementation of the eeprom utility first appeared in FreeBSD 5.3. It is inspired by the NetBSD eeprom(8) and SunOS/Solaris eeprom(1M) utilities.

AUTHORS
-nosplit The eeprom utility uses base code from the NetBSD version written by Jason R. Thorpe. The handlers for the Open Firmware /options node were written by Marius Strobl <marius@FreeBSD.org>. The code for accessing the Open Firmware device tree is shared with the ofwdump(8) utility written by Thomas Moestl <tmm@FreeBSD.org>.

BUGS
Currently, eeprom only supports systems equipped with Open Firmware and is only tested on Sun Microsystems sun4u machines.