1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
-------------------------------------------------------------------------------
Flashrom README
-------------------------------------------------------------------------------
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, and TSOP 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 install the following packages:
* pciutils
* pciutils-devel / pciutils-dev / libpci-dev
* zlib-devel / zlib1g-dev
Usage
-----
$ 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.
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 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
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 you to flash certain parts of
the flash chip only. A ROM layout file looks like follows:
00000000:00008fff gfxrom
00009000:0003ffff normal
00040000:0007ffff fallback
i.e.:
startaddr:endaddr name
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 agami_aruma.rom
To update normal and fallback but leave the VGA BIOS alone, say:
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?).
Supported Flash Chips / Chipsets / Mainboards
---------------------------------------------
Please check the output of 'flashrom -L' for the list of supported
flash chips, chipsets/southbridges, and mainboards.
See also http://coreboot.org/Flashrom for more details.
|