Flashrom: Difference between revisions

From flashrom
Jump to navigation Jump to search
(→‎Supported devices: Update to 'flashrom -z' output of r614.)
 
Line 1,047: Line 1,047:


|}
|}
== Supported programmers ==
This is a list of supported PCI devices flashrom can use as programmer:
{| border="0" valign="top"
| valign="top"|
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Device
! align="left" | PCI IDs
! align="left" | Status
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-TX || 10b7:9055 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-T4 || 10b7:9001 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T (TPO) || 10b7:9004 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T/10BASE2/AUI (COMBO) || 10b7:9005 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T/10BASE2 (TPC) || 10b7:9006 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-FL || 10b7:900a || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-FX || 10b7:905a || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C905B: Cyclone 10/100/BNC || 10b7:9058 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C905C: EtherLink 10/100 PCI (TX) || 10b7:9200 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C980C: EtherLink Server 10/100 PCI (TX) || 10b7:9805 || {{?2}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || PCI0680 Ultra ATA-133 Host Ctrl || 1095:0680 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3112 [SATALink/SATARaid] SATA Ctrl || 1095:3112 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3114 [SATALink/SATARaid] SATA Ctrl || 1095:3114 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3124 PCI-X SATA Ctrl || 1095:3124 || {{?}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3132 SATA Raid II Ctrl || 1095:3132 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3512 [SATALink/SATARaid] SATA Ctrl || 1095:3512 || {{?}}
|}
== Board notes ==
* ASI MB-5BLMP: Used in the IGEL WinNET III thin client.
* MSI MS-7260 (K9N Neo): Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot.
* ASUS M2A-VM: See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html.
* BCOM WinNET100: Used in the IGEL-316 thin client.
* ASUS A8V-E SE: See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html.


== Supported laptops/notebooks ==
== Supported laptops/notebooks ==
Line 1,173: Line 1,116:
<sup>3</sup> Seems to (partially) work at first, but one block/sector cannot be written which then leaves you with a bricked laptop. Maybe this can be investigated and fixed in software later.
<sup>3</sup> Seems to (partially) work at first, but one block/sector cannot be written which then leaves you with a bricked laptop. Maybe this can be investigated and fixed in software later.
</small>
</small>
== Supported programmers ==
This is a list of supported PCI devices flashrom can use as programmer:
{| border="0" valign="top"
| valign="top"|
{| border="0" style="font-size: smaller" valign="top"
|- bgcolor="#6699dd"
! align="left" | Vendor
! align="left" | Device
! align="left" | PCI IDs
! align="left" | Status
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-TX || 10b7:9055 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-T4 || 10b7:9001 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T (TPO) || 10b7:9004 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T/10BASE2/AUI (COMBO) || 10b7:9005 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-T/10BASE2 (TPC) || 10b7:9006 || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-FL || 10b7:900a || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C90xB: PCI 10BASE-FX || 10b7:905a || {{?2}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C905B: Cyclone 10/100/BNC || 10b7:9058 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C905C: EtherLink 10/100 PCI (TX) || 10b7:9200 || {{OK}}
|- bgcolor="#eeeeee" valign="top"
| 3COM || 3C980C: EtherLink Server 10/100 PCI (TX) || 10b7:9805 || {{?2}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || PCI0680 Ultra ATA-133 Host Ctrl || 1095:0680 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3112 [SATALink/SATARaid] SATA Ctrl || 1095:3112 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3114 [SATALink/SATARaid] SATA Ctrl || 1095:3114 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3124 PCI-X SATA Ctrl || 1095:3124 || {{?}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3132 SATA Raid II Ctrl || 1095:3132 || {{OK}}
|- bgcolor="#dddddd" valign="top"
| Silicon Image || SiI 3512 [SATALink/SATARaid] SATA Ctrl || 1095:3512 || {{?}}
|}
== Board notes ==
* ASI MB-5BLMP: Used in the IGEL WinNET III thin client.
* MSI MS-7260 (K9N Neo): Interestingly flashrom does not work when the vendor BIOS is booted, but it ''does'' work flawlessly when the machine is booted with coreboot.
* ASUS M2A-VM: See http://www.coreboot.org/pipermail/coreboot/2007-September/025281.html.
* BCOM WinNET100: Used in the IGEL-316 thin client.
* ASUS A8V-E SE: See http://www.coreboot.org/pipermail/coreboot/2007-October/026496.html.


= Download & Installation =
= Download & Installation =

Revision as of 00:27, 20 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: 191

Vendor Device Size / KB Type Status
  Probe Read Write Erase
AMD Am29F010A/B 128 Parallel OK OK OK OK
AMD Am29F002(N)BB 256 Non-SPI ? ? ? ?
AMD Am29F002(N)BT 256 Non-SPI OK OK OK OK
AMD Am29F016D 2048 Non-SPI ? ? ? ?
AMD Am29F040B 512 Non-SPI OK OK OK OK
AMD Am29F080B 1024 Non-SPI ? ? ? ?
AMD Am29LV040B 512 Non-SPI ? ? ? ?
AMD Am29LV081B 1024 Non-SPI ? ? ? ?
ASD AE49F2008 256 Non-SPI ? ? ? ?
Atmel AT25DF021 256 SPI ? ? ? ?
Atmel AT25DF041A 512 SPI ? ? ? ?
Atmel AT25DF081 1024 SPI ? ? ? ?
Atmel AT25DF161 2048 SPI ? ? ? ?
Atmel AT25DF321 4096 SPI OK OK OK OK
Atmel AT25DF321A 4096 SPI ? ? ? ?
Atmel AT25DF641 8192 SPI ? ? ? ?
Atmel AT25F512B 64 SPI ? ? ? ?
Atmel AT25FS010 128 SPI ? ? ? ?
Atmel AT25FS040 512 SPI ? ? ? ?
Atmel AT26DF041 512 SPI ? ? ? ?
Atmel AT26DF081A 1024 SPI ? ? ? ?
Atmel AT26DF161 2048 SPI ? ? ? ?
Atmel AT26DF161A 2048 SPI ? ? ? ?
Atmel AT26F004 512 SPI ? ? ? ?
Atmel AT29C512 64 Non-SPI OK OK OK OK
Atmel AT29C010A 128 Parallel OK OK OK ?
Atmel AT29C020 256 Parallel OK OK OK OK
Atmel AT29C040A 512 Parallel ? ? ? ?
Atmel AT45CS1282 16896 SPI ? ? ? ?
Atmel AT45DB011D 128 SPI ? ? ? ?
Atmel AT45DB021D 256 SPI ? ? ? ?
Atmel AT45DB041D 512 SPI ? ? ? ?
Atmel AT45DB081D 1024 SPI ? ? ? ?
Atmel AT45DB161D 2048 SPI ? ? ? ?
Atmel AT45DB321C 4224 SPI ? ? ? ?
Atmel AT45DB321D 4096 SPI ? ? ? ?
Atmel AT45DB642D 8192 SPI ? ? ? ?
Atmel AT49BV512 64 Parallel OK OK OK OK
Atmel AT49F002(N) 256 Parallel ? ? ? ?
Atmel AT49F002(N)T 256 Parallel OK OK OK OK
AMIC A25L40P 512 SPI OK OK OK OK
AMIC A29002B 256 Non-SPI ? ? ? ?
AMIC A29002T 256 Non-SPI OK OK OK OK
AMIC A29040B 512 Parallel OK OK ? ?
AMIC A49LF040A 512 LPC OK OK OK OK
EMST F49B002UA 256 Parallel ? ? ? ?
Eon EN25B05 64 SPI ? ? ? ?
Eon EN25B10 128 SPI ? ? ? ?
Eon EN25B20 256 SPI ? ? ? ?
Eon EN25B40 512 SPI ? ? ? ?
Eon EN25B80 1024 SPI ? ? ? ?
Eon EN25B16 2048 SPI ? ? ? ?
Eon EN25B32 4096 SPI ? ? ? ?
Eon EN25B64 8192 SPI ? ? ? ?
Eon EN25D16 2048 SPI ? ? ? ?
Eon EN25F05 64 SPI ? ? ? ?
Eon EN25F10 128 SPI ? ? ? ?
Eon EN25F20 256 SPI ? ? ? ?
Eon EN25F40 512 SPI ? ? ? ?
Eon EN25F80 1024 SPI ? ? ? ?
Eon EN25F16 2048 SPI ? ? ? ?
Eon EN25F32 4096 SPI ? ? ? ?
EON EN29F002(A)(N)B 256 Parallel ? ? ? ?
EON EN29F002(A)(N)T 256 Parallel OK OK OK OK
Fujitsu MBM29F004BC 512 Non-SPI ? ? ? ?
Vendor Device Size / KB Type Status
  Probe Read Write Erase
Fujitsu MBM29F004TC 512 Non-SPI ? ? ? ?
Fujitsu MBM29F400BC 512 Non-SPI ? ? ? ?
Fujitsu MBM29F400TC 512 Non-SPI ? ? ? ?
Intel 28F001BX-B 128 Parallel ? ? ? ?
Intel 28F001BX-T 128 Parallel OK OK ? ?
Intel 82802AB 512 FWH OK OK OK OK
Intel 82802AC 1024 FWH OK OK OK OK
Macronix MX25L512 64 SPI ? ? ? ?
Macronix MX25L1005 128 SPI ? ? ? ?
Macronix MX25L2005 256 SPI ? ? ? ?
Macronix MX25L4005 512 SPI OK OK OK OK
Macronix MX25L8005 1024 SPI OK OK OK OK
Macronix MX25L1605 2048 SPI OK OK OK OK
Macronix MX25L1635D 2048 SPI ? ? ? ?
Macronix MX25L3205 4096 SPI OK OK OK OK
Macronix MX25L3235D 4096 SPI ? ? ? ?
Macronix MX25L6405 8192 SPI ? ? ? ?
Macronix MX25L12805 16384 SPI ? ? ? ?
Macronix MX29F002B 256 Non-SPI ? ? ? ?
Macronix MX29F002T 256 Non-SPI OK OK OK OK
Macronix MX29LV040C 512 Non-SPI OK OK ? ?
Numonyx M25PE10 128 SPI ? ? ? ?
Numonyx M25PE20 256 SPI ? ? ? ?
Numonyx M25PE40 256 SPI ? ? ? ?
Numonyx M25PE80 1024 SPI OK OK OK OK
Numonyx M25PE16 2048 SPI ? ? ? ?
PMC Pm25LV010 128 SPI ? ? ? ?
PMC Pm25LV016B 2048 SPI ? ? ? ?
PMC Pm25LV020 256 SPI ? ? ? ?
PMC Pm25LV040 512 SPI ? ? ? ?
PMC Pm25LV080B 1024 SPI ? ? ? ?
PMC Pm25LV512 64 SPI ? ? ? ?
PMC Pm29F0002T 256 Parallel OK OK OK OK
PMC Pm29F0002B 256 Parallel ? ? ? ?
PMC Pm39LV010 128 Non-SPI OK OK OK OK
PMC Pm49FL002 256 Non-SPI OK OK OK OK
PMC Pm49FL004 512 Non-SPI OK OK OK OK
Sharp LHF00L04 1024 Non-SPI ? ? ? ?
Spansion S25FL016A 2048 SPI OK OK OK OK
SST SST25VF016B 2048 SPI OK OK OK OK
SST SST25VF032B 4096 SPI OK OK OK OK
SST SST25VF040B 512 SPI ? ? ? ?
SST SST25VF040.REMS 512 SPI OK OK ? ?
SST SST25VF040B.REMS 512 SPI OK OK ? ?
SST SST25VF080B 1024 SPI OK OK OK OK
SST SST28SF040A 512 Non-SPI ? ? ? ?
SST SST29EE010 128 Non-SPI OK OK OK OK
SST SST29LE010 128 Non-SPI ? ? ? ?
SST SST29EE020A 256 Non-SPI OK OK OK OK
SST SST29LE020 256 Non-SPI ? ? ? ?
SST SST39SF010A 128 Non-SPI OK OK OK OK
SST SST39SF020A 256 Non-SPI OK OK OK OK
SST SST39SF040 512 Non-SPI OK OK OK OK
SST SST39VF512 64 Non-SPI OK OK OK OK
SST SST39VF010 128 Non-SPI OK OK OK OK
SST SST39VF020 256 Non-SPI OK OK OK OK
SST SST39VF040 512 Non-SPI OK ? ? ?
SST SST39VF080 1024 Non-SPI ? ? ? ?
SST SST49LF002A/B 256 Non-SPI OK OK OK OK
SST SST49LF003A/B 384 Non-SPI ? ? ? ?
SST SST49LF004A/B 512 Non-SPI OK OK OK OK
SST SST49LF004C 512 Non-SPI ? ? ? ?
SST SST49LF008A 1024 Non-SPI OK OK OK OK
SST SST49LF008C 1024 Non-SPI ? ? ? ?
Vendor Device Size / KB Type Status
  Probe Read Write Erase
SST SST49LF016C 2048 Non-SPI OK OK OK OK
SST SST49LF020 256 LPC OK OK ? ?
SST SST49LF020A 256 LPC ? ? ? ?
SST SST49LF040 512 LPC OK OK OK OK
SST SST49LF040B 512 Non-SPI OK OK OK OK
SST SST49LF080A 1024 Non-SPI OK OK OK OK
SST SST49LF160C 2048 Non-SPI OK OK OK OK
ST M25P05-A 64 SPI ? ? ? ?
ST M25P10-A 128 SPI ? ? ? ?
ST M25P20 256 SPI ? ? ? ?
ST M25P40 512 SPI ? ? ? ?
ST M25P40-old 512 SPI ? ? ? ?
ST M25P80 1024 SPI ? ? ? ?
ST M25P16 2048 SPI OK OK OK OK
ST M25P32 4096 SPI OK OK OK OK
ST M25P64 8192 SPI ? ? ? ?
ST M25P128 16384 SPI ? ? ? ?
ST M29F002B 256 Non-SPI ? ? ? ?
ST M29F002T/NT 256 Non-SPI OK OK OK OK
ST M29F040B 512 Non-SPI OK OK OK OK
ST M29F400BT 512 Non-SPI ? ? ? ?
ST M29W010B 128 Non-SPI ? ? ? ?
ST M29W040B 512 Non-SPI ? ? ? ?
ST M50FLW040A 512 Non-SPI ? ? ? ?
ST M50FLW040B 512 Non-SPI ? ? ? ?
ST M50FLW080A 1024 Non-SPI OK OK OK OK
ST M50FLW080B 1024 Non-SPI ? ? ? ?
ST M50FW002 256 Non-SPI ? ? ? ?
ST M50FW016 2048 Non-SPI ? ? ? ?
ST M50FW040 512 Non-SPI OK OK OK OK
ST M50FW080 1024 Non-SPI OK OK OK OK
ST M50LPW116 2048 Non-SPI ? ? ? ?
SyncMOS S29C31004T 512 Non-SPI ? ? ? ?
SyncMOS S29C51001T 128 Non-SPI ? ? ? ?
SyncMOS S29C51002T 256 Non-SPI OK OK OK OK
SyncMOS S29C51004T 512 Non-SPI ? ? ? ?
TI TMS29F002RB 256 Non-SPI ? ? ? ?
TI TMS29F002RT 256 Non-SPI ? ? ? ?
Winbond W25x10 128 SPI ? ? ? ?
Winbond W25x20 256 SPI ? ? ? ?
Winbond W25x40 512 SPI OK OK OK OK
Winbond W25x80 1024 SPI OK OK OK OK
Winbond W29C011 128 Non-SPI OK OK OK OK
Winbond W29C020C 256 Parallel OK OK OK OK
Winbond W29C040P 512 Parallel ? ? ? ?
Winbond W29EE011 128 Non-SPI OK OK OK OK
Winbond W39V040A 512 LPC OK OK OK OK
Winbond W39V040B 512 LPC OK OK OK OK
Winbond W39V040C 512 LPC OK OK OK OK
Winbond W39V040FA 512 FWH OK OK OK OK
Winbond W39V080A 1024 LPC OK OK OK OK
Winbond W49F002U 256 Non-SPI OK OK OK OK
Winbond W49V002A 256 LPC OK OK OK OK
Winbond W49V002FA 256 FWH ? ? ? ?
Winbond W39V080FA 1024 FWH OK OK OK OK
Winbond W39V080FA (dual mode) 512 FWH ? ? ? ?

Supported chipsets

Total amount of supported chipsets: 78

Vendor Southbridge PCI IDs Status
ALi M1533 10b9:1533 OK
AMD AMD-768 1022:7440 OK
AMD AMD8111 1022:7468 OK
AMD CS5530(A) 1078:0100 OK
AMD CS5536 1022:2080 OK
AMD Elan SC520 1022:3000 OK
AMD SB600 1002:438d OK
AMD SB700 1002:439d OK
AMD SC1100 100b:0510 ?
ATI SB400 1002:4377 OK
Broadcom HT-1000 1166:0205 OK
Intel 440MX 8086:7198 OK
Intel 6300ESB 8086:25a1 OK
Intel 631xESB/632xESB/3100 8086:2670 OK
Intel EP80579 8086:5031 OK
Intel ICH0 8086:2420 OK
Intel ICH10 8086:3a18 OK
Intel ICH10D 8086:3a1a OK
Intel ICH10DO 8086:3a14 OK
Intel ICH10R 8086:3a16 OK
Intel ICH2 8086:2440 OK
Intel ICH2-M 8086:244c OK
Intel ICH3-M 8086:248c OK
Intel ICH3-S 8086:2480 OK
Intel ICH4/ICH4-L 8086:24c0 OK
Intel ICH4-M 8086:24cc OK
Intel ICH5/ICH5R 8086:24d0 OK
Intel ICH6/ICH6R 8086:2640 OK
Vendor Southbridge PCI IDs Status
Intel ICH6-M 8086:2641 OK
Intel ICH7DH 8086:27b0 OK
Intel ICH7/ICH7R 8086:27b8 OK
Intel ICH7M 8086:27b9 OK
Intel ICH7MDH 8086:27bd OK
Intel ICH 8086:2410 OK
Intel ICH8DH 8086:2812 OK
Intel ICH8DO 8086:2814 OK
Intel ICH8/ICH8R 8086:2810 OK
Intel ICH8M 8086:2815 OK
Intel ICH8M-E 8086:2811 OK
Intel ICH9 8086:2918 OK
Intel ICH9DH 8086:2912 OK
Intel ICH9DO 8086:2914 OK
Intel ICH9M 8086:2919 OK
Intel ICH9M-E 8086:2917 OK
Intel ICH9R 8086:2916 OK
Intel MPIIX 8086:1234 ?
Intel PIIX3 8086:7000 OK
Intel PIIX4/4E/4M 8086:7110 OK
Intel PIIX 8086:122e OK
NVIDIA CK804 10de:0050 OK
NVIDIA CK804 10de:0051 OK
NVIDIA NForce2 10de:0060 OK
NVIDIA CK804 10de:00d3 OK
NVIDIA MCP51 10de:0260 ?
NVIDIA MCP51 10de:0261 ?
Vendor Southbridge PCI IDs Status
NVIDIA MCP51 10de:0262 ?
NVIDIA MCP51 10de:0263 ?
NVIDIA MCP55 10de:0360 OK
NVIDIA MCP55 10de:0361 OK
NVIDIA MCP55 10de:0362 OK
NVIDIA MCP55 10de:0363 OK
NVIDIA MCP55 10de:0364 OK
NVIDIA MCP55 10de:0365 OK
NVIDIA MCP55 10de:0366 OK
NVIDIA MCP55 10de:0367 OK
NVIDIA MCP67 10de:0548 OK
SiS SiS5595 1039:0008 OK
SiS SiS630 1039:0630 ?
VIA CX700 1106:8324 OK
VIA VT8231 1106:8231 ?
VIA VT8233 1106:3074 ?
VIA VT8235 1106:3177 OK
VIA VT8237 1106:3227 OK
VIA VT8237A 1106:3337 OK
VIA VT8237S 1106:3372 OK
VIA VX800 1106:8353 OK
VIA VT82C586A/B 1106:0586 OK
VIA VT82C686A/B 1106:0686 ?

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: 74

Vendor Mainboard Status
Abit AX8 OK
Advantech PCM-5820 OK
ASI MB-5BLMP OK
ASRock A770CrossFire OK
ASUS A7N8X Deluxe OK
ASUS A7N8X-E Deluxe OK
ASUS A7V400-MX OK
ASUS A7V8X-MX OK
ASUS A8N-E OK
ASUS A8NE-FM/S OK
ASUS A8N-SLI OK
ASUS A8N-SLI Premium OK
ASUS A8V-E Deluxe OK
ASUS A8V-E SE OK
ASUS M2A-MX OK
ASUS M2A-VM OK
ASUS M2N-E OK
ASUS M2V OK
ASUS P2B OK
ASUS P2B-D OK
ASUS P2B-DS OK
ASUS P2B-F OK
ASUS P2L97-S OK
ASUS P5B-Deluxe OK
ASUS P6T Deluxe V2 OK
A-Trend ATC-6220 OK
Vendor Mainboard Status
BCOM WinNET100 OK
GIGABYTE GA-6BXC OK
GIGABYTE GA-6BXDU OK
GIGABYTE GA-6ZMA OK
Intel EP80759 OK
Jetway J7F4K1G5D-PB OK
MSI MS-6570 (K7N2) OK
MSI MS-7065 OK
MSI MS-7168 (Orion) OK
MSI MS-7236 (945PL Neo3) OK
MSI MS-7255 (P4M890M) OK
MSI MS-7345 (P35 Neo2-FIR) OK
NEC PowerMate 2000 OK
PC Engines Alix.1c OK
PC Engines Alix.2c2 OK
PC Engines Alix.2c3 OK
PC Engines Alix.3c3 OK
PC Engines Alix.3d3 OK
RCA RM4100 OK
Sun Blade x6250 OK
Supermicro H8QC8 OK
Thomson IP1000 OK
T-Online S-100 OK
Tyan iS5375-1U OK
Tyan S1846 OK
Vendor Mainboard Status
Tyan S2881 OK
Tyan S2882 OK
Tyan S2882-D OK
Tyan S2891 OK
Tyan S2892 OK
Tyan S2895 OK
Tyan S3095 OK
Tyan S5180 OK
Tyan S5191 OK
Tyan S5197 OK
Tyan S5211 OK
Tyan S5211-1U OK
Tyan S5220 OK
Tyan S5375 OK
Tyan S5376G2NR/S5376WAG2NR OK
Tyan S5377 OK
Tyan S5397 OK
VIA EPIA-EX15000G OK
VIA EPIA-LN OK
VIA EPIA-NX15000G OK
VIA NAB74X0 OK
VIA pc2500e OK
VIA VB700X OK

Known good (with write-enable code in flashrom)

Total amount of boards: 38

Vendor Mainboard Required option Status
Acorp 6A815EPD -m acorp:6a815epd OK
agami Aruma -m AGAMI:ARUMA OK
Albatron PM266A OK
Artec Group DBE61 -m artecgroup:dbe61 OK
Artec Group DBE62 -m artecgroup:dbe62 OK
ASUS A7V8-MX SE OK
ASUS P4B266 OK
ASUS P5A -m asus:p5a OK
BioStar P4M80-M4 OK
EPoX EP-8K5A2 OK
EPoX EP-BX3 -m epox:ep-bx3 OK
GIGABYTE GA-2761GXDK -m gigabyte:2761gxdk OK
GIGABYTE GA-7VT600 OK
GIGABYTE GA-K8N-SLI OK
Vendor Mainboard Required option Status
GIGABYTE GA-M57SLI-S4 -m gigabyte:m57sli OK
GIGABYTE GA-M61P-S3 -m gigabyte:m61p OK
GIGABYTE GA-MA78G-DS3H OK
GIGABYTE GA-MA78GM-S2H OK
GIGABYTE GA-MA790FX-DQ6 -m gigabyte:ma790fx-dq6 OK
HP DL145 G3 -m hp:dl145_g3 OK
IBM x3455 -m ibm:x3455 OK
Intel D201GLY OK
IWILL DK8-HTX -m iwill:dk8_htx OK
Kontron 986LCD-M -m kontron:986lcd-m OK
Kontron 986LCD-M -m kontron:986lcd-m OK
Mitac 6513WU OK
MSI MS-6590 (KT4 Ultra) -m msi:kt4ultra OK
Vendor Mainboard Required option Status
MSI MS-6702E (K8T Neo2-F) OK
MSI MS-6712 (KT4V) -m msi:kt4v OK
MSI MS-7046 OK
MSI MS-7135 (K8N Neo3) -m msi:k8n-neo3 OK
Soyo SY-7VCA OK
Tyan S2498 (Tomcat K7M) OK
VIA EPIA-CN OK
VIA EPIA M/MII/... OK
VIA EPIA-N/NL -m via:epia-n OK
VIA EPIA SP OK
VIA PC3500G -m via:pc3500g OK

Not supported (yet)

Total amount of boards: 21

Vendor Mainboard Status
Abit IS-10 No
ASUS M3N78 Pro No
ASUS MEW-AM No
ASUS MEW-VM No
ASUS P3B-F No
ASUS P5B No
ASUS P5BV-M No
Biostar M6TBA No
Boser HS-6637 No
Vendor Mainboard Status
DFI 855GME-MGF No
Elitegroup K7VTA3 No
FIC VA-502 No
GIGABYTE GA-7ZM No
MSI MS-6178 No
MSI MS-7260 (K9N Neo) No
PCCHIPS M537DMA33 No
Soyo SY-5VD No
Vendor Mainboard Status
Sun Fire x4150 No
Sun Fire x4200 No
Sun Fire x4540 No
Sun Fire x4600 No

Supported laptops/notebooks

In general, flashing laptops is more difficult because

  • Laptops often use the flash chip for stuff besides the BIOS.
  • Laptops often have special protection stuff which has to be handled by flashrom.
  • Laptops often use flash translation circuits which need extra drivers in flashrom.

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).

Known-good

Vendor Model Status
Lenovo 3000 V100 TF05Cxx OK

Known-bad

Vendor Model Status
Acer Aspire One No1
Dell Latitude CPi A366XT No2
IBM/Lenovo Thinkpad T40p No3
IBM/Lenovo 240 No

1 http://www.coreboot.org/pipermail/coreboot/2009-May/048041.html
2 The laptop immediately powers off if you try to hot-swap the chip. It's not yet tested if write/erase would work on this laptop.
3 Seems to (partially) work at first, but one block/sector cannot be written which then leaves you with a bricked laptop. Maybe this can be investigated and fixed in software later.

Supported programmers

This is a list of supported PCI devices flashrom can use as programmer:

Vendor Device PCI IDs Status
3COM 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-TX 10b7:9055 OK
3COM 3C90xB: PCI 10/100 Mbps; shared 10BASE-T/100BASE-T4 10b7:9001 ?
3COM 3C90xB: PCI 10BASE-T (TPO) 10b7:9004 ?
3COM 3C90xB: PCI 10BASE-T/10BASE2/AUI (COMBO) 10b7:9005 ?
3COM 3C90xB: PCI 10BASE-T/10BASE2 (TPC) 10b7:9006 ?
3COM 3C90xB: PCI 10BASE-FL 10b7:900a ?
3COM 3C90xB: PCI 10BASE-FX 10b7:905a ?
3COM 3C905B: Cyclone 10/100/BNC 10b7:9058 OK
3COM 3C905C: EtherLink 10/100 PCI (TX) 10b7:9200 OK
3COM 3C980C: EtherLink Server 10/100 PCI (TX) 10b7:9805 ?
Silicon Image PCI0680 Ultra ATA-133 Host Ctrl 1095:0680 OK
Silicon Image SiI 3112 [SATALink/SATARaid] SATA Ctrl 1095:3112 OK
Silicon Image SiI 3114 [SATALink/SATARaid] SATA Ctrl 1095:3114 OK
Silicon Image SiI 3124 PCI-X SATA Ctrl 1095:3124 ?
Silicon Image SiI 3132 SATA Raid II Ctrl 1095:3132 OK
Silicon Image SiI 3512 [SATALink/SATARaid] SATA Ctrl 1095:3512 ?

Board notes

Download & Installation

If you just want to browse the source code, please go to http://code.coreboot.org/p/flashrom/source/tree/HEAD/trunk.

Requirements:

  • pciutils development package (pciutils-dev/libpci-dev/pciutils-devel, depending on OS/distribution)
  • zlib development package (zlib1g-dev/zlib-devel, depending on OS/distribution)
  • subversion (if you checkout the source and build manually)

Manual Installation From Source:

$ svn co svn://coreboot.org/flashrom/trunk flashrom
$ cd flashrom
$ make
$ sudo make install

Binary Packages:

  • Debian: sudo aptitude install flashrom
  • Fedora: sudo yum install flashrom
  • Gentoo: emerge flashrom
  • Mandriva: urpmi flashrom
  • openSUSE: yast -i coreboot-utils
  • T2 SDE
    • Installation from source: Emerge-Pkg flashrom
    • Installation of binaries: mine -i flashrom-0.9.0.tar.bz2
  • FreeBSD: cd /usr/ports/sysutils/flashrom && make install clean
  • Windows: There is a Windows port of the flashrom utility. Download the latest version: DarmawanMappatutu_Salihun.tar.gz.

Usage

Please see the flashrom(8) manpage.

Fully testing flashrom chip/southbridge/mainboard support

See this page for instructions on how to test flashrom properly (this may be risky, make sure you have a working backup flash chip).

Flashrom Live CD

Flashrom Live CD

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 (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 logo, BIOS version, serial number and copyright notice.

DIP32: Dual In-line Package, 32 pins

A rectangular black plastic block with 16 pins along each of the two longer sides of the package (32 pins in total). DIP32 chips can be socketed which means they are detachable from the mainboard using physical force. Since they haven't been moved in and out of the socket very much (yet, hehe) they can appear to be quite difficult to release from the socket. One way to remove a DIP32 chip from a socket is by prying a thin screwdriver in between the plastic package and the socket, along the shorter sides where there are no pins, and then gently bending the screwdriver to push the chip upwards, away from the mainboard. Alternate between the two sides to avoid bending the pins, and don't touch any of the pins with the screwdriver (see FAQ about ESD, electro-static discharge). If the chip is soldered directly to the mainboard, it has to be desoldered in order to be reprogrammed outside the mainboard. If you do this, it's a good idea to solder a socket to the mainboard instead, to ease any future experiments.

PLCC32: Plastic Leaded Chip Carrier, 32 pins

Black plastic block again, but this one is much more square. PLCC32 was becoming the standard for mainboards after DIP32 chips because of it's smaller physical size. PLCC can also be socketed or soldered directly to the mainboard. Socketed PLCC32 chips can be removed using a special PLCC removal tool', or using a piece of nylon line tied in a loop around the chip and pulled swiftly straight up, or bending/prying using small screwdrivers if one is careful. PLCC32 sockets are often fragile so the screwdriver approach is not recommended. While the nylon line method sounds strange it works well. Desoldering PLCC32 can be painful without specialized desoldering equipment particularly because PLCC32 chips have leads on all four sides of the package, but it's certainly doable.

DIP8: Dual In-line Package, 8 pins

SO8/SOIC8: Small-Outline Integrated Circuit, 8 pins

TSOP: Thin Small-Outline Package

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's not trivial and a reasonable amount of soldering skills are required.

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.

Here's an attempt to create a marketing language -> chip type mapping:

  • 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.

If you're not sure about whether a device is LPC or FWH, look at the read/write cycle definitions.

FWH
Clock Cycle Field Name Field contents Comments
1 START 1101/1110 1101 for READ, 1110 for WRITE.
2 IDSEL 0000 to 1111 IDSEL value to be shifted out to the chip.
3-9 IMADDR YYYY The address to be read/written. 7 cycles total == 28 bits.
10+ ... ... ...
LPC
Clock Cycle Field Name Field contents Comments
1 START 0000 ...
2 CYCLETYPE+DIRECTION 010X/011X 010X for READ, 011X for WRITE. X means "reserved".
3-10 ADDRESS YYYY The address to be read/written. 8 cycles total == 32 bits.
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.