|
|
(326 intermediate revisions by 16 users not shown) |
Line 1: |
Line 1: |
| '''Flashrom''' is a utility written for LinuxBIOS and maintained in the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2/util/flashrom LinuxBIOS Subversion repository]. It can be used to detect BIOS chips (DIP, PLCC), read their contents and write new contents on the chips ("flashing").
| | {{DISPLAYTITLE:flashrom}}<!-- it is called flashrom after all. --> |
| | <table width="100%" valign="top"><tr valign="top"><td width="80%"> |
|
| |
|
| == Supported devices == | | <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> |
| | * Supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers. |
| | * 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) |
| | * 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"). |
| | </small> |
| | </div> |
|
| |
|
| Note: The LinuxBIOSv1 version of Flashrom ("flash_and_burn") only supported a very small number of devices. Always use the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2/util/flashrom latest Flashrom version from LinuxBIOSv2]! There are some compatible chips out to the below list.
| | <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 === |
|
| |
|
| {| border="0" valign="top"
| | '''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 [[Contact#IRC|IRC]] ('''#flashrom''' on [irc://irc.libera.chat/#flashrom libera.chat], [https://web.libera.chat/#flashrom webchat]) or [[Contact#Mailing_List|email]]. Please allow for a few hours until someone responds on IRC, we're all volunteers. |
| | valign="top"|
| | </div> |
|
| |
|
| '''Flash chips'''
| | {| cellspacing=5 cellpadding=15 border=0 valign="top" width=100% |
| | | width=50% style="vertical-align:top"| |
|
| |
|
| {| border="0" style="font-size: smaller" valign="top" | | {| |
| |- bgcolor="#6699dd"
| | |style="vertical-align:top"| |
| ! align="left" | Vendor
| | X |
| ! align="left" | Flash part
| | |style="vertical-align:top"| |
| ! align="left" | Status
| | '''<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] | [https://www.openhub.net/p/flashrom Open Hub] statistics</small> |
| | |
| |- bgcolor="#dddddd" valign="top"
| |
| | AMD
| |
| | AM-29F040B
| |
| | style="background:lime" | OK | |
| |- bgcolor="#dddddd" valign="top"
| |
| | AMD
| |
| | AM-29F016D
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | ASD | |
| | AE49F2008
| |
| | style="background:lime" | OK | |
| |- bgcolor="#dddddd" valign="top"
| |
| | Atmel
| |
| | AT-29C040A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Atmel | |
| | AT-29C020
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | EMST
| |
| | F49B002UA
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Intel®(Firmware Hub)
| |
| | 82802AB
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Intel®(Firmware Hub)
| |
| | 82802AC
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | M-Systems
| |
| | MD-2802
| |
| | style="background:yellow" | OK<sup>1</sup>
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | MX
| |
| | MX-29F002
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | PMC
| |
| | PMC-49FL002
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | PMC
| |
| | PMC-49FL004
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Sharp
| |
| | LHF-00L04
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-29EE020A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-28SF040A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-39SF010A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-39SF020A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-39SF040
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-39VF020
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF040B
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF040
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF020A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF080A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF002A/B
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF003A/B
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF004A/B
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF008A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF004C
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF008C
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF016C
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | SST
| |
| | SST-49LF160C
| |
| | style="background:lime" | OK
| |
| |- 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="#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™
| |
| | W29C011
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top" | |
| | Winbond™ | |
| | W29C020C | |
| | style="background:lime" | OK | |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W49F002U
| |
| | style="background:lime" | OK | |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W49V002A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W49V002FA
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W39V040FA
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W39V040A
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W39V040B
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | Winbond™
| |
| | W39V080A
| |
| | style="background:lime" | OK
| |
| |} | | |} |
|
| |
|
| | valign="top"| | | |style="vertical-align:top"| |
|
| |
|
| '''Southbridges''' | | {| |
| | |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/plugins/gitiles/flashrom/+/refs/heads/master 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]] | [[https://www.flashrom.org/GSoC Google Summer of Code]]</small> |
| | |} |
|
| |
|
| {| border="0" style="font-size: smaller"
| | |- |
| |- bgcolor="#6699dd" | | | width=50% style="vertical-align:top"| |
| ! align="left" | Vendor
| |
| ! align="left" | Southbridge
| |
| ! align="left" | Status
| |
|
| |
|
| |- bgcolor="#eeeeee" valign="top" | | {| |
| | ALi
| | |style="vertical-align:top"| |
| | M1533
| | X |
| | style="background:lime" | OK | | |style="vertical-align:top"| |
| |- bgcolor="#dddddd" valign="top"
| | '''<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> |
| | AMD | |
| | Geode™ CS5530/CS5530A
| |
| | style="background:lime" | OK | |
| |- bgcolor="#dddddd" valign="top"
| |
| | AMD
| |
| | Geode™ 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®
| |
| | ICH<sup>2</sup>
| |
| | style="background:yellow" | OK<sup>3</sup>
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | Intel®
| |
| | PIIX4/PIIX4E/PIIX4M
| |
| | 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:#dddddd" | ?
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | VIA
| |
| | VT82C686
| |
| | style="background:#dddddd" | ?
| |
| |} | | |} |
|
| |
|
| | valign="top"| | | |style="vertical-align:top"| |
| | |
| '''Mainboards which need special setup'''
| |
| | |
| {| border="0" style="font-size: smaller"
| |
| |- bgcolor="#6699dd"
| |
| ! align="left" | Vendor
| |
| ! align="left" | Mainboard
| |
| ! align="left" | Required option
| |
| ! align="left" | Status
| |
| | |
| |- bgcolor="#eeeeee" valign="top"
| |
| | agámi
| |
| | [http://agami.com/products/AIS6000/ Aruma/AIS6000]
| |
| | -m AGAMI:ARUMA
| |
| | style="background:lime" | OK
| |
| | |
| |- bgcolor="#dddddd" valign="top"
| |
| | ASUS
| |
| | A7V400-MX
| |
| | —
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | ASUS
| |
| | A7V8X-MX
| |
| | —
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | ASUS
| |
| | P5A
| |
| | -m asus:p5a
| |
| | style="background:lime" | OK
| |
| |- bgcolor="#dddddd" valign="top"
| |
| | |
| |- bgcolor="#eeeeee" valign="top"
| |
| | IBM
| |
| | [http://www-03.ibm.com/systems/x/rack/x3455/ x3455]
| |
| | -m ibm:x3455
| |
| | 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"
| |
| | VIA
| |
| | [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=81 EPIA-M]
| |
| | —
| |
| | style="background:lime" | OK<sup>5</sup>
| |
| |- bgcolor="#eeeeee" valign="top"
| |
| | VIA
| |
| | [http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=202 EPIA-MII]
| |
| | —
| |
| | style="background:lime" | OK<sup>5</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]] | [[Contact]] | [[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> |
| | * '''2023-02-08:''' [[Flashrom/1.3|flashrom 1.3 released]] |
| | * '''2022-03-08:''' flashrom participates in [[GSoC]] |
| | * '''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> Unsupported, disabled by default.<br /> | | <!-- * '''2009/mon/day:''' coreboot event at [[Link]] in somecity --> |
| <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.<br /> | | <!-- * '''2009/12/27:''' coreboot presentation at [http://events.ccc.de/congress/2009/ 26C3] in Berlin --> |
| <sup>3</sup> Identifying and reading chips seems to work, but there are [http://tracker.linuxbios.org/trac/LinuxBIOS/ticket/7 reports] that writing may not work on some mainboards.<br />
| |
| <sup>4</sup> Untested, but should work.<br />
| |
| <sup>5</sup> Might also work for other CLE266 based EPIAs.
| |
| </small> | | </small> |
|
| |
|
| == Installation ==
| |
|
| |
| === Requirements ===
| |
|
| |
| Flashrom requires the '''pciutils''' and '''zlib''' development packages in order to be built.
| |
|
| |
| In Debian unstable the respective packages are called '''pciutils-dev''' and '''zlib1g-dev'''.
| |
|
| |
| === Manual Installation ===
| |
|
| |
| $ svn co svn://linuxbios.org/repos/trunk/LinuxBIOSv2
| |
| $ cd LinuxBIOSv2/util/flashrom
| |
| $ make
| |
| $ sudo make install
| |
|
| |
| Or (as root):
| |
|
| |
| # make install
| |
|
| |
|
| === Debian ===
| | </td></tr></table> |
|
| |
|
| $ sudo apt-get install flashrom
| | __NOTOC__ |
| | __NOEDITSECTION__ |