Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

eeprom(8)

Name

eeprom - EEPROM display and load utility

Synopsis

/usr/sbin/eeprom [-] [-f device] [parameter[=value]]
/usr/sbin/eeprom -u [-i] [-x] [-] [uefi-variable[=value]] ...
/usr/sbin/eeprom -u -d uefi-variable ... 

Description

eeprom displays or changes the values of parameters in the EEPROM. It processes parameters in the order given. When processing a parameter accompanied by a value, eeprom makes the indicated alteration to the EEPROM; otherwise, it displays the parameter's value. When given no parameter specifiers, eeprom displays the values of all EEPROM parameters. A ‘  ’ (hyphen) flag specifies that parameters and values are to be read from the standard input (one parameter or parameter=value per line).

An effective uid of 0 is required to alter the EEPROM contents. This is provided by the Device Security rights profile or the Maintenance and Repair rights profile.

eeprom verifies the EEPROM checksums and complains if they are incorrect.

platform-name is the name of the platform implementation and can be found using the –i option of uname(1).

SPARC

SPARC based systems implement firmware password protection with eeprom, using the security-mode, security-password and security-#badlogins properties.

x86

EEPROM storage is simulated using a file residing in the platform-specific boot area. The /boot/solaris/bootenv.rc file simulates EEPROM storage.

Because x86 based systems typically implement password protection in the system BIOS, there is no support for password protection in the eeprom program. While it is possible to set the security-mode, security-password and security-#badlogins properties on x86 based systems, these properties have no special meaning or behavior on x86 based systems.

UEFI

In addition to simulating EEPROM storage, UEFI capable x86 systems implement NVRAM storage for variables specific to the UEFI environment, as defined by the UEFI specification. All privileges are required for both reading and writing UEFI variables.

Options

–f device

Use device as the EEPROM device.

–u

Access UEFI variables instead of Solaris system variables. When used alone prints all UEFI variables. Otherwise, individual variables can be listed on the command line to be printed or written to using the same format style as Solaris system variables.

Most UEFI variables are in a binary format and are translated to a readable format. When translation is not possible, a hexdump is printed.

–x uefi-variable

Outputs a hexdump of a specified UEFI variable without attempting translation. When used on a set operation, it will have no effect.

–d uefi-variable

Deletes a UEFI variable specified on the command line.

–u -

-’ when used under –u option works the same way as it does with the regular eeprom command except now it operates on UEFI variables.

–i

Prints UEFI NVRAM storage usage information.

Operands

x86 Only

acpi-user-options

A configuration variable that controls the use of Advanced Configuration and Power Interface (ACPI), a power management specification. The acceptable values for this variable depend on the release of the Solaris operating system you are using.

For all releases of Solaris 10 and Solaris 11, a value of of 0x0 means that there will be an attempt to use ACPI if it is available on the system. A value of 0x2 disables the use of ACPI.

For the Solaris 10 1/06 release, a value of 0x8 means that there will be an attempt to use ACPI in a mode compatible with previous releases of Solaris 10 if it is available on the system. The default for Solaris 10 1/06 is 0x8.

For releases of Solaris 10 after the 1/06 release and for Solaris 11, the default is 0x0.

Most users can safely accept the default value, which enables ACPI if available. If issues related to the use of ACPI are suspected on releases of Solaris after Solaris 1/06, it is suggested to first try a value of 0x8 and then, if you do not obtain satisfactory results, 0x02.

console

Specifies the console device. Possible values are ttya, ttyb, text, graphics and force-text. In text mode, console output goes to the frame buffer and input comes from the keyboard. A variant of text mode, graphics displays an image with an animation until either a key is pressed or console interaction is required by console login, sulogin, or kmdb. A further variant of text, force-text will avoid using a VGA adapter as a bitmapped device setting it to VGA text mode. When this property is not present, the console device falls back to the device specified by input-device and output-device. When neither the console property nor the input-device and output-device property pair are present, the console defaults to the frame buffer and keyboard.

screen-#columns screen-#rows

When screen is set to either graphics or text on a bitmapped device, screen-#columns and screen-#rows allow the desired number columns and rows of text to be specified. They default to 80 and 24 respectively.

UEFI Only

