.TH FLASHROM 8 "May 21, 2009"
.SH NAME
flashrom \- detect, read, write, verify and erase flash chips
.SH SYNOPSIS
.B flashrom \fR[\fB\-VfLzhRn\fR] [\fB\-E\fR|\fB\-r\fR file|\fB\-w\fR file|\fB\-v\fR file] [\fB\-c\fR chipname]
         [\fB\-m\fR [vendor:]part] [\fB\-l\fR file] [\fB\-i\fR image] [\fB\-p\fR programmer]
.SH DESCRIPTION
.B flashrom
is a utility for detecting, reading, writing, verifying and erasing flash
chips. It's often used to flash BIOS/EFI/coreboot/firmware images in-system
using a supported mainboard, but it also supports flashing of network cards
(NICs), SATA controller cards, and other external devices which can program
flash chips.
.PP
It supports a wide range of DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, and
TSOP40 chips, which use various protocols such as LPC, FWH, parallel flash,
or SPI.
.SH OPTIONS
Please note that the command line interface for flashrom will change before
flashrom 1.0. Do not use flashrom in scripts or other automated tools without
checking that your flashrom version won't interpret options in a different way.
.PP
You can specify one of \-E, \-r, \-w, \-v or no operation.
If no operation is specified, then all that happens
is that flash info is dumped and the flash chip is set to writable.
.TP
.B "\-r, \-\-read <file>"
Read flash ROM contents and save them into the given
.BR <file> .
.TP
.B "\-w, \-\-write <file>"
Write file into flash ROM.
.TP
.B "\-n, \-\-noverify"
Do
.B not
verify the flash ROM contents after writing them to the chip. Using this
option is
.B not
recommended, you should only use it if you know what you are doing and you
feel that the time for verification takes too long.
.sp
Typical usage is:
.B "flashrom -wn file"
.sp
This option is only useful in combination with
.BR \-\-write .
.TP
.B "\-v, \-\-verify <file>"
Verify the flash ROM contents against the given
.BR <file> .
.TP
.B "\-E, \-\-erase"
Erase the flash ROM chip.
.TP
.B "\-V, \-\-verbose"
More verbose output.
.TP
.B "\-c, \-\-chip" <chipname>
Probe only for specified flash ROM chip.
.sp
flashrom supports ROM layouts. This allows you to flash certain parts of
the flash chip only. A ROM layout file looks like follows:
.sp
  00000000:00008fff gfxrom
  00009000:0003ffff normal
  00040000:0007ffff fallback
.sp
  i.e.:
  startaddr:endaddr name
