-------------------------------------------------------------------------------
-Flashrom README
+flashrom README
-------------------------------------------------------------------------------
-This is the universal (LinuxBIOS) flash utility.
+flashrom is a utility for reading, writing, and erasing flash ROM chips.
+It's often used to flash BIOS/coreboot/firmware images.
+
+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.
+
+(see http://coreboot.org for details on coreboot)
+
Build Requirements
------------------
-To build the flashrom utility you need to have the following packages
-installed on your Linux system:
+To build the flashrom utility you need to install the following packages:
* pciutils
-* pciutils-devel / pciutils-dev
+* pciutils-devel / pciutils-dev / libpci-dev
* zlib-devel / zlib1g-dev
Usage
-----
-usage: ./flashrom [-rwvEVfh] [-c chipname] [-s exclude_start]
- [-e exclude_end] [-m vendor:part] [-l file.layout] [-i imagename] [file]
- -r | --read: read flash and save into file
- -w | --write: write file into flash (default when
- file is specified)
- -v | --verify: verify flash against file
- -E | --erase: erase flash device
- -V | --verbose: more verbose output
- -c | --chip <chipname>: probe only for specified flash chip
- -s | --estart <addr>: exclude start position
- -e | --eend <addr>: exclude end postion
- -m | --mainboard <vendor:part>: override mainboard settings
- -f | --force: force write without checking image
- -l | --layout <file.layout>: read rom layout from file
- -i | --image <name>: only flash image name from flash layout
+ $ flashrom [-rwvEVfLhR] [-c chipname] [-s exclude_start] [-e exclude_end]
+ [-m [vendor:]part] [-l file.layout] [-i imagename] [file]
+ -r | --read: read flash and save into file
+ -w | --write: write file into flash (default when
+ file is specified)
+ -v | --verify: verify flash against file
+ -E | --erase: erase flash device
+ -V | --verbose: more verbose output
+ -c | --chip <chipname>: probe only for specified flash chip
+ -s | --estart <addr>: exclude start position
+ -e | --eend <addr>: exclude end postion
+ -m | --mainboard <[vendor:]part>: override mainboard settings
+ -f | --force: force write without checking image
+ -l | --layout <file.layout>: read rom layout from file
+ -i | --image <name>: only flash image name from flash layout
+ -L | --list-supported: print supported devices
+ -h | --help: print this help text
+ -R | --version: print the version (release)
If no file is specified, then all that happens
is that flash info is dumped and the flash chip is set to writable.
-LinuxBIOS Table and Mainboard Identification
+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.
+
+
+coreboot Table and Mainboard Identification
--------------------------------------------
-Flashrom reads the LinuxBIOS table to determine the current mainboard.
-(Parse DMI as well in future?) If no LinuxBIOS table could be read
-or if you want to override these values, you can specify -m, e.g.:
+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.:
+
+ $ flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom
- flashrom -w --mainboard ISLAND:ARUMA island_aruma.rom
+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.
ROM Layout Support
------------------
-Flashrom supports ROM layouts. This allows to flash certain parts of
+flashrom supports ROM layouts. This allows you to flash certain parts of
the flash chip only. A ROM layout file looks like follows:
00000000:00008fff gfxrom
i.e.:
startaddr:endaddr name
- all addresses are offsets within the file, not absolute addresses!
+ 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:
- flashrom -w --layout rom.layout --image normal island_aruma.rom
+ flashrom -w --layout rom.layout --image normal agami_aruma.rom
To update normal and fallback but leave the VGA BIOS alone, say:
- flashrom -w -l rom.layout -i normal -i fallback island_aruma.rom
+ flashrom -w -l rom.layout -i normal -i fallback agami_aruma.rom
Currently overlapping sections are not supported.
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?)
+ROM layout and the ROM image in one file (cpio, zip or something?).
-DOC support
------------
+Supported Flash Chips / Chipsets / Mainboards
+---------------------------------------------
+
+Please check the output of 'flashrom -L' for the list of supported
+flash chips, chipsets/southbridges, and mainboards.
-DISK on Chip support is currently disabled since it is considered unstable.
-Change CFLAGS in the Makefile to enable it: Remove -DDISABLE_DOC from CFLAGS.
-
-
-Supported Flash Chips
----------------------
-
-AMD AM-29F040B
-AMD AM-29F016D
-ASD AE49F2008
-Atmel AT-29C040A
-EMST F49B002UA
-Intel 82802AB (Firmware Hub)
-Intel 82802AC (Firmware Hub)
-M-Systems MD-2802 (unsupported, disabled by default)
-MX MX-29F002
-PMC PMC-49FL002
-PMC PMC-49FL004
-Sharp LHF-00L04
-SST SST-29EE020A
-SST SST-28SF040A
-SST SST-39SF010A
-SST SST-39SF020A
-SST SST-39SF040
-SST SST-39VF020
-SST SST-49LF040B
-SST SST-49LF040
-SST SST-49LF020A
-SST SST-49LF080A
-SST SST-49LF160C
-SST SST-49LF002A/B
-SST SST-49LF003A/B
-SST SST-49LF004A/B
-SST SST-49LF008A
-SST SST-49LF004C
-SST SST-49LF008C
-SST SST-49LF016C
-ST ST-M29F400BT
-ST ST-M29F040B
-SyncMOS S29C51001T/B
-SyncMOS S29C51002T/B
-SyncMOS S29C51004T/B
-SyncMOS S29C31004T
-Winbond W29C011
-Winbond W29C020C
-Winbond W49F002U
-Winbond W49V002A
-Winbond W49V002FA
-Winbond W39V040A
-Winbond W39V040B
-Winbond W39V080A
-
-
-Supported Southbridges
-----------------------
-
-AMD CS5530
-AMD Geode SC1100
-AMD AMD-8111
-ATI SB400
-Intel ICH0-ICH8 (all variations)
-Intel PIIX4/PIIX4E/PIIX4M
-NVIDIA CK804
-NVIDIA MCP51
-NVIDIA MCP55
-SiS 630
-SiS 5595
-VIA CX700
-VIA VT8231
-VIA VT8235
-VIA VT8237
-VIA VT82C686
+See also http://coreboot.org/Flashrom for more details.