Flashrom: Difference between revisions

From flashrom
Jump to navigation Jump to search
m (Ohloh has moved to OpenHub years ago. Nobody noticed. or cared.)
(87 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[[File:Dip32 in socket.jpg|120px|right]]
{{DISPLAYTITLE:flashrom}}<!-- it is called flashrom after all. -->
[[File:Plcc32 in socket.jpg|120px|right]]
<table width="100%" valign="top"><tr valign="top"><td width="80%">
[[File:Dip8 in socket.jpg|120px|right]]
[[File:Soic8 chip.jpg|120px|right]]
[[File:Soldered tsop40.jpg|120px|right]]
 
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#eeeeee; align:right; border:1px solid #aabbcc; width: 85%">
'''flashrom''' is a utility for identifying, reading, writing, verifying and erasing flash chips. It's often used to flash BIOS/EFI/coreboot/firmware images.


<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>
* Supports more than 195 flash chips, 75 chipsets, 130 mainboards, and 17 devices (PCI or USB) which can be used as external programmers.
* 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, and more)
* 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.
* 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 bootable floppy disk, bootable CD-ROM or other media needed.
* No keyboard or monitor needed. Simply reflash remotely via SSH.
* No keyboard or monitor needed. Simply reflash remotely via SSH.
Line 18: Line 14:
* '''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.
* '''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.
* '''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.
* '''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>
</small>
</div>


<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 ===


= 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 [[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.
 
<div style="margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#ff6666; align:right; border:1px solid #000000;">
'''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 [http://www.freenode.net/ irc.freenode.net]) or [[Mailinglist|email]]. Please allow for a few hours until someone responds on IRC, we're all volunteers.
</div>
</div>


= Supported hardware =
{| cellspacing=5 cellpadding=15 border=0 valign="top" width=100%
| width=50% style="vertical-align:top"|


See [[Supported hardware]].
{|
|style="vertical-align:top"|
X
|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>
|}


= Download & installation =
|style="vertical-align:top"|


See [[Downloads]].
{|
|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>
|}


= FAQ / Troubleshooting =
|-
| width=50% style="vertical-align:top"|


See [[FAQ]].
{|
|style="vertical-align:top"|
X
|style="vertical-align: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>
|}


= Flash chip overview =
|style="vertical-align:top"|


See [[Technology]].
{|
|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>
|}


= External flashers/programmers =
|}
</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>


'''Silicon Image (SiI) SATA/IDE controllers:'''
<!--
 
'''<span style="font-variant:small-caps; font-size:120%">[[Current events|Upcoming Events]]</span>'''<hr />
Flashrom supports some SiI SATA controllers to reflash the flash attached to these controller cards, but it is also possible to use these cards to reflash other chips which fit in there electrically. Please note that the small number of address lines connected to the chip may make accessing large chips impossible.
-->
 
<!-- List of upcoming events (remove events after they have taken place). -->
'''3Com network cards:'''
<small>
 
<!-- * '''2009/mon/day:''' coreboot event at [[Link]] in somecity -->
Flashrom supports some [[Flashrom/NIC3Com|3Com network cards]] to reflash the flash attached to these cards, but it is also possible to use these cards to reflash other chips which fit in there electrically. Please note that the small number of address lines connected to the chip may make accessing large chips impossible.
<!-- * '''2009/12/27:''' coreboot presentation at [http://events.ccc.de/congress/2009/ 26C3] in Berlin -->
 
</small>
'''FTDI FT2232H/FT4232H-based USB-to-serial controllers:'''
 
Flashrom supports usage of external FTDI [[Flashrom/FT2232SPI Programmer|FT2232H/FT4232H-based USB-to-serial controllers]] as SPI flashers.
 
= Useful information =
 
== Random notes ==
Flash chip handling is still mostly a black art, so we've collected useful snippets from email and IRC conversations on our [[Flashrom/Random notes|Random notes]] page:
 
* What numbers do FWH/LPC chips tend to start with?
* Dirty little secrets why chips are not found although the chipset and the chip are supported
* Patch submission
* Command set secrets
* Writing or reusing a probe function
* flashchips.c rules
* Finding GPIOs for board enable routines
 
== Open development ==
 
We welcome contributions from every human being, corporate entity or club.
 
If you want to contribute patches or test reports, please send them to our flashrom [[Mailinglist|mailing list]]. For one-off test reports, you don't have to subscribe, but if you want to contribute patches, we strongly recommend you subscribe to our mailing list to make communication easier.
 
Flashrom development is volunteer-driven, and our developers tackle the features they're interested in. Most developers have pretty long personal TODO lists, so if you want to suggest a feature, please make sure you have all the datasheets and/or programming guides needed for that feature (preferably without NDA). For testing, our developers usually need physical access to the hardware in question. It also helps to be friendly to the developers.
 
== Paid support/development ==
 
Some companies and individual developers offer paid flashrom support and development if you desire a particular feature nobody is working on.
 
== Donations ==


We've been asked repeatedly about a way to donate to the flashrom project. Donations are a great way to show your appreciation for the project (and it may have saved you loads of money for dedicated flash programmer devices). Since this usually involves a lot of paperwork, we're not accepting donations to the project (yet).


Many of our developers do appreciate flashrom related hardware donations, though.
</td></tr></table>


In the meantime, we ask you to spread the word about flashrom to your friends, to colleagues at work, to the local computer user group and to the readers of your blog.
__NOTOC__
__NOEDITSECTION__

Revision as of 09:21, 25 November 2021

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 libera.chat, 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 | Contact | Donations
News