NAME¶
nvramtool - read/write coreboot-related information
SYNOPSIS¶
nvramtool [OPTS] [-n] -r NAME
nvramtool [OPTS] -e NAME
nvramtool [OPTS] -a
nvramtool [OPTS] -w NAME=VALUE
nvramtool [OPTS] -p INPUT_FILE
nvramtool [OPTS] -i
nvramtool [OPTS] -c [VALUE]
nvramtool [OPTS] -l [ARG]
nvramtool [OPTS] -d
nvramtool [OPTS] -Y
nvramtool [OPTS] -b OUTPUT_FILE
nvramtool [OPTS] -B INPUT_FILE
nvramtool [OPTS] -x
nvramtool [OPTS] -X DUMPFILE
nvramtool [OPTS] -v
nvramtool [OPTS] -h
DESCRIPTION¶
nvramtool is a utility for reading/writing coreboot parameters and
displaying information from the coreboot table.
The coreboot table resides in low physical memory. It is created at boot time by
coreboot, and contains various system information such as the type of
mainboard in use. It specifies locations in the CMOS (nonvolatile RAM) where
the coreboot parameters are stored.
This program is intended for (x86-based) systems that use coreboot. For
information about coreboot, see
http://www.coreboot.org/.
PARAMETERS¶
- [-n] -r NAME
- Show the value of the coreboot parameter given by NAME. If
-n is specified, show only the value. Otherwise show both parameter
name and value.
- -e NAME
- Show all possible values for parameter given by NAME.
- -a
- Show the names and values for all coreboot parameters.
- -w NAME=VALUE
- Assign VALUE to coreboot parameter given by NAME.
- -p INPUT_FILE
- Assign values to coreboot parameters according to the contents of
INPUT_FILE. The format of this file is described below.
- -i
- This is similar to the -p option, except that the contents of the
input file are taken from standard input.
- -c [VALUE]
- If VALUE is present then set the CMOS checksum for the coreboot
parameters to VALUE. Otherwise, show the checksum value.
- -l [ARG]
- If ARG is present then show information from the coreboot table as
specified by ARG. Otherwise show all possible values for
ARG.
- -d
- Do a low-level dump of the coreboot table.
- -Y
- Write CMOS layout information to standard output. If redirected to a file,
the layout information may be used as input for the '-y
LAYOUT_FILE' option (see below).
- -b OUTPUT_FILE
- Write the contents of CMOS memory to the binary file OUTPUT_FILE.
The first 14 bytes of OUTPUT_FILE do not contain actual CMOS data,
and are always written as zeros. This is because the first 14 bytes of the
CMOS area do not contain CMOS memory. These bytes are involved with the
functioning of the real time clock.
- -B INPUT_FILE
- Read binary data from INPUT_FILE and write the data to CMOS memory.
The first 14 bytes of INPUT_FILE are skipped and data is written to
CMOS starting at the 15th byte of the CMOS area. This is because the first
14 bytes of the CMOS area do not contain CMOS memory. These bytes are
involved with the functioning of the real time clock.
- -x
- Show a hex dump of all CMOS data. The first 14 bytes of the dump do not
contain actual CMOS data, and are always shown as zeros. This is because
the first 14 bytes of the CMOS area do not contain CMOS memory. These
bytes are involved with the functioning of the real time clock.
- -X DUMPFILE
- Read binary data from DUMPFILE (presumably a CMOS dumpfile created
using the -b OUTPUT_FILE option) and show a hex dump of the
data.
- -v
- Show version information for this program.
- -h
- Show a help message for this program.
OPTIONS¶
In all cases above,
[OPTS] evaluates to the following:
[-y LAYOUT_FILE | -t]
The
'-y LAYOUT_FILE' option tells nvramtool to obtain CMOS layout
information from the contents of
LAYOUT_FILE. Likewise, the
'-t'
option tells nvramtool to obtain CMOS layout information from the CMOS option
table (contained within the coreboot table). If neither option is specified,
the CMOS option table is used by default.
LAYOUT_FILE follows the
format of the
cmos.layout files provided by coreboot.
If the coreboot installed on your system was built without specifying
HAVE_OPTION_TABLE, then the coreboot table will not contain a CMOS
option table. In this case, the
'-y LAYOUT_FILE' option must be used.
These two options are silently ignored when used in combination with other
options (such as
-h, for instance) for which they are not applicable.
For the
-p option,
INPUT_FILE must consist of a sequence of lines
such that each line is either a blank line, a comment, or an assignment. A
blank line consists only of zero or more whitespace characters (spaces and
tabs). A comment is constructed as follows:
[ws]#[text]
Here,
[ws] indicates optional whitespace characters and
[text]
indicates optional text. Blank lines and comments are both ignored. An
assignment is constructed as follows:
[ws]NAME[ws]=[ws]VALUE[ws]
Here,
NAME is the name of a coreboot parameter and
VALUE is the
value that will be assigned to
NAME. VALUE is allowed to contain
whitespace characters, but it must begin and end with nonwhitespace
characters. Note that each comment must appear on a line by itself. If you
attempt to add a comment to the end of an assignment, then the comment will be
interpreted as part of
VALUE. It is useful to observe that the output
produced by both the
-a and the
'[-n] NAME' options (without
-n specified) adheres to this file format.
BUGS¶
This program does not implement any type of synchronization to ensure that
different processes don't stomp on each other when trying to access the
nonvolatile RAM simultaneously. Therefore, corruption of the BIOS parameter
values may occur if multiple instances of this program are executed
concurrently.
AUTHORS¶
David S. Peterson <dsp@llnl.gov> <dave_peterson@pobox.com>
Stefan Reinauer <stepan@coresystems.de>