2006-11-20 21:32:35 +01:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Flashrom README
|
|
|
|
-------------------------------------------------------------------------------
|
2003-10-25 19:01:29 +02:00
|
|
|
|
2008-01-18 18:48:51 +01:00
|
|
|
Flashrom is a universal flash programming utility for DIP, PLCC, or SPI
|
|
|
|
flash ROM chips. It can be used to flash BIOS/coreboot/firmware images.
|
|
|
|
|
|
|
|
(see http://coreboot.org for details on coreboot)
|
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
|
|
|
|
Build Requirements
|
2005-12-01 11:51:08 +01:00
|
|
|
------------------
|
|
|
|
|
|
|
|
To build the flashrom utility you need to have the following packages
|
2006-11-20 21:32:35 +01:00
|
|
|
installed on your Linux system:
|
2005-12-01 11:51:08 +01:00
|
|
|
|
|
|
|
* pciutils
|
2006-12-20 15:53:22 +01:00
|
|
|
* pciutils-devel / pciutils-dev
|
|
|
|
* zlib-devel / zlib1g-dev
|
2005-12-01 11:51:08 +01:00
|
|
|
|
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
Usage
|
2005-12-01 11:51:08 +01:00
|
|
|
-----
|
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
$ flashrom [-rwvEVfh] [-c chipname] [-s exclude_start] [-e exclude_end]
|
2008-01-27 17:21:21 +01:00
|
|
|
[-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
|
2003-10-25 19:01:29 +02:00
|
|
|
|
2005-11-26 22:55:36 +01:00
|
|
|
If no file is specified, then all that happens
|
|
|
|
is that flash info is dumped and the flash chip is set to writable.
|
2003-10-25 19:01:29 +02:00
|
|
|
|
|
|
|
|
2008-01-18 16:33:10 +01:00
|
|
|
coreboot Table and Mainboard Identification
|
2005-11-26 22:55:36 +01:00
|
|
|
--------------------------------------------
|
|
|
|
|
2008-01-18 16:33:10 +01:00
|
|
|
Flashrom reads the coreboot table to determine the current mainboard
|
|
|
|
(parse DMI as well in future?). If no coreboot table could be read
|
2006-11-20 21:32:35 +01:00
|
|
|
or if you want to override these values, you can specify -m, e.g.:
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2007-05-03 12:09:23 +02:00
|
|
|
The following boards require the specification of the board name, if
|
2008-01-18 16:33:10 +01:00
|
|
|
no coreboot table is found:
|
2007-05-03 12:09:23 +02:00
|
|
|
|
|
|
|
* IWILL DK8-HTX: use -m iwill:dk8_htx
|
2007-05-20 18:16:13 +02:00
|
|
|
* Agami Aruma: use -m AGAMI:ARUMA
|
|
|
|
* ASUS P5A: use -m asus:p5a
|
2007-06-05 17:02:18 +02:00
|
|
|
* IBM x3455: use -m ibm:x3455
|
2007-08-11 18:59:11 +02:00
|
|
|
* EPoX EP-BX3: use -m epox:ep-bx3
|
2007-10-18 02:29:05 +02:00
|
|
|
* GIGABYTE GA-M57SLI-S4 v2.0: use -m gigabyte:m57sli
|
|
|
|
* GIGABYTE GA-M61P-S3: use -m gigabyte:m61p
|
|
|
|
* MSI K8N Neo3: use -m msi:k8n-neo3
|
2007-12-02 20:03:23 +01:00
|
|
|
* Acorp 6A815EPD: use -m acorp:6a815epd
|
2007-10-18 02:29:05 +02:00
|
|
|
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
ROM Layout Support
|
2005-11-26 22:55:36 +01:00
|
|
|
------------------
|
|
|
|
|
2008-01-18 18:48:51 +01:00
|
|
|
Flashrom supports ROM layouts. This allows you to flash certain parts of
|
2006-11-20 21:32:35 +01:00
|
|
|
the flash chip only. A ROM layout file looks like follows:
|
2005-11-26 22:55:36 +01:00
|
|
|
|
|
|
|
00000000:00008fff gfxrom
|
|
|
|
00009000:0003ffff normal
|
|
|
|
00040000:0007ffff fallback
|
|
|
|
|
|
|
|
i.e.:
|
|
|
|
startaddr:endaddr name
|
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
All addresses are offsets within the file, not absolute addresses!
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
If you only want to update the normal image in a ROM you can say:
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
flashrom -w --layout rom.layout --image normal agami_aruma.rom
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
To update normal and fallback but leave the VGA BIOS alone, say:
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
flashrom -w -l rom.layout -i normal -i fallback agami_aruma.rom
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
Currently overlapping sections are not supported.
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2006-11-20 21:32:35 +01:00
|
|
|
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
|
2007-10-18 02:29:05 +02:00
|
|
|
ROM layout and the ROM image in one file (cpio, zip or something?).
|
2005-11-26 22:55:36 +01:00
|
|
|
|
|
|
|
|
2007-10-18 02:29:05 +02:00
|
|
|
Disk on Chip support
|
|
|
|
--------------------
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2008-06-22 19:06:41 +02:00
|
|
|
Disk on Chip support was removed from flashrom in r3380. It had already
|
|
|
|
been disabled by default in flashrom for several years because the code
|
|
|
|
was considered unstable and incomplete. The products intended to work
|
|
|
|
have been End-Of-Lifed by the manufacturer for a long time.
|
2005-11-26 22:55:36 +01:00
|
|
|
|
2003-10-25 19:01:29 +02:00
|
|
|
|
2006-12-04 09:15:47 +01:00
|
|
|
Supported Flash Chips
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
AMD AM-29F040B
|
|
|
|
AMD AM-29F016D
|
2006-12-04 09:20:40 +01:00
|
|
|
ASD AE49F2008
|
2006-12-04 09:15:47 +01:00
|
|
|
Atmel AT-29C040A
|
2007-04-28 04:22:59 +02:00
|
|
|
Atmel AT-29C020
|
2006-12-04 09:15:47 +01:00
|
|
|
EMST F49B002UA
|
|
|
|
Intel 82802AB (Firmware Hub)
|
|
|
|
Intel 82802AC (Firmware Hub)
|
|
|
|
MX MX-29F002
|
|
|
|
PMC PMC-49FL002
|
|
|
|
PMC PMC-49FL004
|
|
|
|
Sharp LHF-00L04
|
2008-01-27 08:17:14 +01:00
|
|
|
Spansion S25FL016A
|
2006-12-04 09:15:47 +01:00
|
|
|
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
|
2007-01-27 14:39:06 +01:00
|
|
|
SST SST-49LF160C
|
2006-12-04 09:15:47 +01:00
|
|
|
SST SST-49LF002A/B
|
|
|
|
SST SST-49LF003A/B
|
|
|
|
SST SST-49LF004A/B
|
|
|
|
SST SST-49LF008A
|
2007-01-22 21:21:17 +01:00
|
|
|
SST SST-49LF004C
|
|
|
|
SST SST-49LF008C
|
|
|
|
SST SST-49LF016C
|
2007-07-27 05:32:45 +02:00
|
|
|
ST ST-M50FLW040A
|
|
|
|
ST ST-M50FLW040B
|
|
|
|
ST ST-M50FLW080A
|
|
|
|
ST ST-M50FLW080B
|
|
|
|
ST ST-M50FW040
|
|
|
|
ST ST-M50FW080
|
|
|
|
ST ST-M50FW016
|
|
|
|
ST ST-M50LPW116
|
2007-04-28 04:22:59 +02:00
|
|
|
ST ST-M29F002B
|
|
|
|
ST ST-M29F002T
|
|
|
|
ST ST-M29F002NT
|
2006-12-04 09:15:47 +01:00
|
|
|
ST ST-M29F400BT
|
|
|
|
ST ST-M29F040B
|
2007-07-27 05:32:45 +02:00
|
|
|
ST ST-M29W010B
|
|
|
|
ST ST-M29W040B
|
2006-12-04 09:20:40 +01:00
|
|
|
SyncMOS S29C51001T/B
|
|
|
|
SyncMOS S29C51002T/B
|
|
|
|
SyncMOS S29C51004T/B
|
|
|
|
SyncMOS S29C31004T
|
2006-12-04 09:15:47 +01:00
|
|
|
Winbond W29C011
|
|
|
|
Winbond W29C020C
|
2007-08-30 12:11:08 +02:00
|
|
|
Winbond W29C040P
|
2007-08-30 12:17:50 +02:00
|
|
|
Winbond W29EE011
|
2006-12-04 09:15:47 +01:00
|
|
|
Winbond W49F002U
|
|
|
|
Winbond W49V002A
|
|
|
|
Winbond W49V002FA
|
2007-05-21 23:39:08 +02:00
|
|
|
Winbond W39V040FA
|
2006-12-04 09:15:47 +01:00
|
|
|
Winbond W39V040A
|
|
|
|
Winbond W39V040B
|
2007-03-02 03:25:36 +01:00
|
|
|
Winbond W39V080A
|
2006-12-04 09:15:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
Supported Southbridges
|
|
|
|
----------------------
|
|
|
|
|
2007-06-06 23:35:45 +02:00
|
|
|
AMD CS5530/CS5530A
|
2006-12-04 09:15:47 +01:00
|
|
|
AMD Geode SC1100
|
|
|
|
AMD AMD-8111
|
|
|
|
ATI SB400
|
2007-06-05 17:02:18 +02:00
|
|
|
Broadcom HT-1000
|
2006-12-04 09:15:47 +01:00
|
|
|
Intel ICH0-ICH8 (all variations)
|
|
|
|
Intel PIIX4/PIIX4E/PIIX4M
|
|
|
|
NVIDIA CK804
|
|
|
|
NVIDIA MCP51
|
2007-01-22 21:21:17 +01:00
|
|
|
NVIDIA MCP55
|
2006-12-04 09:15:47 +01:00
|
|
|
SiS 630
|
|
|
|
SiS 5595
|
2007-04-10 00:59:22 +02:00
|
|
|
VIA CX700
|
2006-12-04 09:15:47 +01:00
|
|
|
VIA VT8231
|
|
|
|
VIA VT8235
|
|
|
|
VIA VT8237
|
|
|
|
VIA VT82C686
|
|
|
|
|