mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00

Corresponding to flashrom svn r1398. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
708 lines
23 KiB
Groff
708 lines
23 KiB
Groff
.TH FLASHROM 8 "Jul 25, 2011"
|
|
.SH NAME
|
|
flashrom \- detect, read, write, verify and erase flash chips
|
|
.SH SYNOPSIS
|
|
.B flashrom \fR[\fB\-n\fR] [\fB\-V\fR] [\fB\-f\fR] [\fB\-h\fR|\fB\-R\fR|\
|
|
\fB\-L\fR|\fB\-z\fR|\fB\-E\fR|\fB\-r\fR <file>|\fB\-w\fR <file>|\
|
|
\fB\-v\fR <file>]
|
|
[\fB\-c\fR <chipname>] [\fB\-m\fR [<vendor>:]<board>] \
|
|
[\fB\-l\fR <file>]
|
|
[\fB\-i\fR <image>] [\fB\-p\fR <programmername>[:<parameters>]]
|
|
.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. However, it also supports various external
|
|
PCI/USB/parallel-port/serial-port based devices which can program flash chips,
|
|
including some network cards (NICs), SATA/IDE controller cards, graphics cards,
|
|
the Bus Pirate device, various FTDI FT2232/FT4232H based USB devices, and more.
|
|
.PP
|
|
It supports a wide range of DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40,
|
|
TSOP48, and BGA chips, which use various protocols such as LPC, FWH,
|
|
parallel flash, or SPI.
|
|
.SH OPTIONS
|
|
.B IMPORTANT:
|
|
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
|
|
.BR \-h ", " \-R ", " \-L ", " \-z ", " \-E ", " \-r ", " \-w ", " \-v
|
|
or no operation.
|
|
If no operation is specified, flashrom will only probe for flash chips. It is
|
|
recommended that if you try flashrom the first time on a system, you run it
|
|
in probe-only mode and check the output. Also you are advised to make a
|
|
backup of your current ROM contents with
|
|
.B \-r
|
|
before you try to write a new image.
|
|
.TP
|
|
.B "\-r, \-\-read <file>"
|
|
Read flash ROM contents and save them into the given
|
|
.BR <file> .
|
|
If the file already exists, it will be overwritten.
|
|
.TP
|
|
.B "\-w, \-\-write <file>"
|
|
Write
|
|
.B <file>
|
|
into flash ROM. This will first automatically
|
|
.B erase
|
|
the chip, then write to it.
|
|
.sp
|
|
In the process the chip is also read several times. First an in-memory backup
|
|
is made for disaster recovery and to be able to skip regions that are
|
|
already equal to the image file. This copy is updated along with the write
|
|
operation. In case of erase errors it is even re-read completely. After
|
|
writing has finished and if verification is enabled, the whole flash chip is
|
|
read out and compared with the input image.
|
|
.TP
|
|
.B "\-n, \-\-noverify"
|
|
Skip the automatic verification of flash ROM contents after writing. Using this
|
|
option is
|
|
.B not
|
|
recommended, you should only use it if you know what you are doing and if you
|
|
feel that the time for verification takes too long.
|
|
.sp
|
|
Typical usage is:
|
|
.B "flashrom \-n \-w <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. This option can be supplied multiple times
|
|
(max. 2 times, i.e.
|
|
.BR \-VV )
|
|
for even more debug output.
|
|
.TP
|
|
.B "\-c, \-\-chip" <chipname>
|
|
Probe only for the specified flash ROM chip. This option takes the chip name as
|
|
printed by
|
|
.B "flashrom \-L"
|
|
without the vendor name as parameter. Please note that the chip name is
|
|
case sensitive.
|
|
.TP
|
|
.B "\-m, \-\-mainboard" [<vendor>:]<board>
|
|
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 \-\-mainboard AGAMI:ARUMA \-w agami_aruma.rom"
|
|
.sp
|
|
See the 'Known boards' or 'Known laptops' 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 one or more of the following actions:
|
|
.sp
|
|
* Force chip read and pretend the chip is there.
|
|
.sp
|
|
* Force chip access even if the chip is bigger than the maximum supported \
|
|
size for the flash bus.
|
|
.sp
|
|
* Force erase even if erase is known bad.
|
|
.sp
|
|
* Force write even if write is known bad.
|
|
.TP
|
|
.B "\-l, \-\-layout <file>"
|
|
Read ROM layout from
|
|
.BR <file> .
|
|
.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 \-\-layout rom.layout \-\-image normal \-w agami_aruma.rom"
|
|
.sp
|
|
To update normal and fallback but leave the VGA BIOS alone, say:
|
|
.sp
|
|
.B " flashrom \-l rom.layout \-i normal \"
|
|
.br
|
|
.B " \-i fallback \-w agami_aruma.rom"
|
|
.sp
|
|
Currently overlapping sections are not supported.
|
|
.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 external programmers
|
|
(including PCI, USB, parallel port, and serial port based devices)
|
|
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.
|
|
.sp
|
|
.B IMPORTANT:
|
|
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
|
|
.BR http://www.flashrom.org/ .
|
|
Please note that MediaWiki output is not compiled in by default.
|
|
.TP
|
|
.B "\-p, \-\-programmer <name>[:parameter[,parameter[,parameter]]]"
|
|
Specify the programmer device. Currently supported are:
|
|
.sp
|
|
.BR "* internal" " (default, for in-system flashing in the mainboard)"
|
|
.sp
|
|
.BR "* dummy" " (virtual programmer for testing flashrom)"
|
|
.sp
|
|
.BR "* nic3com" " (for flash ROMs on 3COM network cards)"
|
|
.sp
|
|
.BR "* nicrealtek" " (for flash ROMs on Realtek network cards)"
|
|
.sp
|
|
.BR "* nicsmc1211" " (for flash ROMs on RTL8139-compatible SMC2 network cards)"
|
|
.sp
|
|
.BR "* nicnatsemi" " (for flash ROMs on National Semiconductor DP838* network \
|
|
cards)"
|
|
.sp
|
|
.BR "* nicintel" " (for parallel flash ROMs on Intel 10/100Mbit 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 "* satamv" " (for flash ROMs on Marvell SATA controllers)"
|
|
.sp
|
|
.BR "* atahpt" " (for flash ROMs on Highpoint ATA/RAID controllers)"
|
|
.sp
|
|
.BR "* ft2232_spi" " (for SPI flash ROMs attached to an FT2232/FT4232H family \
|
|
based USB SPI programmer), including the DLP Design DLP-USB1232H, \
|
|
FTDI FT2232H Mini-Module, FTDI FT4232H Mini-Module, openbiosprog-spi, Amontec \
|
|
JTAGkey/JTAGkey-tiny/JTAGkey-2, Olimex ARM-USB-TINY/-H, and Olimex \
|
|
ARM-USB-OCD/-H."
|
|
.sp
|
|
.BR "* serprog" " (for flash ROMs attached to a programmer speaking serprog), \
|
|
including AVR flasher by Urja Rannikko, AVR flasher by eightdot, \
|
|
Arduino Mega flasher by fritz, InSystemFlasher by Juhana Helovuo, and \
|
|
atmegaXXu2-flasher by Stefan Tauner."
|
|
.sp
|
|
.BR "* buspirate_spi" " (for SPI flash ROMs attached to a Bus Pirate)"
|
|
.sp
|
|
.BR "* dediprog" " (for SPI flash ROMs attached to a Dediprog SF100)"
|
|
.sp
|
|
.BR "* rayer_spi" " (for SPI flash ROMs attached to a RayeR parport \
|
|
based programmer)"
|
|
.sp
|
|
.BR "* nicintel_spi" " (for SPI flash ROMs on Intel Gigabit network cards)"
|
|
.sp
|
|
.BR "* ogp_spi" " (for SPI flash ROMs on Open Graphics Project graphics card)"
|
|
.sp
|
|
Some programmers have optional or mandatory parameters which are described
|
|
in detail in the
|
|
.B PROGRAMMER SPECIFIC INFO
|
|
section. 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 PROGRAMMER SPECIFIC INFO
|
|
Some programmer drivers accept further parameters to set programmer-specific
|
|
parameters. These parameters are separated from the programmer name by a
|
|
colon. While some programmers take arguments at fixed positions, other
|
|
programmers use a key/value interface in which the key and value is separated
|
|
by an equal sign and different pairs are separated by a comma or a colon.
|
|
.TP
|
|
.BR "internal " programmer
|
|
Some mainboards require to run mainboard specific code to enable flash erase
|
|
and write support (and probe support on old systems with parallel flash).
|
|
The mainboard brand and model (if it requires specific code) is usually
|
|
autodetected using one of the following mechanisms: If your system is
|
|
running coreboot, the mainboard type is determined from the coreboot table.
|
|
Otherwise, the mainboard is detected by examining the onboard PCI devices
|
|
and possibly DMI info. If PCI and DMI do not contain information to uniquely
|
|
identify the mainboard (which is the exception), it might be necessary to
|
|
specify the mainboard using the
|
|
.B \-m
|
|
switch (see above).
|
|
.sp
|
|
Some of these board-specific flash enabling functions (called
|
|
.BR "board enables" )
|
|
in flashrom have not yet been tested. If your mainboard is detected needing
|
|
an untested board enable function, a warning message is printed and the
|
|
board enable is not executed, because a wrong board enable function might
|
|
cause the system to behave erratically, as board enable functions touch the
|
|
low-level internals of a mainboard. Not executing a board enable function
|
|
(if one is needed) might cause detection or erasing failure. If your board
|
|
protects only part of the flash (commonly the top end, called boot block),
|
|
flashrom might encounter an error only after erasing the unprotected part,
|
|
so running without the board-enable function might be dangerous for erase
|
|
and write (which includes erase).
|
|
.sp
|
|
The suggested procedure for a mainboard with untested board specific code is
|
|
to first try to probe the ROM (just invoke flashrom and check that it
|
|
detects your flash chip type) without running the board enable code (i.e.
|
|
without any parameters). If it finds your chip, fine. Otherwise, retry
|
|
probing your chip with the board-enable code running, using
|
|
.sp
|
|
.B " flashrom \-p internal:boardenable=force"
|
|
.sp
|
|
If your chip is still not detected, the board enable code seems to be broken
|
|
or the flash chip unsupported. Otherwise, make a backup of your current ROM
|
|
contents (using
|
|
.BR \-r )
|
|
and store it to a medium outside of your computer, like
|
|
a USB drive or a network share. If you needed to run the board enable code
|
|
already for probing, use it for reading too. Now you can try to write the
|
|
new image. You should enable the board enable code in any case now, as it
|
|
has been written because it is known that writing/erasing without the board
|
|
enable is going to fail. In any case (success or failure), please report to
|
|
the flashrom mailing list, see below.
|
|
.sp
|
|
On systems running coreboot, flashrom checks whether the desired image matches
|
|
your mainboard. This needs some special board ID to be present in the image.
|
|
If flashrom detects that the image you want to write and the current board
|
|
do not match, it will refuse to write the image unless you specify
|
|
.sp
|
|
.B " flashrom \-p internal:boardmismatch=force"
|
|
.sp
|
|
If your mainboard uses an ITE IT87 series Super I/O for LPC<->SPI flash bus
|
|
translation, flashrom should autodetect that configuration. If you want to
|
|
set the I/O base port of the IT87 series SPI controller manually instead of
|
|
using the value provided by the BIOS, use the
|
|
.sp
|
|
.B " flashrom \-p internal:it87spiport=portnum"
|
|
.sp
|
|
syntax where
|
|
.B portnum
|
|
is the I/O port number (must be a multiple of 8). In the unlikely case
|
|
flashrom doesn't detect an active IT87 LPC<->SPI bridge, please send a bug
|
|
report so we can diagnose the problem.
|
|
.sp
|
|
If you have an Intel chipset with an ICH6 or later southbridge and if you want
|
|
to set specific IDSEL values for a non-default flash chip or an embedded
|
|
controller (EC), you can use the
|
|
.sp
|
|
.B " flashrom \-p internal:fwh_idsel=value"
|
|
.sp
|
|
syntax where value is the 48-bit hexadecimal raw value to be written in the
|
|
IDSEL registers of the Intel southbridge. The upper 32 bits use one hex digit
|
|
each per 512 kB range between 0xffc00000 and 0xffffffff, and the lower 16 bits
|
|
use one hex digit each per 1024 kB range between 0xff400000 and 0xff7fffff.
|
|
The rightmost hex digit corresponds with the lowest address range. All address
|
|
ranges have a corresponding sister range 4 MB below with identical IDSEL
|
|
settings. The default value for ICH7 is given in the example below.
|
|
.sp
|
|
Example:
|
|
.B "flashrom \-p internal:fwh_idsel=0x001122334567"
|
|
.sp
|
|
Using flashrom on laptops is dangerous and may easily make your hardware
|
|
unusable (see also the
|
|
.B BUGS
|
|
section). The embedded controller (EC) in these
|
|
machines often interacts badly with flashing.
|
|
.B http://www.flashrom.org/Laptops
|
|
has more information. If flash is shared with the EC, erase is guaranteed to
|
|
brick your laptop and write is very likely to brick your laptop.
|
|
Chip read and probe may irritate your EC and cause fan failure, backlight
|
|
failure, sudden poweroff, and other nasty effects.
|
|
flashrom will attempt to detect laptops and abort immediately for safety
|
|
reasons.
|
|
If you want to proceed anyway at your own risk, use
|
|
.sp
|
|
.B " flashrom \-p internal:laptop=force_I_want_a_brick"
|
|
.sp
|
|
You have been warned.
|
|
.sp
|
|
We will not help you if you force flashing on a laptop because this is a really
|
|
dumb idea.
|
|
.TP
|
|
.BR "dummy " programmer
|
|
The dummy programmer operates on a buffer in memory only. It provides a safe
|
|
and fast way to test various aspects of flashrom and is mainly used in
|
|
development and while debugging.
|
|
.sp
|
|
It is able to emulate some chips to a certain degree (basic
|
|
identify/read/erase/write operations work).
|
|
.sp
|
|
An optional parameter specifies the bus types it
|
|
should support. For that you have to use the
|
|
.sp
|
|
.B " flashrom \-p dummy:bus=[type[+type[+type]]]"
|
|
.sp
|
|
syntax where
|
|
.B type
|
|
can be
|
|
.BR parallel ", " lpc ", " fwh ", " spi
|
|
in any order. If you specify bus without type, all buses will be disabled.
|
|
If you do not specify bus, all buses will be enabled.
|
|
.sp
|
|
Example:
|
|
.B "flashrom \-p dummy:bus=lpc+fwh"
|
|
.sp
|
|
The dummy programmer supports flash chip emulation for automated self-tests
|
|
without hardware access. If you want to emulate a flash chip, use the
|
|
.sp
|
|
.B " flashrom \-p dummy:emulate=chip"
|
|
.sp
|
|
syntax where
|
|
.B chip
|
|
is one of the following chips (please specify only the chip name, not the
|
|
vendor):
|
|
.sp
|
|
.RB "* ST " M25P10.RES " SPI flash chip (RES, page write)"
|
|
.sp
|
|
.RB "* SST " SST25VF040.REMS " SPI flash chip (REMS, byte write)"
|
|
.sp
|
|
.RB "* SST " SST25VF032B " SPI flash chip (RDID, AAI write)"
|
|
.sp
|
|
Example:
|
|
.B "flashrom -p dummy:emulate=SST25VF040.REMS"
|
|
.sp
|
|
If you use flash chip emulation, flash image persistence is available as well
|
|
by using the
|
|
.sp
|
|
.B " flashrom \-p dummy:emulate=chip,image=image.rom"
|
|
.sp
|
|
syntax where
|
|
.B image.rom
|
|
is the file where the simulated chip contents are read on flashrom startup and
|
|
where the chip contents on flashrom shutdown are written to.
|
|
.sp
|
|
Example:
|
|
.B "flashrom -p dummy:emulate=M25P10.RES,image=dummy.bin"
|
|
.sp
|
|
If you use SPI flash chip emulation for a chip which supports SPI page write
|
|
with the default opcode, you can set the maximum allowed write chunk size with
|
|
the
|
|
.sp
|
|
.B " flashrom \-p dummy:emulate=chip,spi_write_256_chunksize=size"
|
|
.sp
|
|
syntax where
|
|
.B size
|
|
is the number of bytes (min. 1, max. 256).
|
|
.sp
|
|
Example:
|
|
.sp
|
|
.B " flashrom -p dummy:emulate=M25P10.RES,spi_write_256_chunksize=5"
|
|
.TP
|
|
.BR "nic3com" , " nicrealtek" , " nicsmc1211" , " nicnatsemi" , " nicintel\
|
|
" , " nicintel_spi" , " gfxnvidia" , " ogp_spi" , " drkaiser" , " satasii\
|
|
" , " satamv" ", and " atahpt " programmers
|
|
These programmers have an option to specify the PCI address of the card
|
|
your want to use, which must be specified if more than one card supported
|
|
by the selected programmer is installed in your system. The syntax is
|
|
.sp
|
|
.BR " flashrom \-p xxxx:pci=bb:dd.f" ,
|
|
.sp
|
|
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 device.
|
|
.sp
|
|
Example:
|
|
.B "flashrom \-p nic3com:pci=05:04.0"
|
|
.TP
|
|
.BR "ft2232_spi " programmer
|
|
An optional parameter specifies the controller
|
|
type and interface/port it should support. For that you have to use the
|
|
.sp
|
|
.B " flashrom \-p ft2232_spi:type=model,port=interface"
|
|
.sp
|
|
syntax where
|
|
.B model
|
|
can be
|
|
.BR 2232H ", " 4232H ", " jtagkey ", " openmoko ", " arm-usb-tiny ", " \
|
|
arm-usb-tiny-h ", " arm-usb-ocd " or " arm-usb-ocd-h
|
|
and
|
|
.B interface
|
|
can be
|
|
.BR A ", or " B .
|
|
The default model is
|
|
.B 4232H
|
|
and the default interface is
|
|
.BR B .
|
|
.TP
|
|
.BR "serprog " programmer
|
|
A mandatory parameter specifies either a serial
|
|
device/baud combination or an IP/port combination for communication with the
|
|
programmer. In the device/baud combination, the device has to start with a
|
|
slash. For serial, you have to use the
|
|
.sp
|
|
.B " flashrom \-p serprog:dev=/dev/device:baud"
|
|
.sp
|
|
syntax and for IP, you have to use
|
|
.sp
|
|
.B " flashrom \-p serprog:ip=ipaddr:port"
|
|
.sp
|
|
instead. More information about serprog is available in
|
|
.B serprog-protocol.txt
|
|
in the source distribution.
|
|
.TP
|
|
.BR "buspirate_spi " programmer
|
|
A required
|
|
.B dev
|
|
parameter specifies the Bus Pirate device node and an optional
|
|
.B spispeed
|
|
parameter specifies the frequency of the SPI bus. The parameter
|
|
delimiter is a comma. Syntax is
|
|
.sp
|
|
.B " flashrom \-p buspirate_spi:dev=/dev/device,spispeed=frequency"
|
|
.sp
|
|
where
|
|
.B frequency
|
|
can be
|
|
.BR 30k ", " 125k ", " 250k ", " 1M ", " 2M ", " 2.6M ", " 4M " or " 8M
|
|
(in Hz). The default is the maximum frequency of 8 MHz.
|
|
.TP
|
|
.BR "dediprog " programmer
|
|
An optional
|
|
.B voltage
|
|
parameter specifies the voltage the Dediprog should use. The default unit is
|
|
Volt if no unit is specified. You can use
|
|
.BR mV ", " milliVolt ", " V " or " Volt
|
|
as unit specifier. Syntax is
|
|
.sp
|
|
.B " flashrom \-p dediprog:voltage=value"
|
|
.sp
|
|
where
|
|
.B value
|
|
can be
|
|
.BR 0V ", " 1.8V ", " 2.5V ", " 3.5V
|
|
or the equivalent in mV.
|
|
.TP
|
|
.BR "rayer_spi " programmer
|
|
The default I/O base address used for the parallel port is 0x378 and you can use
|
|
the optional
|
|
.B iobase
|
|
parameter to specify an alternate base I/O address with the
|
|
.sp
|
|
.B " flashrom \-p rayer_spi:iobase=baseaddr"
|
|
.sp
|
|
syntax where
|
|
.B baseaddr
|
|
is base I/O port address of the parallel port, which must be a multiple of
|
|
four. Make sure to not forget the "0x" prefix for hexadecimal port addresses.
|
|
.sp
|
|
More information about the hardware is available at
|
|
.BR http://rayer.ic.cz/elektro/spipgm.htm .
|
|
.TP
|
|
.BR "ogp_spi " programmer
|
|
The flash ROM chip to access must be specified with the
|
|
.B rom
|
|
parameter.
|
|
.sp
|
|
.B " flashrom \-p ogp_spi:rom=name"
|
|
.sp
|
|
Where
|
|
.B name
|
|
is either
|
|
.B cprom
|
|
or
|
|
.B s3
|
|
for the configuration ROM and
|
|
.B bprom
|
|
or
|
|
.B bios
|
|
for the BIOS ROM. If more than one card supported by the ogp_spi programmer
|
|
is installed in your system, you have to specify the PCI address of the card
|
|
you want to use with the
|
|
.B pci=
|
|
parameter as explained in the
|
|
.B nic3com
|
|
section above.
|
|
.sp
|
|
More information about the hardware is available at
|
|
.BR http://wiki.opengraphics.org .
|
|
.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 REQUIREMENTS
|
|
flashrom needs different access permissions for different programmers.
|
|
.sp
|
|
.B internal
|
|
needs raw memory access, PCI configuration space access, raw I/O port
|
|
access (x86) and MSR access (x86).
|
|
.sp
|
|
.BR nic3com ", " nicrealtek ", " nicsmc1211 " and " nicnatsemi "
|
|
need PCI configuration space read access and raw I/O port access.
|
|
.sp
|
|
.B atahpt
|
|
needs PCI configuration space access and raw I/O port access.
|
|
.sp
|
|
.BR gfxnvidia " and " drkaiser
|
|
need PCI configuration space access and raw memory access.
|
|
.sp
|
|
.B rayer_spi
|
|
needs raw I/O port access.
|
|
.sp
|
|
.B satasii
|
|
needs PCI configuration space read access and raw memory access.
|
|
.sp
|
|
.B satamv
|
|
needs PCI configuration space read access, raw I/O port access and raw memory
|
|
access.
|
|
.sp
|
|
.B serprog
|
|
needs TCP access to the network or userspace access to a serial port.
|
|
.sp
|
|
.B buspirate_spi
|
|
needs userspace access to a serial port.
|
|
.sp
|
|
.BR dediprog " and " ft2232_spi
|
|
need access to the USB device via libusb.
|
|
.sp
|
|
.B dummy
|
|
needs no access permissions at all.
|
|
.sp
|
|
.BR internal ", " nic3com ", " nicrealtek ", " nicsmc1211 ", " nicnatsemi ", "
|
|
.BR gfxnvidia ", " drkaiser ", " satasii ", " satamv " and " atahpt
|
|
have to be run as superuser/root, and need additional raw access permission.
|
|
.sp
|
|
.BR serprog ", " buspirate_spi ", " dediprog " and " ft2232_spi
|
|
can be run as normal user on most operating systems if appropriate device
|
|
permissions are set.
|
|
.sp
|
|
.B ogp
|
|
needs PCI configuration space read access and raw memory access.
|
|
.sp
|
|
On OpenBSD, you can obtain raw access permission by setting
|
|
.B "securelevel=-1"
|
|
in
|
|
.B "/etc/rc.securelevel"
|
|
and rebooting, or rebooting into single user mode.
|
|
.SH BUGS
|
|
Please report any bugs at
|
|
.sp
|
|
.B " http://www.flashrom.org/trac/flashrom/newticket"
|
|
.sp
|
|
or on the flashrom mailing list at
|
|
.B "<flashrom@flashrom.org>"
|
|
.sp
|
|
We recommend to subscribe first at
|
|
.sp
|
|
.B " http://www.flashrom.org/mailman/listinfo/flashrom"
|
|
.sp
|
|
Using flashrom on laptops is dangerous and may easily make your hardware
|
|
unusable unless you can desolder the flash chip and have a full flash chip
|
|
backup. This is caused by the embedded controller (EC) present in many laptops,
|
|
which interacts badly with any flash attempts. This is a hardware limitation
|
|
and flashrom will attempt to detect it and abort immediately for safety reasons.
|
|
.sp
|
|
More information about flashrom on laptops is available from
|
|
.sp
|
|
.B " http://www.flashrom.org/Laptops"
|
|
.SH LICENSE
|
|
.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
|
|
Andrew Morgan
|
|
.br
|
|
Carl-Daniel Hailfinger
|
|
.br
|
|
Claus Gindhart
|
|
.br
|
|
David Borg
|
|
.br
|
|
David Hendricks
|
|
.br
|
|
Dominik Geyer
|
|
.br
|
|
Eric Biederman
|
|
.br
|
|
Giampiero Giancipoli
|
|
.br
|
|
Helge Wagner
|
|
.br
|
|
Idwer Vollering
|
|
.br
|
|
Joe Bao
|
|
.br
|
|
Joerg Fischer
|
|
.br
|
|
Joshua Roys
|
|
.br
|
|
Luc Verhaegen
|
|
.br
|
|
Li-Ta Lo
|
|
.br
|
|
Mark Marshall
|
|
.br
|
|
Markus Boas
|
|
.br
|
|
Mattias Mattsson
|
|
.br
|
|
Michael Karcher
|
|
.br
|
|
Nikolay Petukhov
|
|
.br
|
|
Patrick Georgi
|
|
.br
|
|
Peter Lemenkov
|
|
.br
|
|
Peter Stuge
|
|
.br
|
|
Reinder E.N. de Haan
|
|
.br
|
|
Ronald G. Minnich
|
|
.br
|
|
Ronald Hoogenboom
|
|
.br
|
|
Sean Nelson
|
|
.br
|
|
Stefan Reinauer
|
|
.br
|
|
Stefan Tauner
|
|
.br
|
|
Stefan Wildemann
|
|
.br
|
|
Stephan Guilloux
|
|
.br
|
|
Steven James
|
|
.br
|
|
Uwe Hermann
|
|
.br
|
|
Wang Qingpei
|
|
.br
|
|
Yinghai Lu
|
|
.br
|
|
some others, please see the flashrom svn changelog for details.
|
|
.br
|
|
All authors can be reached via email at <flashrom@flashrom.org>.
|
|
.PP
|
|
This manual page was written by Uwe Hermann <uwe@hermann-uwe.de>,
|
|
Carl-Daniel Hailfinger and others.
|
|
It is licensed under the terms of the GNU GPL (version 2 or later).
|