blob: a3a0143f8d5d5c4660bcf55327307023fe28433c [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 Stugedb52c582008-06-22 17:06:41 +0000101Disk on Chip support was removed from flashrom in r3380. It had already
102been 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