Difference between revisions of "Flashrom"

From flashrom
Jump to: navigation, search
m (Supported devices)
(Add missing news)
 
(266 intermediate revisions by 22 users not shown)
Line 1: Line 1:
'''Flashrom''' is a utility which can be used to detect, read, or write BIOS chips (DIP, PLCC, SPI).
+
{{DISPLAYTITLE:flashrom}}<!-- it is called flashrom after all. -->
 
+
<table width="100%" valign="top"><tr valign="top"><td width="80%">
== Supported devices ==
 
 
 
Note: There are probably some flash ROM chips which are compatible to the ones listed below.
 
 
 
{| border="0" valign="top"
 
| valign="top"|
 
 
 
{| border="0" style="font-size: smaller" valign="top"
 
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Flash part
 
! align="left" colspan="4" | Status
 
 
 
|- bgcolor="#6699ff"
 
| colspan="2" | &nbsp;
 
| Probe
 
| Read
 
| Write
 
| Erase
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| AMD
 
| AM-29F040B
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| AMD
 
| AM-29F016D
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| ASD
 
| AE49F2008
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| Atmel
 
| AT-29C040A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| Atmel
 
| AT-29C020
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| Atmel
 
| AT-49F002(N)
 
| style="background:lime" | OK<sup>6</sup>
 
| style="background:lime" | OK<sup>6</sup>
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| Atmel
 
| AT-49F002(N)T
 
| style="background:lime" | OK<sup>6</sup>
 
| style="background:lime" | OK<sup>6</sup>
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| EMST
 
| F49B002UA
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| Fujitsu
 
| MBM29F400TC
 
| style="background:lime" | OK<sup>5</sup>
 
| style="background:lime" | OK<sup>5</sup>
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| Intel&reg;(Firmware Hub)
 
| 82802AB
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| Intel&reg;(Firmware Hub)
 
| 82802AC
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| M-Systems
 
| MD-2802
 
| style="background:orange" | WIP<sup>1</sup>
 
| style="background:orange" | WIP<sup>1</sup>
 
| style="background:orange" | WIP<sup>1</sup>
 
| style="background:orange" | WIP<sup>1</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| MX
 
| MX-29F002
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| PMC
 
| PMC-49FL002
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| PMC
 
| PMC-49FL004
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| Sharp
 
| LHF-00L04
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
| style="background:#dddddd" | ?
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-29EE020A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-28SF040A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-39SF010A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-39SF020A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-39SF040
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-39VF020
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF040B
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF040
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF020A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF080A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF002A/B
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF003A/B
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF004A/B
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF008A
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF004C
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF008C
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF016C
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SST
 
| SST-49LF160C
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
| style="background:#eeeeee" | ?
 
|}
 
 
 
| valign="top"|
 
 
 
{| border="0" style="font-size: smaller" valign="top"
 
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Flash part
 
! align="left" | Status
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FLW040A
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FLW040B
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FLW080A
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FLW080B
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FW040
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FW080
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50FW016
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M50LPW116
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29F002B
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29F002T
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29F002NT
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29F400BT
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29F040B
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29W010B
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ST
 
| ST-M29W040B
 
| style="background:yellow" | OK<sup>4</sup>
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| SyncMOS
 
| S29C51001T/B
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#eeeeee" valign="top"
 
| SyncMOS
 
| S29C51002T/B
 
| style="background:lime" | OK
 
|- bgcolor="#eeeeee" valign="top"
 
| SyncMOS
 
| S29C51004T/B
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#eeeeee" valign="top"
 
| SyncMOS
 
| S29C31004T
 
| style="background:yellow" | OK<sup>4</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W29C011
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W29C020C
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W29C040P
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W29EE011
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W49F002U
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W49V002A
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W49V002FA
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W39V040FA
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W39V040A
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W39V040B
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Winbond&trade;
 
| W39V080A
 
| style="background:lime" | OK
 
|}
 
|}
 
 
 
== Supported chipsets ==
 
 
 
