blob: 8318d0831198b376f838db2d540b7adbf8619410 [file] [log] [blame]
Uwe Hermann2dc5f422006-11-20 20:32:35 +00001-------------------------------------------------------------------------------
2Flashrom README
3-------------------------------------------------------------------------------
Ronald G. Minnich1e5003f2002-04-10 18:02:07 +00004
Uwe Hermann42eb17f2008-01-18 17:48:51 +00005Flashrom is a universal flash programming utility for DIP, PLCC, or SPI
6flash ROM chips. It can be used to flash BIOS/coreboot/firmware images.
7
8(see http://coreboot.org for details on coreboot)
9
Uwe Hermann2dc5f422006-11-20 20:32:35 +000010
11Build Requirements
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000012------------------
13
14To build the flashrom utility you need to have the following packages
Uwe Hermann2dc5f422006-11-20 20:32:35 +000015installed on your Linux system:
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000016
17* pciutils
Uwe Hermann83f0db22006-12-20 14:53:22 +000018* pciutils-devel / pciutils-dev
19* zlib-devel / zlib1g-dev
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000020
21
Uwe Hermann2dc5f422006-11-20 20:32:35 +000022Usage
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000023-----
24
Uwe Hermann67808fe2007-10-18 00:29:05 +000025 $ flashrom [-rwvEVfh] [-c chipname] [-s exclude_start] [-e exclude_end]
Peter Stuge6b53fed2008-01-27 16:21:21 +000026 [-m [vendor:]part] [-l file.layout] [-i imagename] [file]
27 -r | --read: read flash and save into file
28 -w | --write: write file into flash (default when
29 file is specified)
30 -v | --verify: verify flash against file
31 -E | --erase: erase flash device
32 -V | --verbose: more verbose output
33 -c | --chip <chipname>: probe only for specified flash chip
34 -s | --estart <addr>: exclude start position
35 -e | --eend <addr>: exclude end postion
36 -m | --mainboard <[vendor:]part>: override mainboard settings
37 -f | --force: force write without checking image
38 -l | --layout <file.layout>: read rom layout from file
39 -i | --image <name>: only flash image name from flash layout
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000040
Ollie Lho184a4042005-11-26 21:55:36 +000041 If no file is specified, then all that happens
42 is that flash info is dumped and the flash chip is set to writable.
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000043
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000044
Stefan Reinauere3f3e2e2008-01-18 15:33:10 +000045coreboot Table and Mainboard Identification
Ollie Lho184a4042005-11-26 21:55:36 +000046--------------------------------------------
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000047
Stefan Reinauere3f3e2e2008-01-18 15:33:10 +000048Flashrom reads the coreboot table to determine the current mainboard
49(parse DMI as well in future?). If no coreboot table could be read
Uwe Hermann2dc5f422006-11-20 20:32:35 +000050or if you want to override these values, you can specify -m, e.g.:
Ollie Lho184a4042005-11-26 21:55:36 +000051
Uwe Hermann67808fe2007-10-18 00:29:05 +000052 flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000053
Mondrian Nuessleaef1c7c2007-05-03 10:09:23 +000054The following boards require the specification of the board name, if
Stefan Reinauere3f3e2e2008-01-18 15:33:10 +000055no coreboot table is found:
Mondrian Nuessleaef1c7c2007-05-03 10:09:23 +000056
57* IWILL DK8-HTX: use -m iwill:dk8_htx
Luc Verhaegen6b141752007-05-20 16:16:13 +000058* Agami Aruma: use -m AGAMI:ARUMA
59* ASUS P5A: use -m asus:p5a
Uwe Hermanne823ee02007-06-05 15:02:18 +000060* IBM x3455: use -m ibm:x3455
Luc Verhaegenfdd0c582007-08-11 16:59:11 +000061* EPoX EP-BX3: use -m epox:ep-bx3
Uwe Hermann67808fe2007-10-18 00:29:05 +000062* GIGABYTE GA-M57SLI-S4 v2.0: use -m gigabyte:m57sli
63* GIGABYTE GA-M61P-S3: use -m gigabyte:m61p
64* MSI K8N Neo3: use -m msi:k8n-neo3
Jonathan A. Kollaschc7785562007-12-02 19:03:23 +000065* Acorp 6A815EPD: use -m acorp:6a815epd
Uwe Hermann67808fe2007-10-18 00:29:05 +000066
Ollie Lho184a4042005-11-26 21:55:36 +000067
Uwe Hermann2dc5f422006-11-20 20:32:35 +000068ROM Layout Support
Ollie Lho184a4042005-11-26 21:55:36 +000069------------------
70
Uwe Hermann42eb17f2008-01-18 17:48:51 +000071Flashrom supports ROM layouts. This allows you to flash certain parts of
Uwe Hermann2dc5f422006-11-20 20:32:35 +000072the flash chip only. A ROM layout file looks like follows:
Ollie Lho184a4042005-11-26 21:55:36 +000073
74 00000000:00008fff gfxrom
75 00009000:0003ffff normal
76 00040000:0007ffff fallback
77
78 i.e.:
79 startaddr:endaddr name
80
Uwe Hermann67808fe2007-10-18 00:29:05 +000081 All addresses are offsets within the file, not absolute addresses!
Ollie Lho184a4042005-11-26 21:55:36 +000082
Uwe Hermann2dc5f422006-11-20 20:32:35 +000083If you only want to update the normal image in a ROM you can say:
Ollie Lho184a4042005-11-26 21:55:36 +000084
Uwe Hermann67808fe2007-10-18 00:29:05 +000085 flashrom -w --layout rom.layout --image normal agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000086
Uwe Hermann2dc5f422006-11-20 20:32:35 +000087To update normal and fallback but leave the VGA BIOS alone, say:
Ollie Lho184a4042005-11-26 21:55:36 +000088
Uwe Hermann67808fe2007-10-18 00:29:05 +000089 flashrom -w -l rom.layout -i normal -i fallback agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000090
Uwe Hermann2dc5f422006-11-20 20:32:35 +000091Currently overlapping sections are not supported.
Ollie Lho184a4042005-11-26 21:55:36 +000092
Uwe Hermann2dc5f422006-11-20 20:32:35 +000093ROM layouts should replace the -s and -e option since they are more
94flexible and they should lead to a ROM update file format with the
Uwe Hermann67808fe2007-10-18 00:29:05 +000095ROM layout and the ROM image in one file (cpio, zip or something?).
Ollie Lho184a4042005-11-26 21:55:36 +000096
97
Uwe Hermann67808fe2007-10-18 00:29:05 +000098Disk on Chip support
99--------------------
Ollie Lho184a4042005-11-26 21:55:36 +0000100
Peter Stuge87d51fb2008-06-22 17:54:03 +0000101Disk on Chip support was removed from flashrom in r3382. It had already
Peter Stugedb52c582008-06-22 17:06:41 +0000102been disabled by default in flashrom for several years because the code
103was considered unstable and incomplete. The products intended to work
104have been End-Of-Lifed by the manufacturer for a long time.
Ollie Lho184a4042005-11-26 21:55:36 +0000105
106
Uwe Hermannb6d28322006-12-04 08:15:47 +0000107Supported Flash Chips
108---------------------
109
110AMD AM-29F040B
111AMD AM-29F016D
Uwe Hermannc22f5422006-12-04 08:20:40 +0000112ASD AE49F2008
Uwe Hermannb6d28322006-12-04 08:15:47 +0000113Atmel AT-29C040A
Uwe Hermannd7f48062007-04-28 02:22:59 +0000114Atmel AT-29C020
Uwe Hermannb6d28322006-12-04 08:15:47 +0000115EMST F49B002UA
116Intel 82802AB (Firmware Hub)
117Intel 82802AC (Firmware Hub)
Uwe Hermannb6d28322006-12-04 08:15:47 +0000118MX MX-29F002
119PMC PMC-49FL002
120PMC PMC-49FL004
121Sharp LHF-00L04
Peter Stuge79fd6d22008-01-27 07:17:14 +0000122Spansion S25FL016A
Uwe Hermannb6d28322006-12-04 08:15:47 +0000123SST SST-29EE020A
124SST SST-28SF040A
125SST SST-39SF010A
126SST SST-39SF020A
127SST SST-39SF040
128SST SST-39VF020
129SST SST-49LF040B
130SST SST-49LF040
131SST SST-49LF020A
132SST SST-49LF080A
Alan Carvalho de Assis474230a2007-01-27 13:39:06 +0000133SST SST-49LF160C
Uwe Hermannb6d28322006-12-04 08:15:47 +0000134SST SST-49LF002A/B
135SST SST-49LF003A/B
136SST SST-49LF004A/B
137SST SST-49LF008A
Yinghai Luca782972007-01-22 20:21:17 +0000138SST SST-49LF004C
139SST SST-49LF008C
140SST SST-49LF016C
Uwe Hermann627505b2007-07-27 03:32:45 +0000141ST ST-M50FLW040A
142ST ST-M50FLW040B
143ST ST-M50FLW080A
144ST ST-M50FLW080B
145ST ST-M50FW040
146ST ST-M50FW080
147ST ST-M50FW016
148ST ST-M50LPW116
Uwe Hermannd7f48062007-04-28 02:22:59 +0000149ST ST-M29F002B
150ST ST-M29F002T
151ST ST-M29F002NT
Uwe Hermannb6d28322006-12-04 08:15:47 +0000152ST ST-M29F400BT
153ST ST-M29F040B
Uwe Hermann627505b2007-07-27 03:32:45 +0000154ST ST-M29W010B
155ST ST-M29W040B
Uwe Hermannc22f5422006-12-04 08:20:40 +0000156SyncMOS S29C51001T/B
157SyncMOS S29C51002T/B
158SyncMOS S29C51004T/B
159SyncMOS S29C31004T
Uwe Hermannb6d28322006-12-04 08:15:47 +0000160Winbond W29C011
161Winbond W29C020C
Markus Boas05e7f452007-08-30 10:11:08 +0000162Winbond W29C040P
Markus Boasd2ac6fc2007-08-30 10:17:50 +0000163Winbond W29EE011
Uwe Hermannb6d28322006-12-04 08:15:47 +0000164Winbond W49F002U
165Winbond W49V002A
166Winbond W49V002FA
Uwe Hermannbc1f1a02007-05-21 21:39:08 +0000167Winbond W39V040FA
Uwe Hermannb6d28322006-12-04 08:15:47 +0000168Winbond W39V040A
169Winbond W39V040B
David Hendricks71437d02007-03-02 02:25:36 +0000170Winbond W39V080A
Uwe Hermannb6d28322006-12-04 08:15:47 +0000171
172
173Supported Southbridges
174----------------------
175
Uwe Hermannf4a673b2007-06-06 21:35:45 +0000176AMD CS5530/CS5530A
Uwe Hermannb6d28322006-12-04 08:15:47 +0000177AMD Geode SC1100
178AMD AMD-8111
179ATI SB400
Uwe Hermanne823ee02007-06-05 15:02:18 +0000180Broadcom HT-1000
Uwe Hermannb6d28322006-12-04 08:15:47 +0000181Intel ICH0-ICH8 (all variations)
182Intel PIIX4/PIIX4E/PIIX4M
183NVIDIA CK804
184NVIDIA MCP51
Yinghai Luca782972007-01-22 20:21:17 +0000185NVIDIA MCP55
Uwe Hermannb6d28322006-12-04 08:15:47 +0000186SiS 630
187SiS 5595
Uwe Hermanna4c63c22007-04-09 22:59:22 +0000188VIA CX700
Uwe Hermannb6d28322006-12-04 08:15:47 +0000189VIA VT8231
190VIA VT8235
191VIA VT8237
192VIA VT82C686
193