| ------------------------------------------------------------------------------- |
| Flashrom README |
| ------------------------------------------------------------------------------- |
| |
| This is the universal (LinuxBIOS) flash utility. |
| |
| Build Requirements |
| ------------------ |
| |
| To build the flashrom utility you need to have the following packages |
| installed on your Linux system: |
| |
| * pciutils |
| * pciutils-devel / pciutils-dev |
| * zlib-devel / zlib1g-dev |
| |
| |
| Usage |
| ----- |
| |
| $ flashrom [-rwvEVfh] [-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 |
| |
| If no file is specified, then all that happens |
| is that flash info is dumped and the flash chip is set to writable. |
| |
| |
| LinuxBIOS Table and Mainboard Identification |
| -------------------------------------------- |
| |
| Flashrom reads the LinuxBIOS table to determine the current mainboard |
| (parse DMI as well in future?). If no LinuxBIOS 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 |
| |
| The following boards require the specification of the board name, if |
| no LinuxBIOS table is found: |
| |
| * IWILL DK8-HTX: use -m iwill:dk8_htx |
| * Agami Aruma: use -m AGAMI:ARUMA |
| * ASUS P5A: use -m asus:p5a |
| * IBM x3455: use -m ibm:x3455 |
| * EPoX EP-BX3: use -m epox:ep-bx3 |
| * 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 |
| |
| |
| ROM Layout Support |
| ------------------ |
| |
| Flashrom supports ROM layouts. This allows 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?). |
| |
| |
| Disk on Chip support |
| -------------------- |
| |
| Disk on Chip support is currently disabled since it is considered unstable. |
| Change CFLAGS in the Makefile to enable it: Remove -DDISABLE_DOC from CFLAGS. |
| |
| |
| Supported Flash Chips |
| --------------------- |
| |
| AMD AM-29F040B |
| AMD AM-29F016D |
| ASD AE49F2008 |
| Atmel AT-29C040A |
| Atmel AT-29C020 |
| EMST F49B002UA |
| Intel 82802AB (Firmware Hub) |
| Intel 82802AC (Firmware Hub) |
| M-Systems MD-2802 (unsupported, disabled by default) |
| MX MX-29F002 |
| PMC PMC-49FL002 |
| PMC PMC-49FL004 |
| Sharp LHF-00L04 |
| 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 |
| SST SST-49LF160C |
| SST SST-49LF002A/B |
| SST SST-49LF003A/B |
| SST SST-49LF004A/B |
| SST SST-49LF008A |
| SST SST-49LF004C |
| SST SST-49LF008C |
| SST SST-49LF016C |
| ST ST-M50FLW040A |
| ST ST-M50FLW040B |
| ST ST-M50FLW080A |
| ST ST-M50FLW080B |
| ST ST-M50FW040 |
| ST ST-M50FW080 |
| ST ST-M50FW016 |
| ST ST-M50LPW116 |
| ST ST-M29F002B |
| ST ST-M29F002T |
| ST ST-M29F002NT |
| ST ST-M29F400BT |
| ST ST-M29F040B |
| ST ST-M29W010B |
| ST ST-M29W040B |
| SyncMOS S29C51001T/B |
| SyncMOS S29C51002T/B |
| SyncMOS S29C51004T/B |
| SyncMOS S29C31004T |
| Winbond W29C011 |
| Winbond W29C020C |
| Winbond W29C040P |
| Winbond W29EE011 |
| Winbond W49F002U |
| Winbond W49V002A |
| Winbond W49V002FA |
| Winbond W39V040FA |
| Winbond W39V040A |
| Winbond W39V040B |
| Winbond W39V080A |
| |
| |
| Supported Southbridges |
| ---------------------- |
| |
| AMD CS5530/CS5530A |
| AMD Geode SC1100 |
| AMD AMD-8111 |
| ATI SB400 |
| Broadcom HT-1000 |
| Intel ICH0-ICH8 (all variations) |
| Intel PIIX4/PIIX4E/PIIX4M |
| NVIDIA CK804 |
| NVIDIA MCP51 |
| NVIDIA MCP55 |
| SiS 630 |
| SiS 5595 |
| VIA CX700 |
| VIA VT8231 |
| VIA VT8235 |
| VIA VT8237 |
| VIA VT82C686 |
| |