BootOrder

The ordered boot option load list.

BootNext

The boot option for the next boot only.

BootCurrent

The boot option that was selected for the current boot.

Boot####

A boot load option. #### is a printed hex value. No 0x or h is included in the hex value.

ConIn

The device path of the default input console.

ConOut

The device path of the default output console.

ConInDev

The device path of all possible console input devices.

ConOutDev

The device path of all possible console output devices.

ErrOut

The device path of the default error output device.

ErrOutDev

The device path of all possible error output devices.

Lang

The language code that the system is configured for. This value is deprecated.

PlatformLang

The language code that the system is configured for.

LangCodes

The language codes that the firmware supports. This value is deprecated.

PlatformLangCodes

The language codes that the firmware supports.

Timeout

The firmware's boot managers timeout, in seconds, before initiating the default boot selection.

NVRAM CONFIGURATION PARAMETERS

Not all OpenBoot systems support all parameters. Defaults vary depending on the system and the PROM revision. See the output in the “Default Value” column of the printenv command, as entered at the ok (OpenBoot) prompt, to determine the default for your system.

auto-boot?

If true, boots automatically after power-on or reset. Defaults to true. On x86, this parameter is controlled by the grub menu file.

ansi-terminal?

Configuration variable used to control the behavior of the terminal emulator. The value false makes the terminal emulator stop interpreting ANSI escape sequences; instead, echoes them to the output device. Defaults to true.

boot-args

Holds a string of arguments that are passed to the boot subsystem. For example, you can use boot-args=' - install dhcp' to request a customer jumpstart installation. See boot(8), kmdb(1), and kernel(8).

boot-command

Command executed if auto-boot? is true. Defaults to boot.

boot-device

Device from which to boot. boot-device may contain 0 or more device specifiers separated by spaces. Each device specifier may be either a prom device alias or a prom device path. The boot prom will attempt to open each successive device specifier in the list beginning with the first device specifier. The first device specifier that opens successfully will be used as the device to boot from. Defaults to disk net.

boot-device-index

Keeps track onf the device index into the boot-device variable.

boot-file

File to boot (an empty string lets the secondary booter choose default). Defaults to empty string.

boot-ncpus

Configuration variable that controls the number of processors with which the system should boot. By default, the system boots with maximum supported number of processors.

boot-pool-list

If the platform supports dedicated devices to be used as a boot pool (a dedicated ZFS pool to be used for booting the system with an operating system that can mount its root filesystem from a device other than the boot device), this variable is a space-separated list of device paths to storage devices that can be used by the operating system to create the boot pool.

diag-switch?

If true, run in diagnostic mode. Defaults to false on most desktop systems, true on most servers.

error-reset-recovery

Recover after an error reset trap. Defaults to platform-specific setting.

The options are:

none

Print a message describing the reset trap and go to OpenBoot PROM's user interface, aka OK prompt.

sync

Invoke OpenBoot PROM's sync word after the reset trap. Some platforms may treat this as none after an externally initiated reset (XIR) trap.

boot

Reboot after the reset trap. Some platforms may treat this as none after an XIR trap.

fcode-debug?

If true, include name parameter for plug-in device FCodes. Defaults to false.

input-device

Input device used at power-on (usually keyboard, ttya, or ttyb). Defaults to keyboard.

keyboard-layout

A string that specifies the layout name for non-self-identifying keyboards (type 7c). Invoke kbd –s to obtain a list of acceptable layout names. See kbd(1).

load-base

Default load address for client programs. Default value is 16384.

local-mac-address?

If true, network drivers use their own MAC address, not the system's. Defaults to false.

multipath-boot?

If true, is used by the PROM to cycle through the list of I/O devices provided in the boot-device variable, until a successful boot is performed with a device from the list.

nvramrc

Contents of NVRAMRC. Defaults to empty.

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.

The syntax for arguments supported for network booting is:

[protocol,] [key=value,]*

All arguments are optional and can appear in any order. Commas are required unless the argument is at the end of the list. If specified, an argument takes precedence over any default values, or, if booting using DHCP, over configuration information provided by a DHCP server for those parameters.

protocol, above, specifies the address discovery protocol to be used.

