Flashrom: Difference between revisions
(→Flash chip overview: Add mor ephotos, improve descriptions a bit.) |
|||
Line 1,228: | Line 1,228: | ||
If you're not sure about whether a device is LPC or FWH, look at the read/write cycle definitions. | If you're not sure about whether a device is LPC or FWH, look at the read/write cycle definitions. | ||
{|border=" | {| border="0" style="font-size: smaller" | ||
|+ FWH | |- bgcolor="#6699ff" | ||
|+ '''FWH''' | |||
!Clock Cycle !! Field Name !! Field contents !! Comments | !Clock Cycle !! Field Name !! Field contents !! Comments | ||
|- | |- bgcolor="#eeeeee" | ||
| 1 || START || 1101/1110 || 1101 for READ, 1110 for WRITE. | | 1 || START || 1101/1110 || 1101 for READ, 1110 for WRITE. | ||
|- | |- bgcolor="#eeeeee" | ||
| 2 || IDSEL || 0000 to 1111 || IDSEL value to be shifted out to the chip. | | 2 || IDSEL || 0000 to 1111 || IDSEL value to be shifted out to the chip. | ||
|- | |- bgcolor="#eeeeee" | ||
| 3-9 || IMADDR || YYYY || The address to be read/written. 7 cycles total == 28 bits. | | 3-9 || IMADDR || YYYY || The address to be read/written. 7 cycles total == 28 bits. | ||
|- | |- bgcolor="#eeeeee" | ||
| 10+ || ... | | 10+ || ... || ... || ... | ||
|} | |} | ||
{|border=" | {| border="0" style="font-size: smaller" | ||
|+ LPC | |- bgcolor="#6699ff" | ||
|+ '''LPC''' | |||
!Clock Cycle !! Field Name !! Field contents !! Comments | !Clock Cycle !! Field Name !! Field contents !! Comments | ||
|- | |- bgcolor="#eeeeee" | ||
| 1 || START || 0000 | | 1 || START || 0000 || ... | ||
|- | |- bgcolor="#eeeeee" | ||
| 2 || CYCLETYPE+DIRECTION || 010X/011X || 010X for READ, 011X for WRITE. X means "reserved". | | 2 || CYCLETYPE+DIRECTION || 010X/011X || 010X for READ, 011X for WRITE. X means "reserved". | ||
|- | |- bgcolor="#eeeeee" | ||
| 3-10 || ADDRESS || YYYY || The address to be read/written. 8 cycles total == 32 bits. | | 3-10 || ADDRESS || YYYY || The address to be read/written. 8 cycles total == 32 bits. | ||
|- | |- bgcolor="#eeeeee" | ||
| 11+ || ... | | 11+ || ... || ... || ... | ||
|} | |} | ||
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 besides LPC/FWH. | 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 besides LPC/FWH. |
Revision as of 14:12, 14 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: 172
|
|
|
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: 71
|
|
|
Known good (with write-enable code in flashrom)
Total amount of boards: 34
|
|
|
Not supported (yet)
Total amount of boards: 19
|
|
|
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).
|