blob: 7be37c74c7526c6999386f224c96573711d4a68f [file] [log] [blame]
Uwe Hermann2dc5f422006-11-20 20:32:35 +00001-------------------------------------------------------------------------------
2Flashrom README
3-------------------------------------------------------------------------------
Ronald G. Minnich1e5003f2002-04-10 18:02:07 +00004
Uwe Hermann2dc5f422006-11-20 20:32:35 +00005This is the universal (LinuxBIOS) flash utility.
6
7Build Requirements
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +00008------------------
9
10To build the flashrom utility you need to have the following packages
Uwe Hermann2dc5f422006-11-20 20:32:35 +000011installed on your Linux system:
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000012
13* pciutils
Uwe Hermann83f0db22006-12-20 14:53:22 +000014* pciutils-devel / pciutils-dev
15* zlib-devel / zlib1g-dev
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000016
17
Uwe Hermann2dc5f422006-11-20 20:32:35 +000018Usage
Stefan Reinauer06b2c4d2005-12-01 10:51:08 +000019-----
20
Uwe Hermann67808fe2007-10-18 00:29:05 +000021 $ flashrom [-rwvEVfh] [-c chipname] [-s exclude_start] [-e exclude_end]
22 [-m vendor:part] [-l file.layout] [-i imagename] [file]
Stefan Reinauerf8337dd2006-08-03 10:49:09 +000023 -r | --read: read flash and save into file
24 -w | --write: write file into flash (default when
25 file is specified)
26 -v | --verify: verify flash against file
27 -E | --erase: erase flash device
28 -V | --verbose: more verbose output
29 -c | --chip <chipname>: probe only for specified flash chip
30 -s | --estart <addr>: exclude start position
31 -e | --eend <addr>: exclude end postion
Ollie Lho184a4042005-11-26 21:55:36 +000032 -m | --mainboard <vendor:part>: override mainboard settings
Stefan Reinauerf8337dd2006-08-03 10:49:09 +000033 -f | --force: force write without checking image
34 -l | --layout <file.layout>: read rom layout from file
35 -i | --image <name>: only flash image name from flash layout
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000036
Ollie Lho184a4042005-11-26 21:55:36 +000037 If no file is specified, then all that happens
38 is that flash info is dumped and the flash chip is set to writable.
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000039
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000040
Uwe Hermann2dc5f422006-11-20 20:32:35 +000041LinuxBIOS Table and Mainboard Identification
Ollie Lho184a4042005-11-26 21:55:36 +000042--------------------------------------------
Ronald G. Minnich5e5f75e2002-01-29 18:21:41 +000043
Uwe Hermann67808fe2007-10-18 00:29:05 +000044Flashrom reads the LinuxBIOS table to determine the current mainboard
45(parse DMI as well in future?). If no LinuxBIOS table could be read
Uwe Hermann2dc5f422006-11-20 20:32:35 +000046or if you want to override these values, you can specify -m, e.g.:
Ollie Lho184a4042005-11-26 21:55:36 +000047
Uwe Hermann67808fe2007-10-18 00:29:05 +000048 flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000049
Mondrian Nuessleaef1c7c2007-05-03 10:09:23 +000050The following boards require the specification of the board name, if
51no LinuxBIOS table is found:
52
53* IWILL DK8-HTX: use -m iwill:dk8_htx
Luc Verhaegen6b141752007-05-20 16:16:13 +000054* Agami Aruma: use -m AGAMI:ARUMA
55* ASUS P5A: use -m asus:p5a
Uwe Hermanne823ee02007-06-05 15:02:18 +000056* IBM x3455: use -m ibm:x3455
Luc Verhaegenfdd0c582007-08-11 16:59:11 +000057* EPoX EP-BX3: use -m epox:ep-bx3
Uwe Hermann67808fe2007-10-18 00:29:05 +000058* GIGABYTE GA-M57SLI-S4 v2.0: use -m gigabyte:m57sli
59* GIGABYTE GA-M61P-S3: use -m gigabyte:m61p
60* MSI K8N Neo3: use -m msi:k8n-neo3
61
Ollie Lho184a4042005-11-26 21:55:36 +000062
Uwe Hermann2dc5f422006-11-20 20:32:35 +000063ROM Layout Support
Ollie Lho184a4042005-11-26 21:55:36 +000064------------------
65
Uwe Hermann2dc5f422006-11-20 20:32:35 +000066Flashrom supports ROM layouts. This allows to flash certain parts of
67the flash chip only. A ROM layout file looks like follows:
Ollie Lho184a4042005-11-26 21:55:36 +000068
69 00000000:00008fff gfxrom
70 00009000:0003ffff normal
71 00040000:0007ffff fallback
72
73 i.e.:
74 startaddr:endaddr name
75
Uwe Hermann67808fe2007-10-18 00:29:05 +000076 All addresses are offsets within the file, not absolute addresses!
Ollie Lho184a4042005-11-26 21:55:36 +000077
Uwe Hermann2dc5f422006-11-20 20:32:35 +000078If you only want to update the normal image in a ROM you can say:
Ollie Lho184a4042005-11-26 21:55:36 +000079
Uwe Hermann67808fe2007-10-18 00:29:05 +000080 flashrom -w --layout rom.layout --image normal agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000081
Uwe Hermann2dc5f422006-11-20 20:32:35 +000082To update normal and fallback but leave the VGA BIOS alone, say:
Ollie Lho184a4042005-11-26 21:55:36 +000083
Uwe Hermann67808fe2007-10-18 00:29:05 +000084 flashrom -w -l rom.layout -i normal -i fallback agami_aruma.rom
Ollie Lho184a4042005-11-26 21:55:36 +000085
Uwe Hermann2dc5f422006-11-20 20:32:35 +000086Currently overlapping sections are not supported.
Ollie Lho184a4042005-11-26 21:55:36 +000087
Uwe Hermann2dc5f422006-11-20 20:32:35 +000088ROM layouts should replace the -s and -e option since they are more
89flexible and they should lead to a ROM update file format with the
Uwe Hermann67808fe2007-10-18 00:29:05 +000090ROM layout and the ROM image in one file (cpio, zip or something?).
Ollie Lho184a4042005-11-26 21:55:36 +000091
92
Uwe Hermann67808fe2007-10-18 00:29:05 +000093Disk on Chip support
94--------------------
Ollie Lho184a4042005-11-26 21:55:36 +000095
Uwe Hermann67808fe2007-10-18 00:29:05 +000096Disk on Chip support is currently disabled since it is considered unstable.
Stefan Reinauercbc55d02006-08-25 19:21:42 +000097Change CFLAGS in the Makefile to enable it: Remove -DDISABLE_DOC from CFLAGS.
Ollie Lho184a4042005-11-26 21:55:36 +000098
99
Uwe Hermannb6d28322006-12-04 08:15:47 +0000100Supported Flash Chips
101---------------------
102
103AMD AM-29F040B
104AMD AM-29F016D
Uwe Hermannc22f5422006-12-04 08:20:40 +0000105ASD AE49F2008
Uwe Hermannb6d28322006-12-04 08:15:47 +0000106Atmel AT-29C040A
Uwe Hermannd7f48062007-04-28 02:22:59 +0000107Atmel AT-29C020
Uwe Hermannb6d28322006-12-04 08:15:47 +0000108EMST F49B002UA
109Intel 82802AB (Firmware Hub)
110Intel 82802AC (Firmware Hub)
111M-Systems MD-2802 (unsupported, disabled by default)
112MX MX-29F002
113PMC PMC-49FL002
114PMC PMC-49FL004
115Sharp LHF-00L04
116SST SST-29EE020A
117SST SST-28SF040A
118SST SST-39SF010A
119SST SST-39SF020A
120SST SST-39SF040
121SST SST-39VF020
122SST SST-49LF040B
123SST SST-49LF040
124SST SST-49LF020A
125SST SST-49LF080A
Alan Carvalho de Assis474230a2007-01-27 13:39:06 +0000126SST SST-49LF160C
Uwe Hermannb6d28322006-12-04 08:15:47 +0000127SST SST-49LF002A/B
128SST SST-49LF003A/B
129SST SST-49LF004A/B
130SST SST-49LF008A
Yinghai Luca782972007-01-22 20:21:17 +0000131SST SST-49LF004C
132SST SST-49LF008C
133SST SST-49LF016C
Uwe Hermann627505b2007-07-27 03:32:45 +0000134ST ST-M50FLW040A
135ST ST-M50FLW040B
136ST ST-M50FLW080A
137ST ST-M50FLW080B
138ST ST-M50FW040
139ST ST-M50FW080
140ST ST-M50FW016
141ST ST-M50LPW116
Uwe Hermannd7f48062007-04-28 02:22:59 +0000142ST ST-M29F002B
143ST ST-M29F002T
144ST ST-M29F002NT
Uwe Hermannb6d28322006-12-04 08:15:47 +0000145ST ST-M29F400BT
146ST ST-M29F040B
Uwe Hermann627505b2007-07-27 03:32:45 +0000147ST ST-M29W010B
148ST ST-M29W040B
Uwe Hermannc22f5422006-12-04 08:20:40 +0000149SyncMOS S29C51001T/B
150SyncMOS S29C51002T/B
151SyncMOS S29C51004T/B
152SyncMOS S29C31004T
Uwe Hermannb6d28322006-12-04 08:15:47 +0000153Winbond W29C011
154Winbond W29C020C
Markus Boas05e7f452007-08-30 10:11:08 +0000155Winbond W29C040P
Markus Boasd2ac6fc2007-08-30 10:17:50 +0000156Winbond W29EE011
Uwe Hermannb6d28322006-12-04 08:15:47 +0000157Winbond W49F002U
158Winbond W49V002A
159Winbond W49V002FA
Uwe Hermannbc1f1a02007-05-21 21:39:08 +0000160Winbond W39V040FA
Uwe Hermannb6d28322006-12-04 08:15:47 +0000161Winbond W39V040A
162Winbond W39V040B
David Hendricks71437d02007-03-02 02:25:36 +0000163Winbond W39V080A
Uwe Hermannb6d28322006-12-04 08:15:47 +0000164
165
166Supported Southbridges
167----------------------
168
Uwe Hermannf4a673b2007-06-06 21:35:45 +0000169AMD CS5530/CS5530A
Uwe Hermannb6d28322006-12-04 08:15:47 +0000170AMD Geode SC1100
171AMD AMD-8111
172ATI SB400
Uwe Hermanne823ee02007-06-05 15:02:18 +0000173Broadcom HT-1000
Uwe Hermannb6d28322006-12-04 08:15:47 +0000174Intel ICH0-ICH8 (all variations)
175Intel PIIX4/PIIX4E/PIIX4M
176NVIDIA CK804
177NVIDIA MCP51
Yinghai Luca782972007-01-22 20:21:17 +0000178NVIDIA MCP55
Uwe Hermannb6d28322006-12-04 08:15:47 +0000179SiS 630
180SiS 5595
Uwe Hermanna4c63c22007-04-09 22:59:22 +0000181VIA CX700
Uwe Hermannb6d28322006-12-04 08:15:47 +0000182VIA VT8231
183VIA VT8235
184VIA VT8237
185VIA VT82C686
186