| .\"***************************************************************************\ |
| .\" nvramtool.8 |
| .\"*************************************************************************** |
| .\" Copyright (C) 2002, 2003 The Regents of the University of California. |
| .\" Produced at the Lawrence Livermore National Laboratory. |
| .\" Written by David S. Peterson <dsp@llnl.gov> <dave_peterson@pobox.com>. |
| .\" UCRL-CODE-2003-012 |
| .\" All rights reserved. |
| .\" |
| .\" This file is part of nvramtool, a utility for reading/writing coreboot |
| .\" parameters and displaying information from the coreboot table. |
| .\" For details, see http://coreboot.org/nvramtool. |
| .\" |
| .\" Please also read the file DISCLAIMER which is included in this software |
| .\" distribution. |
| .\" |
| .\" This program is free software; you can redistribute it and/or modify it |
| .\" under the terms of the GNU General Public License (as published by the |
| .\" Free Software Foundation) version 2, dated June 1991. |
| .\" |
| .\" This program is distributed in the hope that it will be useful, but |
| .\" WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF |
| .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and |
| .\" conditions of the GNU General Public License for more details. |
| .\" |
| .\" You should have received a copy of the GNU General Public License along |
| .\" with this program; if not, write to the Free Software Foundation, Inc., |
| .\" 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| .\"***************************************************************************/ |
| .TH NVRAMTOOL 8 "September 2008" |
| .SH NAME |
| nvramtool \- read/write coreboot-related information |
| .SH SYNOPSIS |
| .B "nvramtool [OPTS] [-n] -r NAME" |
| .br |
| .B "nvramtool [OPTS] -e NAME" |
| .br |
| .B "nvramtool [OPTS] -a" |
| .br |
| .B "nvramtool [OPTS] -w NAME=VALUE" |
| .br |
| .B "nvramtool [OPTS] -p INPUT_FILE" |
| .br |
| .B "nvramtool [OPTS] -i" |
| .br |
| .B "nvramtool [OPTS] -c [VALUE]" |
| .br |
| .B "nvramtool [OPTS] -l [ARG]" |
| .br |
| .B "nvramtool [OPTS] -d" |
| .br |
| .B "nvramtool [OPTS] -Y" |
| .br |
| .B "nvramtool [OPTS] -b OUTPUT_FILE" |
| .br |
| .B "nvramtool [OPTS] -B INPUT_FILE" |
| .br |
| .B "nvramtool [OPTS] -x" |
| .br |
| .B "nvramtool [OPTS] -X DUMPFILE" |
| .br |
| .B "nvramtool [OPTS] -v" |
| .br |
| .B "nvramtool [OPTS] -h" |
| .SH DESCRIPTION |
| .B "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 |
| .br |
| http://www.coreboot.org/. |
| .SH PARAMETERS |
| .TP |
| .B "[-n] -r NAME" |
| Show the value of the coreboot parameter given by |
| .B "NAME." |
| If |
| .B "-n" |
| is specified, show only the value. Otherwise show both parameter name and |
| value. |
| .TP |
| .B "-e NAME" |
| Show all possible values for parameter given by |
| .B "NAME." |
| .TP |
| .B "-a" |
| Show the names and values for all coreboot parameters. |
| .TP |
| .B "-w NAME=VALUE" |
| Assign |
| .B "VALUE" |
| to coreboot parameter given by |
| .B "NAME." |
| .TP |
| .B "-p INPUT_FILE" |
| Assign values to coreboot parameters according to the contents of |
| .B "INPUT_FILE." |
| The format of this file is described below. |
| .TP |
| .B "-i" |
| This is similar to the |
| .B "-p" |
| option, except that the contents of the input file are taken from standard |
| input. |
| .TP |
| .B "-c [VALUE]" |
| If |
| .B "VALUE" |
| is present then set the CMOS checksum for the coreboot parameters to |
| .B "VALUE." |
| Otherwise, show the checksum value. |
| .TP |
| .B "-l [ARG]" |
| If |
| .B "ARG" |
| is present then show information from the coreboot table as specified by |
| .B "ARG." |
| Otherwise show all possible values for |
| .B "ARG." |
| .TP |
| .B "-d" |
| Do a low-level dump of the coreboot table. |
| .TP |
| .B "-Y" |
| Write CMOS layout information to standard output. If redirected to a file, |
| the layout information may be used as input for the |
| .B "'-y LAYOUT_FILE'" |
| option (see below). |
| .TP |
| .B "-b OUTPUT_FILE" |
| Write the contents of CMOS memory to the binary file |
| .B "OUTPUT_FILE." |
| The first 14 bytes of |
| .B "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. |
| .TP |
| .B "-B INPUT_FILE" |
| Read binary data from |
| .B "INPUT_FILE" |
| and write the data to CMOS memory. The first 14 bytes of |
| .B "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. |
| .TP |
| .B "-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. |
| .TP |
| .B "-X DUMPFILE" |
| Read binary data from |
| .B "DUMPFILE" |
| (presumably a CMOS dumpfile created using the |
| .B "-b OUTPUT_FILE" |
| option) and show a hex dump of the data. |
| .TP |
| .B "-v" |
| Show version information for this program. |
| .TP |
| .B "-h" |
| Show a help message for this program. |
| .SH "OPTIONS" |
| In all cases above, |
| .B "[OPTS]" |
| evaluates to the following: |
| |
| .B " [-y LAYOUT_FILE | -t]" |
| |
| The |
| .B "'-y LAYOUT_FILE'" |
| option tells nvramtool to obtain CMOS layout information from the contents of |
| .B "LAYOUT_FILE." |
| Likewise, the |
| .B "'-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. |
| .B "LAYOUT_FILE" |
| follows the format of the |
| .B "cmos.layout" |
| files provided by coreboot. |
| |
| If the coreboot installed on your system was built without specifying |
| .B "CONFIG_HAVE_OPTION_TABLE," |
| then the coreboot table will not contain a CMOS option table. In this case, |
| the |
| .B "'-y LAYOUT_FILE'" |
| option must be used. |
| |
| These two options are silently ignored when used in combination with other |
| options (such as |
| .B "-h," |
| for instance) for which they are not applicable. |
| .SH FILE FORMAT |
| For the |
| .B "-p" |
| option, |
| .B "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: |
| |
| .B " [ws]#[text]" |
| |
| Here, |
| .B "[ws]" |
| indicates optional whitespace characters and |
| .B "[text]" |
| indicates optional text. Blank lines and comments are both ignored. An |
| assignment is constructed as follows: |
| |
| .B " [ws]NAME[ws]=[ws]VALUE[ws]" |
| |
| Here, |
| .B "NAME" |
| is the name of a coreboot parameter and |
| .B "VALUE" |
| is the value that will be assigned to |
| .B "NAME." |
| .B "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 |
| .B "VALUE." |
| It is useful to observe that the output produced by both the |
| .B "-a" |
| and the |
| .B "'[-n] NAME'" |
| options (without |
| .B "-n" |
| specified) adheres to this file format. |
| .SH 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. |
| .SH AUTHORS |
| David S. Peterson <dsp@llnl.gov> <dave_peterson@pobox.com> |
| .br |
| Stefan Reinauer <stepan@coresystems.de> |