Configuration parameters, listed below, are specified as key=value attribute pairs.

tftp-server

IP address of the TFTP server

file

file to download using TFTP or URL for WAN boot

host-ip

IP address of the client (in dotted-decimal notation)

router-ip

IP address of the default router (in dotted-decimal notation)

subnet-mask

subnet mask (in dotted-decimal notation)

client-id

DHCP client identifier

hostname

hostname to use in DHCP transactions

http-proxy

HTTP proxy server specification (IPADDR[:PORT])

tftp-retries

maximum number of TFTP retries

dhcp-retries

maximum number of DHCP retries

If no parameters are specified (that is, network-boot-arguments is an empty string), the PROM will use the platform-specific default address discovery protocol.

Absence of the protocol parameter when other configuration parameters are specified implies manual configuration.

Manual configuration requires that the client be provided with all the information necessary for boot. If using manual configuration, information required by the PROM to load the second-stage boot program must be provided in network-boot-arguments while information required for the second-stage boot program can be specified either as arguments to the boot program or by means of the boot program's interactive command interpreter.

Information required by the PROM when using manual configuration includes the booting client's IP address, name of the boot file, and the address of the server providing the boot file image. Depending on network configuration, it might be required that the subnet mask and address of the default router to use also be specified.

oem-banner

Custom OEM banner (enabled by setting oem-banner? to true). Defaults to empty string.

oem-banner?

If true, use custom OEM banner. Defaults to false.

oem-logo

Byte array custom OEM logo (enabled by setting oem-logo? to true). Displayed in hexadecimal.

oem-logo?

If true, use custom OEM logo (else, use Sun logo). Defaults to false.

os-root-device

If set, wholly describes one or more root filesystem and device that will be used to store the root pool. On platforms that import their root pools from storage that is not directly accessible by firmware (e.g. no FCode or ROM exists with code that can access the root device), this variable is used to configure the root device and filesystem in early Solaris kernel boot. The value of this property is only interpreted by an operating system (e.g. Solaris).

The general form of os-root-device is a set of key-value pairs, separated by semicolons (;). Multiple root descriptors are separated by double-semicolons (;;).

For example (a single root descriptor (reassembled, it forms a single, uninterrupted line of text)):

osroot-type=ZFS/iSCSI/IPv4/IPoIB;osroot-iscsi-port=3260;\
osroot-iscsi-target-ip=141.141.1.2;osroot-iscsi-partition=a;\
osroot-iscsi-lun=2;osroot-iscsi-target-name=iqn.1986-03.\
com.sun:02:3a9d3d74-b3ec-43ac-ed6f-c9358c98a366;\
osroot-subnet-mask=255.255.255.0;osroot-host-ip=\
141.141.1.1;osroot-path=/pci@301/pci@1/pciex15b3,1003@0:\
port=1,pkey=FFFF,protocol=ip

Another example (multiple root descriptors (reassembled, it forms a single, uninterrupted line of text)):

osroot-type=ZFS/iSCSI/IPv4/IPoIB;osroot-iscsi-port=3260;\
osroot-iscsi-target-ip=141.141.1.2;osroot-iscsi-partition=a;\
osroot-iscsi-lun=2;osroot-iscsi-target-name=iqn.1986-03.\
com.sun:02:3a9d3d74-b3ec-43ac-ed6f-c9358c98a366;\
osroot-subnet-mask=255.255.255.0;osroot-host-ip=\
141.141.1.1;osroot-path=/pci@301/pci@1/pciex15b3,1003@0:\
port=1,pkey=FFFF,protocol=ip;;\
osroot-type=ZFS/iSCSI/IPv4/IPoIB;osroot-iscsi-port=3260;\
osroot-iscsi-target-ip=141.141.1.2;osroot-iscsi-partition=a;\
osroot-iscsi-lun=2;osroot-iscsi-target-name=iqn.1986-03.\
com.sun:02:3a9d3d74-b3ec-43ac-ed6f-c9358c98a366;\
osroot-subnet-mask=255.255.255.0;osroot-host-ip=\
141.141.1.1;osroot-path=/pci@315/pci@2/pciex15b3,1003@0:\
port=2,pkey=FFFF,protocol=ip
output-device