{| border="0" style="font-size: smaller"
 
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Southbridge
 
! align="left" | Status
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| ALi
 
| M1533
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| AMD
 
| Geode&trade;&nbsp;CS5530/CS5530A
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| AMD
 
| Geode&trade;&nbsp;SC1100
 
| style="background:#dddddd" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| AMD
 
| AMD-8111
 
| style="background:lime" | OK
 
|- bgcolor="#eeeeee" valign="top"
 
| ATI
 
| SB400
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| Broadcom
 
| HT-1000
 
| style="background:lime" | OK
 
|- bgcolor="#eeeeee" valign="top"
 
| Intel&reg;&nbsp;
 
| ICH
 
| style="background:yellow" | OK<sup>2</sup>
 
|- bgcolor="#eeeeee" valign="top"
 
| Intel&reg;&nbsp;
 
| PIIX4/PIIX4E/PIIX4M
 
| style="background:lime" | OK
 
|- bgcolor="#eeeeee" valign="top"
 
| Intel&reg;&nbsp;
 
| 440MX
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| NVIDIA
 
| CK804
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| NVIDIA
 
| MCP51
 
| style="background:#dddddd" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| NVIDIA
 
| MCP55
 
| style="background:lime" | OK
 
|- bgcolor="#eeeeee" valign="top"
 
| SiS
 
| 630
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#eeeeee" valign="top"
 
| SiS
 
| 5595
 
| style="background:#eeeeee" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| VIA
 
| CX700
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| VIA
 
| VT8231
 
| style="background:#dddddd" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| VIA
 
| VT8235
 
| style="background:#dddddd" | ?
 
|- bgcolor="#dddddd" valign="top"
 
| VIA
 
| VT8237
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| VIA
 
| VT82C686
 
| style="background:#dddddd" | ?
 
|}
 
 
 
  
 +
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#eeeeee; align:right; border:1px solid #aabbcc;">
 +
'''flashrom''' is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.
 
<small>
 
