Flashrom: Difference between revisions
(→Supported laptops/notebooks: Add IBM 240 notebook as unsupported, reported by juri_ on IRC.) |
Hailfinger (talk | contribs) (→Flash chip overview: Bus protocols) |
||
Line 1,128: | Line 1,128: | ||
= Flash chip overview = | = Flash chip overview = | ||
Modern mainboards store the BIOS in a reprogrammable flash chip. There are hundreds of different flash (EEPROM) chips, with variables such as memory size, speed, communication bus (LPC | Modern mainboards store the BIOS in a reprogrammable flash chip. There are hundreds of different flash (EEPROM) chips, with variables such as memory size, speed, communication bus (Parallel, LPC, FWH, SPI) and packaging to name just a few. | ||
==Packaging/housing/form factor== | |||
Probably the only property of flash chips which is completely irrelevant to flashrom. | |||
The three most common packages are called DIP, PLCC and TSOP. The BIOS copyright holders often place a fancy sticker on the BIOS chip showing a name or logotype, BIOS version, serial number and copyright notice. | |||
'''DIP32: Dual In-line Package, 32 pins''' | '''DIP32: Dual In-line Package, 32 pins''' | ||
Line 1,164: | Line 1,168: | ||
TSOPs are often used in embedded systems where size is important and there is no need for replacement in the field. It is possible to (de)solder TSOPs by hand, but it comes close to wizardry. | TSOPs are often used in embedded systems where size is important and there is no need for replacement in the field. It is possible to (de)solder TSOPs by hand, but it comes close to wizardry. | ||
==Communication bus protocol== | |||
There are four major communication bus protocols for flash chips, each with multiple subtle variants in the command set: | |||
* Parallel: The oldest flash bus, phased out on mainboards around 2002. | |||
* LPC: Low Pin Count, a standard introduced ca. 1998. | |||
* FWH: Firmware Hub, a variant of the LPC standard introduced at the same time. FWH is a special case variant of LPC with one bit set differently in the memory read/write commands. That means some data sheets mention the chips speak LPC although they will not respond to regular LPC read/write cycles. | |||
* SPI: Serial Peripheral Interface, introduced ca. 2006. | |||
I've tried to create a marketing language -> chip type mapping below: | |||
* JEDEC Flash -> Parallel (well, mostly) | |||
* FWH -> FWH | |||
* Firmware Hub -> FWH | |||
* LPC Firmware -> FWH | |||
* Firmware Memory -> FWH | |||
* Low Pin Count (if Firmware/FWH is not mentioned) -> LPC | |||
* LPC (if Firmware is not mentioned) -> LPC | |||
* Serial Flash -> SPI | |||
SST data sheets have the following conventions: | |||
* LPC Memory Read -> LPC | |||
* Firmware Memory Read -> FWH | |||
If both are mentioned, the chip supports both. | |||
Generally, a Parallel flash chip will not speak any other protocols. SPI flash chips also don't speak any other protocols. LPC flash chips sometimes speak FWH as well and vice versa, but they will not speak any protocols beside LPC/FWH. |
Revision as of 19:47, 1 June 2009
flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips. It's often used to flash BIOS/EFI/coreboot/firmware images.
- Supports more than 160 flash chips, 75 chipsets, 100 mainboards, and 10 PCI devices which can be used as external programmers.
- Supports parallel, LPC, FWH and SPI flash interfaces and various chip packages (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40 and more)
- No physical access needed, root access is sufficient.
- No bootable floppy disk, bootable CD-ROM or other media needed.
- No keyboard or monitor needed. Simply reflash remotely via SSH.
- No instant reboot needed. Reflash your chip in a running system, verify it, be happy. The new firmware will be present next time you boot.
- Crossflashing and hotflashing is possible as long as the flash chips are electrically and logically compatible (same protocol). Great for recovery.
- Scriptability. Reflash a whole pool of identical machines at the same time from the command line. It is recommended to check flashrom output and error codes.
- Speed. flashrom is often much faster than most vendor flash tools.
- Portability. Supports Linux, FreeBSD, DragonFly BSD, Solaris, Mac OS X, and other Unix-like OSes.
Supported devices
Supported chips
Total amount of supported chips: 169
|
|
|
Supported chipsets
Total amount of supported chipsets: 76
|
|
|
Supported mainboards
In general, it is very likely that flashrom works out of the box even if your mainboard is not listed below.
This is a list of mainboards where we have verified that they either do or do not need any special initialization to make flashrom work (given flashrom supports the respective chipset and flash chip), or that they do not yet work at all. If they do not work, support may or may not be added later.
Mainboards which don't appear in the list may or may not work (we don't know, someone has to give it a try). Please report any further verified mainboards on the mailing list.
Known good (worked out of the box)
Total amount of boards: 68
|
|
|
Known good (with write-enable code in flashrom)
Total amount of boards: 33
|
|
|
Not supported (yet)
Total amount of boards: 20
|
|
|
Supported programmers
This is a list of supported PCI devices flashrom can use as programmer:
Board notes
Supported laptops/notebooksIn general, flashing laptops is more difficult because
IMPORTANT: At this point we recommend to not use flashrom on untested laptops unless you have a means to recover from a flashing that goes wrong (a working backup flash chip and/or good soldering skills).
|