Output device used at power-on (usually screen, ttya, or ttyb). Defaults to screen.

rootpath

Specifies the root device of the operating system.

screen-#columns

Number of on-screen columns (characters/line). Defaults to 80.

screen-#rows

Number of on-screen rows (lines). Defaults to 34.

scsi-initiator-id

SCSI bus address of host adapter, range 0-7. Defaults to 7.

security-#badlogins

Report the number of incorrect security password attempts. eeprom security-#badlogins=0 will reset the value. This property has no special meaning or behavior on x86 based systems.

security-mode

Firmware security level (options: none, command, or full). If set to command or full, system will prompt for PROM security password. Defaults to none.This property has no special meaning or behavior on x86 based systems.

security-password

Firmware security password (never displayed). Can be set only when security-mode is set to command or full.This property has no special meaning or behavior on x86 based systems.


example# eeprom security-password=
Changing PROM password:
New password:
Retype new password:
tboot-list

If the platform supports a fallback boot mechanism (a device or set of devices that describe storage devices that hold bootable images that can allow the system to boot in the event of failure of the primary boot devices), this variable holds a space-separated list of device paths that should be added to the boot-device variable (usually at the end, after the primary boot devices) by the operating system.

ttya-mode

TTYA (baud rate, #bits, parity, #stop, handshake). Defaults to 9600,8,n,1,−.

Fields, in left-to-right order, are:

Baud rate:

110, 300, 1200, 4800, 9600 . . .

Data bits:

5, 6, 7, 8

Parity:

n(none), e(even), o(odd), m(mark), s(space)

Stop bits:

1, 1.5, 2

Handshake:

−(none), h(hardware:rts/cts), s(software:xon/xoff)

ttyb-mode

TTYB (baud rate, #bits, parity, #stop, handshake). Defaults to 9600,8,n,1,−.

Fields, in left-to-right order, are:

Baud rate:

110, 300, 1200, 4800, 9600 . . .

Data bits:

5, 6, 7, 8

Stop bits:

1, 1.5, 2

Parity:

n(none), e(even), o(odd), m(mark), s(space)

Handshake:

−(none), h(hardware:rts/cts), s(software:xon/xoff)

ttya-ignore-cd

If true, operating system ignores carrier-detect on TTYA. Defaults to true.

ttyb-ignore-cd

If true, operating system ignores carrier-detect on TTYB. Defaults to true.

ttya-rts-dtr-off

If true, operating system does not assert DTR and RTS on TTYA. Defaults to false.

ttyb-rts-dtr-off

If true, operating system does not assert DTR and RTS on TTYB. Defaults to false.

use-nvramrc?

If true, execute commands in NVRAMRC during system start-up. Defaults to false.

verbosity

Controls the level of verbosity of PROM messages. Can be one of debug, max, normal, min, or none. Defaults to normal.

Examples

Example 1 Setting the auto-boot? Parameter to true.

The following example demonstrates the method for setting the auto-boot? parameter to true.

example# eeprom auto-boot?=true

When the eeprom command is executed in user mode, the parameters with a trailing question mark (?) need to be enclosed in double quotation marks (“ “) to prevent the shell from interpreting the question mark. Preceding the question mark with an escape character (\) will also prevent the shell from interpreting the question mark.

example% eeprom "auto-boot?"=true
Example 2 Using network-boot-arguments

To use DHCP as the boot protocol and a hostname of abcd.example.com for network booting, set these values in network-boot-arguments as:

example# eeprom network-boot-arguments="dhcp,hostname=abcd.example.com"

...then boot using the command:

ok boot net

Note that network boot arguments specified from the PROM command line cause the contents of network-boot-arguments to be ignored. For example, with network-boot-arguments set as shown above, the boot command:

ok boot net:dhcp

...causes DHCP to be used, but the hostname specified in network-boot-arguments will not be used during network boot.

Example 3 Setting System Console to Auxiliary Device

The command below assigns the device /dev/term/a as the system console device. You would make such an assignment prior to using tip(1) to establish a tip connection to a host.

On a SPARC machine:

# eeprom output-device=/dev/term/a

On an x86 machine:

# eeprom console=ttya

On a SPARC machine, the preceding command would be sufficient for assigning the console to an auxiliary device. For an x86 machine, you might, in addition, need to set the characteristics of the serial line, for which you would have to consult the BIOS documentation for that machine. Also, on some x86 machines, you might use a device other than device a, as shown above. For example, you could set console to ttyb if the second serial port is present.

Example 4 Specifying that SPARC System Boots into kmdb

To specify that a SPARC machine boots into kmdb(1), enter the following command:

# eeprom boot-command="boot -k"
Example 5 Read all UEFI Variables on an UEFI Capable X86 System While in UEFI Mode

The following command shows how to read all UEFI variables on an UEFI capable X86 system while in UEFI mode:


example# eeprom -u

MonotonicCounter=0x1f2
OsaBootOptNum=0xffff
ConOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConIn=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0)
BootOrder=Boot0000 Boot0001 Boot0002 Boot0003 Boot0004 Boot0005 Boot0006
Lang=eng
PlatformLang=en-US
Timeout=0x1
Boot0001=description:string=[UEFI]USB:USBIN:USB USB Hard Drive, flags:int=1,
device_path:string=/PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0x0)/USB(0x2,0x0)/HD(1,
MBR,0x004D5353,0x800,0x3b5800), optional_data:string=AMBO
Boot0002=description:string=[UEFI]PXE:NET0:Intel(R) Ethernet Controller 10
Gigabit X540-AT2, flags:int=1,
device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)/MAC(002128e77478),
optional_data:string=AMBO
Boot0003=description:string=[UEFI]PXE:NET1:Intel(R) Ethernet Controller 10
Gigabit X540-AT2, flags:int=1,
device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1)/MAC(002128e77479),
optional_data:string=AMBO
Boot0004=description:string=[UEFI]PXE:NET2:Intel(R) Ethernet Controller 10
Gigabit X540-AT2, flags:int=1,
device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(002128e7747a),
optional_data:string=AMBO
Boot0005=description:string=[UEFI]PXE:NET3:Intel(R) Ethernet Controller 10
Gigabit X540-AT2, flags:int=1,
device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x1)/MAC(002128e7747b),
optional_data:string=AMBO
Boot0006=description:string=[UEFI]SAS:PCIE3:ATA     HITACHI HDS7225SA81A,
flags:int=1,
device_path:string=/PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/MessagingPath(10,2c
00b4dd87d48b00d911afdc001083ffca4d00000000000000021122334400000000000000001201
0100)/HD(1,GPT,BCB01265-4665-F1CA-8BF5-9C4FB95962FA,0x100,0x80000),
optional_data:string=AMBO
Boot0000=description:string=Oracle Solaris 11.4, flags:int=1,
device_path:string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000
, file_path:string=/EFI/Oracle/grubx64.efi USB_POINT=5139417f00000000
ConOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConInDev=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0) BootOptionSupport=0x1
ErrOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ErrOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
PlatformLangCodes=en-US
S3PerfAdd=hexdump:989fd6aa00000000
LangCodes=eng
BootCurrent=Boot0000
Example 6 Read a Specified UEFI Variable

The following command shows how to read a specified UEFI variable:


example# eeprom -u Boot0000

Boot0000=description:string=Oracle Solaris 11.4, flags:int=1,
device_path:string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000),
file_path:string=/EFI/Oracle/grubx64.efi 
Example 7 Write to a UEFI Variable Using the Command Line

The following command shows how to write to an UEFI variable using the command line where translation is possible:


example# eeprom -u BootOrder="Boot0006 Boot0001 Boot0002 Boot0003 Boot0004
Boot0005 Boot0000"
Example 8 Delete an UEFI Variable

The following command shows how to delete an UEFI variable:

example# eeprom -u -d Boot0004

Files

/boot/solaris/bootenv.rc

File storing eeprom values on x86 machines.

/dev/openprom

Device file

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/core-os

See Also

kmdb(1), passwd(1), sh(1), svcs(1), tip(1), uname(1), attributes(7), smf(7), boot(8), init(8), kernel(8), svcadm(8)

SPARC Only

Oracle OpenBoot 4.x Administration Guide

x86 Only

biosconfig(8), ubiosconfig(8)