<small>
<sup>1</sup> Unsupported, disabled by default.<br />
+
* Supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers.
<sup>2</sup> This includes the ICH, ICH0, ICH2, ICH2-M, ICH3-S, ICH3-M, ICH4/ICH4-L, ICH4-M, ICH5/ICH5R, ICH6/ICH6R, ICH6-M, ICH7DH, ICH7/ICH7R, ICH7M, ICH7MDH, ICH8/ICH8R, ICH8DH, and ICH8DO chipsets. ICH2: Identifying and reading chips seems to work, but there are [http://tracker.coreboot.org/trac/coreboot/ticket/7 reports] that writing may not work on some mainboards.<br />
+
* Supports [[Technology#Communication_bus_protocol|parallel, LPC, FWH and SPI]] flash interfaces and various chip packages ([[Technology#DIP32:_Dual_In-line_Package.2C_32_pins|DIP32]], [[Technology#PLCC32:_Plastic_Leaded_Chip_Carrier.2C_32_pins|PLCC32]], [[Technology#DIP8:_Dual_In-line_Package.2C_8_pins|DIP8]], [[Technology#SO8.2FSOIC8:_Small-Outline_Integrated_Circuit.2C_8_pins|SO8/SOIC8]], [[Technology#TSOP:_Thin_Small-Outline_Package.2C_32.2C_40.2C_or_48_pins|TSOP32, TSOP40, TSOP48]], [[Technology#BGA:_Ball_Grid_Array|BGA]] and more)
<sup>4</sup> Untested, but should work.<br />
+
* No physical access needed, root access is sufficient (not needed for some programmers).
<sup>5</sup> Only reading the chip, but not ''writing'' to it has been tested. Both is expected to work, though.<br />
+
* No bootable floppy disk, bootable CD-ROM or other media needed.
<sup>6</sup> Should work, but only reading (not writing or erasing) the chip [http://tracker.coreboot.org/trac/coreboot/changeset/3003 has been tested].<br />
+
* 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 DOS, Linux, FreeBSD (including Debian/kFreeBSD), NetBSD, OpenBSD, DragonFlyBSD, anything Solaris-like, Mac OS X, and other Unix-like OSes as well as GNU Hurd. Partial Windows support is available (no internal programmer support at the moment, hence no "BIOS flashing").
 
</small>
 
</small>
 +
</div>
  
== Supported mainboards ==
+
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;">
 +
=== Emergency help ===
  
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 southbridge and ROM chip), or that they do not yet work at all. If they do not work, support may or may not be added later.
+
'''IMPORTANT:''' If something went wrong during flashing, do '''NOT''' turn off/reboot your computer. Instead, let us help you recover. We can be contacted via [[IRC]] ('''#flashrom''' on [irc://chat.freenode.net/#flashrom freenode.net], [http://webchat.freenode.net/?channels=flashrom&uio=d4 webchat]) or [[Mailinglist|email]]. Please allow for a few hours until someone responds on IRC, we're all volunteers.
 +
</div>
  
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 mailinglist or add them here directly.
+
{| cellspacing=5 cellpadding=15 border=0 valign="top" width=100%
 +
| width=50% style="vertical-align:top"|
  
{| border="0" valign="top"
+
{|
| valign="top"|
+
|style="vertical-align:top"|
 
+
X
'''Known-good'''
+
|style="vertical-align:top"|
 
+
'''<span style="font-variant:small-caps; font-size:150%">About</span>'''<br /><small>Find out more about flashrom.</small><small><hr />[[News]] | [[Press]] | [[Testimonials]] | [[History]] | [[Friendliness]] | Follow us on [https://twitter.com/flashrom_org Twitter]</small>
{| border="0" style="font-size: smaller" valign="top"
+
|}
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Mainboard
 
! align="left" | Status
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| Advantech
 
| [http://taiwan.advantech.com.tw/products/Model_Detail.asp?model_id=1-1TGZL8&BU=ACG&PD= PCM-5820]
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| ASI
 
| [http://www.hojerteknik.com/winnet.htm MB-5BLMP]<sup>1</sup>
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=171&l4=0&model=455&modelmenu=2 A8N-E]
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.hardwareschotte.de/hardware/preise/proid_1266090/preis_ASUS+A8NE-FM A8NE-FM/S]
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=148&l4=0&model=539&modelmenu=1 A8N-SLI Premium]
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=143&l4=0&model=376&modelmenu=1 A8V-E Deluxe]
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=101&l3=496&l4=0&model=1568&modelmenu=1 M2A-VM]
 
| style="background:lime" | OK<sup>5</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.motherboard.cz/mb/asus/P2B.htm P2B]
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.motherboard.cz/mb/asus/P2B-F.htm P2B-F]
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| BCOM
 
| [[BCOM WINNET100 Build Tutorial|WinNET100]]<sup>6</sup>
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| GIGABYTE
 
| [http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?ClassValue=Motherboard&ProductID=1445&ProductName=GA-6BXC GA-6BXC]
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| Tyan
 
| [http://www.tyan.com/archive/products/html/tsunamiatx.html S1846]
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| Tyan
 
| [http://www.tyan.com/product_board_detail.aspx?pid=115 S2881]
 
| style="background:lime" | OK
 
  
|- bgcolor="#eeeeee" valign="top"
+
|style="vertical-align:top"|
| Tyan
 
| [http://www.tyan.com/product_board_detail.aspx?pid=127 S2882]
 
| style="background:lime" | OK
 
  
 +
{|
 +
|style="vertical-align:top"|
 +
X
 +
|style="vertical-align:top"|
 +
'''<span style="font-variant:small-caps; font-size:150%">Developers</span>'''<br /><small>Get involved! Help us make flashrom better.</small><small><hr />[[Development Guidelines]] | [https://review.coreboot.org/cgit/flashrom.git Browse Source] | [https://review.coreboot.org/#/q/project:flashrom Pending patches] | [[Technology]] | [[Random notes]] | [[Easy projects]] | [[Board Testing HOWTO]]| [[Board Enable]] | [http://docs.google.com/document/d/18qKvEbfPszjsJJGJhwi8kRVDUG3GZkADzQSH6WFsKqw/ Meeting notes] | [[Windows]] | [[libflashrom]]</small>
 
|}
 
|}
  
| valign="top"|
+
|-
 
+
| width=50% style="vertical-align:top"|
'''Known-good (but special setup required)'''
 
 
 
{| border="0" style="font-size: smaller"
 
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Mainboard
 
! align="left" | Required option
 
! align="left" | Status
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| Acorp
 
| [http://www.digit-life.com/articles/i815epacorp6a815epd/index.html 6A815EPD]
 
| -m acorp:6a815epd
 
| style="background:lime" | OK
 
  
|- bgcolor="#eeeeee" valign="top"
+
{|
| ag&aacute;mi
+
|style="vertical-align:top"|
| [http://agami.com/products/AIS6000/ Aruma/AIS6000]
+
X
| -m AGAMI:ARUMA
+
|style="vertical-align:top"|
| style="background:lime" | OK
+
'''<span style="font-variant:small-caps; font-size:150%">Getting Started</span>'''<br /><small>Download flashrom and get started.</small><small><hr />[[Latest release]] | [[Supported hardware]] | [[Downloads]] | [[Documentation]] | [[Live CD]] | [[qflashrom]]</small>
 
 
|- bgcolor="#dddddd" valign="top"
 
| Artec Group
 
| [http://www.artecgroup.com/thincan/models.html DBE61]
 
| -m artecgroup:dbe61
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| Artec Group
 
| [http://www.artecgroup.com/thincan/models.html DBE62]
 
| -m artecgroup:dbe62
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=13&l3=63&l4=0&model=228&modelmenu=1 A7V400-MX]
 
| &mdash;
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=13&l3=64&l4=0&model=229&modelmenu=1 A7V8X-MX]
 
| &mdash;
 
| style="background:lime" | OK
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.asus.com.tw/products.aspx?l1=3&l2=15&l3=143&l4=0&model=576&modelmenu=1 A8V-E SE]
 
| &mdash;
 
| style="background:lime" | OK<sup>7</sup>
 
|- bgcolor="#dddddd" valign="top"
 
| ASUS
 
| [http://www.hardwarezone.com/reviews/mb/p5a/p5a.htm P5A]
 
| -m asus:p5a
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| EPoX
 
| [http://www.epox.com/usa/product.asp?ID=EP-BX3 EP-BX3]
 
| -m epox:ep-bx3
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| IBM
 
| [http://www-03.ibm.com/systems/x/rack/x3455/ x3455]
 
| -m ibm:x3455
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| GIGABYTE
 
| [http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&ModelName=GA-M57SLI-S4 GA-M57SLI-S4]
 
| -m gigabyte:m57sli
 
| style="background:yellow" | SEMI-SUPPORTED<sup>3</sup>
 
|- bgcolor="#eeeeee" valign="top"
 
| GIGABYTE
 
| [http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2434 GA-M61P-S3]
 
| -m gigabyte:m61p
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| IWILL
 
| [http://web.archive.org/web/20060507170150/http://www.iwill.net/product_2.asp?p_id=98 DK8-HTX]
 
| -m iwill:dk8_htx
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| MSI
 
| [http://global.msi.com.tw/index.php?func=proddesc&prod_no=170&maincat_no=1 K8N Neo3]
 
| -m msi:k8n-neo3
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| Tyan
 
| [http://www.tyan.com/archive/products/html/tomcatk7m.html S2498 (Tomcat K7M)]
 
| &mdash;
 
| style="background:lime" | OK
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| VIA
 
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=81 EPIA-M]
 
| &mdash;
 
| style="background:lime" | OK<sup>2</sup>
 
|- bgcolor="#eeeeee" valign="top"
 
| VIA
 
| [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=202 EPIA-MII]
 
| &mdash;
 
| style="background:lime" | OK<sup>2</sup>
 
 
|}
 
|}
  
| valign="top"|
+
|style="vertical-align:top"|
 
 
'''Known-bad'''
 
 
 
{| border="0" style="font-size: smaller" valign="top"
 
|- bgcolor="#6699dd"
 
! align="left" | Vendor
 
! align="left" | Mainboard
 
! align="left" | Status
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| ASUS
 
| MEW-AM
 
| style="background:red" | No
 
|- bgcolor="#eeeeee" valign="top"
 
| ASUS
 
| MEW-VM
 
| style="background:red" | No
 
 
 
|- bgcolor="#dddddd" valign="top"
 
| Biostar
 
| [ftp://ftp.biostar-usa.com/manuals/M6TBA/ M6TBA]
 
| style="background:red" | No
 
 
 
|- bgcolor="#eeeeee" valign="top"
 
| MSI
 
| [http://global.msi.com.tw/index.php?func=proddesc&prod_no=255&maincat_no=1 MS-7260 (K9N Neo)]
 
| style="background:yellow" | SEMI-SUPPORTED<sup>4</sup>
 
  
 +
{|
 +
|style="vertical-align:top"|
 +
X
 +
|style="vertical-align:top"|
 +
'''<span style="font-variant:small-caps; font-size:150%">Support</span>'''<br /><small>Learn how to contact us and find help and support.</small><small><hr />[[FAQ]] | [[Mailinglist]] | [[IRC]]  | [[Donations]] </small>
 
|}
 
|}
  
 
|}
 
|}
 +
</td><td width="20%">
 +
<!--
 +
[[File:Flash-BGA.jpg|center|thumb|Flash chip in BGA package.]]
 +
<br clear=all />
 +
-->
 +
'''<span style="font-variant:small-caps; font-size:120%">[[News]]</span>'''<hr />
 +
<small>
 +
* '''2020-02-16:''' [[Flashrom/1.2|flashrom 1.2 released]]
 +
* '''2019-06-22:''' [[Flashrom/1.1|flashrom 1.1 released]]
 +
* '''2019-03-30:''' [[Flashrom/1.0.1|flashrom 1.0.1 released]]
 +
* '''2018-01-02:''' [[Flashrom/1.0|flashrom 1.0 released]]
 +
* '''2016-03-13:''' [[Flashrom/0.9.9|flashrom 0.9.9 released]]
 +
* '''2015-03-01:''' [[Flashrom/0.9.8|flashrom 0.9.8 released]]
 +
* '''2013-08-14:''' [[Flashrom/0.9.7|flashrom 0.9.7 released]]
 +
* '''2013-04-08:''' flashrom participates in [[GSoC]]
 +
* '''2012-08-08:''' [[Flashrom/0.9.6|flashrom 0.9.6.1 released]]
 +
</small>
  
 +
<!--
 +
'''<span style="font-variant:small-caps; font-size:120%">[[Current events|Upcoming Events]]</span>'''<hr />
 +
-->
 +
<!-- List of upcoming events (remove events after they have taken place). -->
 
<small>
 
<small>
<sup>1</sup> Used in the IGEL WinNET III thin client.<br />
+
<!-- * '''2009/mon/day:''' coreboot event at [[Link]] in somecity -->
<sup>2</sup> Might also work for other CLE266 based EPIAs.<br />
+
<!-- * '''2009/12/27:''' coreboot presentation at [http://events.ccc.de/congress/2009/ 26C3] in Berlin -->
<sup>3</sup> Flashrom works great when booted with the proprietary BIOS. Once booted in coreboot, it does not work reliably. See [http://tracker.coreboot.org/trac/coreboot/ticket/87 bug #87].<br />
 
<sup>4</sup> Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot.<br />
 
<sup>5</sup> See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html.<br />
 
<sup>6</sup> Used in the IGEL-316 thin client.<br />
 
<sup>7</sup> See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html.<br />
 
 
</small>
 
</small>
  
== Installation ==
+
<br/>
 
+
{{#widget:Ohloh Project|id=flashrom|type=basic_stats}}
'''Requirements'''
 
 
 
Flashrom requires the '''pciutils''' and '''zlib''' and the respective development packages in order to be built.
 
 
 
In Debian unstable these development packages are called '''pciutils-dev''' and '''zlib1g-dev'''. Most other distributions call them '''pciutils-devel''' and '''zlib-devel'''.
 
 
 
'''Manual Installation'''
 
 
 
$ svn co svn://coreboot.org/repos/trunk/util/flashrom
 
$ cd flashrom
 
$ make
 
$ sudo make install
 
 
 
'''Debian'''
 
 
 
$ sudo aptitude install flashrom
 
 
 
'''Fedora'''
 
 
 
$ sudo yum install flashrom
 
 
 
'''Mandriva'''
 
 
 
$ urpmi flashrom
 
 
 
== Usage ==
 
 
 
Detect whether flashrom knows about your chipset/mainboard/BIOS chip:
 
 
 
$ flashrom
 
 
 
Read the current BIOS image into a file:
 
 
 
$ flashrom -r backup.bin
 
 
 
Write a BIOS image (proprietary or coreboot) on the ROM chip:
 
  
$ flashrom -wv newbios.bin
 
  
<div style="color: red">WARNING: This will overwrite your current BIOS! Make sure you know what you're doing!</div>
+
</td></tr></table>
  
For more documentation please see the [http://tracker.coreboot.org/trac/coreboot/browser/trunk/util/flashrom/README flashrom README] or the manpage.
+
__NOTOC__
 +
__NOEDITSECTION__

Latest revision as of 12:58, 16 April 2020

flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.

  • Supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers.
  • Supports parallel, LPC, FWH and SPI flash interfaces and various chip packages (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40, TSOP48, BGA and more)
  • No physical access needed, root access is sufficient (not needed for some programmers).
  • 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 DOS, Linux, FreeBSD (including Debian/kFreeBSD), NetBSD, OpenBSD, DragonFlyBSD, anything Solaris-like, Mac OS X, and other Unix-like OSes as well as GNU Hurd. Partial Windows support is available (no internal programmer support at the moment, hence no "BIOS flashing").

Emergency help

IMPORTANT: If something went wrong during flashing, do NOT turn off/reboot your computer. Instead, let us help you recover. We can be contacted via IRC (#flashrom on freenode.net, webchat) or email. Please allow for a few hours until someone responds on IRC, we're all volunteers.

X

About
Find out more about flashrom.
News | Press | Testimonials | History | Friendliness | Follow us on Twitter

X

Developers
Get involved! Help us make flashrom better.
Development Guidelines | Browse Source | Pending patches | Technology | Random notes | Easy projects | Board Testing HOWTO| Board Enable | Meeting notes | Windows | libflashrom

X

Getting Started
Download flashrom and get started.
Latest release | Supported hardware | Downloads | Documentation | Live CD | qflashrom

X

Support
Learn how to contact us and find help and support.
FAQ | Mailinglist | IRC | Donations
News