.sp
All addresses are offsets within the file, not absolute addresses!
If you only want to update the normal image in a ROM you can say:
.sp
.B "  flashrom -w --layout rom.layout --image normal agami_aruma.rom"
.sp
To update normal and fallback but leave the VGA BIOS alone, say:
.sp
.B "  flashrom -w -l rom.layout -i normal \"
.br
.B "           -i fallback agami_aruma.rom"
.sp
Currently overlapping sections are not supported.
.sp
ROM layouts should replace the \-s and \-e option since they are more
flexible and they should lead to a ROM update file format with the
ROM layout and the ROM image in one file (cpio, zip or something?).
.TP
.B "\-m, \-\-mainboard" <[vendor:]part>
Override mainboard settings.
.sp
flashrom reads the coreboot table to determine the current mainboard. If no
coreboot table could be read or if you want to override these values, you can
specify \-m, e.g.:
.sp
.B "  flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom"
.sp
See the 'Supported mainboards' section in the output of 'flashrom \-L' for
a list of boards which require the specification of the board name, if no
coreboot table is found.
.TP
.B "\-f, \-\-force"
Force write without checking whether the ROM image file is really meant
to be used on this board.
.sp
Note: This check only works while coreboot is running, and only for those
boards where the coreboot code supports it.
.TP
.B "\-l, \-\-layout <file>"
Read ROM layout from
.BR <file> .
.TP
.B "\-i, \-\-image <name>"
Only flash image
.B <name>
from flash layout.
.TP
.B "\-L, \-\-list\-supported"
List the flash chips, chipsets, mainboards, and PCI card "programmers"
supported by flashrom.
.sp
There are many unlisted boards which will work out of the box, without
special support in flashrom. Please let us know if you can verify that
other boards work or do not work out of the box. For verification you have
to test an ERASE and/or WRITE operation, so make sure you only do that
if you have proper means to recover from failure!
.TP
.B "\-z, \-\-list\-supported-wiki"
Same as
.BR \-\-list\-supported ,
but outputs the supported hardware in MediaWiki syntax, so that it can be
easily pasted into the wiki page at http://www.flashrom.org/.
.TP
.B "\-p, \-\-programmer <name>"
Specify the programmer device. Currently supported are:
.sp
.BR "* internal" " (default, for in-system flashing in the mainboard)"
.sp
.BR "* dummy" " (just prints all operations and accesses)"
.sp
.BR "* nic3com" " (for flash ROMs on 3COM network cards)"
.sp
.BR "* gfxnvidia" " (for flash ROMs on NVIDIA graphics cards)"
.sp
.BR "* drkaiser" " (for flash ROMs on Dr. Kaiser PC-Waechter PCI cards)"
.sp
.BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controllers)"
.sp
.BR "* atahpt" " (for flash ROMs on Highpoint ATA/RAID controllers)"
.sp
.BR "* it87spi" " (for flash ROMs behind an ITE IT87xx Super I/O LPC/SPI translation unit)"
.sp
.BR "* ft2232spi" " (for flash ROMs attached to a FT2232H/FT4232H based USB SPI programmer)"
.sp
.BR "* serprog" " (for flash ROMs attached to Urja's AVR programmer)"
.sp
.BR "* buspiratespi" " (for flash ROMs attached to a Bus Pirate)"
.sp
The dummy programmer has an optional parameter specifying the bus types it
should support. For that you have to use the
.B "flashrom -p dummy:type"
syntax where
.B type
can be any comma-separated combination of
.B parallel lpc fwh spi all
in any order.
.sp
Example:
.B "flashrom -p dummy:lpc,fwh"
.sp
If you have multiple supported PCI cards which can program flash chips
(NICs, SATA/IDE controllers, etc.) in your system, you must use the
.B "flashrom -p xxxx:bb:dd.f"
syntax to explicitly select one of them, where
.B xxxx
is the name of the programmer
.B bb
is the PCI bus number,
.B dd
is the PCI device number, and
.B f
is the PCI function number of the desired NIC.
.sp
Example:
.B "flashrom -p nic3com:05:04.0"
.sp
Currently the following programmers support this mechanism:
.BR nic3com ,
.BR gfxnvidia ,
.BR satasii ,
.BR atahpt .
.sp
The it87spi programmer has an optional parameter which will set the I/O base
port of the IT87* SPI controller interface to the port specified in the
parameter. For that you have to use the
.B "flashrom -p it87spi:port=portnum"
syntax where
.B portnum
is an I/O port number which must be a multiple of 8.
.sp
The ft2232spi programmer has an optional parameter specifying the controller
type and interface/port it should support. For that you have to use the
.B "flashrom -p ft2232spi:model,port=interface"
syntax where
.B model
can be any of
.B 2232H 4232H
and
.B interface
can be any of
.B A
.BR B .
The default model is
.B 4232H
and the default interface is
.BR B .
.sp
The serprog programmer has an optional parameter specifying either a serial
device/baud combination or an IP/port combination for communication with the
programmer. For serial, you have to use the
.B "flashrom -p serprog:/dev/device:baud"
syntax and for IP, you have to use
.B "flashrom -p serprog:ip:port"
instead. More information about serprog is available in serprog-protocol.txt in
the source distribution.
.sp
The buspiratespi programmer has a required dev parameter specifying the Bus
Pirate device node and an optional spispeed parameter specifying the frequency
of the SPI bus. The parameter delimiter is a comma. Syntax is
.B "flashrom -p buspiratespi:dev=/dev/device,spispeed=frequency"
where
.B frequency
can be any of
.B 30k 125k 250k 1M 2M 2.6M 4M 8M
(in Hz).
.sp
Support for some programmers can be disabled at compile time.
.B "flashrom -h"
lists all supported programmers.
.TP
.B "\-h, \-\-help"
Show a help text and exit.
.TP
.B "\-R, \-\-version"
Show version information and exit.
.SH EXIT STATUS
flashrom exits with 0 on success, 1 on most failures but with 2 if /dev/mem
(/dev/xsvc on Solaris) can not be opened and with 3 if a call to mmap() fails.
.SH BUGS
Please report any bugs at
.BR http://www.flashrom.org/trac/flashrom/newticket ","
or on the flashrom mailing list
.RB "(" http://www.flashrom.org/mailman/listinfo/flashrom ")."
.SH LICENCE
.B flashrom
is covered by the GNU General Public License (GPL), version 2. Some files are
additionally available under the GPL (version 2, or any later version).
.SH COPYRIGHT
.br
Please see the individual files.
.SH AUTHORS
Carl-Daniel Hailfinger
.br
Claus Gindhart <claus.gindhart@kontron.com>
.br
Dominik Geyer <dominik.geyer@kontron.com>
.br
Eric Biederman
.br
Giampiero Giancipoli <gianci@email.it>
.br
Joe Bao <Zheng.Bao@amd.com>
.br
Luc Verhaegen <libv@skynet.be>
.br
Li-Ta Lo
.br
Markus Boas <ryven@ryven.de>
.br
Nikolay Petukhov <nikolay.petukhov@gmail.com>
.br
Peter Stuge <peter@stuge.se>
.br
Reinder E.N. de Haan <lb_reha@mveas.com>
.br
Ronald G. Minnich <rminnich@gmail.com>
.br
Ronald Hoogenboom <ronald@zonnet.nl>
.br
Stefan Reinauer <stepan@coresystems.de>
.br
Stefan Wildemann <stefan.wildemann@kontron.com>
.br
Steven James <pyro@linuxlabs.com>
.br
Uwe Hermann <uwe@hermann-uwe.de>
.br
Wang Qingpei
.br
Yinghai Lu
.br
some others 
.PP
This manual page was written by Uwe Hermann <uwe@hermann-uwe.de>.
It is licensed under the terms of the GNU GPL (version 2 or later).
