From flashrom
Jump to navigation Jump to search

I've no code in flashrom yet, but I made a flashrom compatible arduino programmer and participated in testing and documentation.

My hardware

Mainboard based programmers

Device or programmer Flash chip Test result
Asus M4A785T-M mainboard W25x80 (DIP8)
  • Yes with the BIOS
  • Yes with coreboot
Asrock E350M1 A25L032
  • Yes from coreboot
  • Untested from the BIOS
Lenovo X60 MX25L1605D/MX25L1608D
  • Yes with coreboot.
Lenovo X60
  • Yes with coreboot.
Lenovo X60T MX25L1605D/MX25L1608D
  • Yes with coreboot
Lenovo T60 MX25L1605D/MX25L1608D
  • Yes with coreboot
PCEngines Alix.1c
  • Yes with coreboot
  • Yes with the recovery LPC dongle
Asus N71JQ
  • Requires some bit flippings(with ifdtool and an external programmer) in the flash descriptor.
  • Not tested internally.

External programmers

Device or programmer Status
Arduino uno (serprog)
  • Requires a 5v->3.3v level shifter for most current flash chips.
  • Issues with the 8u2/8u3 when using the serial port at high speed.
Arduino duemillanove (serprog)
  • Requires a 5v->3.3v level shifter for most current flash chips.
  • Works fine otherwise.
Arduino Due ( no support for it yet )
  • 3.3v level output on SPI.
  • Not working: No support for it yet.
openmoko debug board (ft2232_spi:type=openmoko)
  • Works fine
3com PCI NIC (10b7:9200) (nic3com)
  • Works fine
Sata SII PCI card
  • writing and erasing worked fine.
Really old PCI realtek cards
  • No parallel chip to test
Some GNU/Linux embedded boards (linux_spi)
  • Backporting some mainline kernel patches is required on some very old (2.6.35) kernel for omap3.
  • Works fine otherwise
An atahpt PCI card
  • Didn't work when adding the PCI IDS, but the atahpt is known not to work according to the mailing list.
old AGP Nvidia card
  • Worked with a patch (documented below)
Nvidia geforce 210 PCIe 16x card
  • didn't work when adding the PIC IDs

I've also the following hardware:

  • pomona clip for recovering my x60
  • some chips(2MB SO8(currently soldered), 16MB SO8)

Work in progress for the wiki

Don't try that, it's dangerous!!!!

Howto(Dangerous, not ready for the wiki)

Howto flash ipxe on an 3com network card

Clone ipxe:

$ git clone git://

Then locate your network card with:

# lspci -nnnn

it will look like that:

00:0c.0 Ethernet controller [0200]: 3Com Corporation 3c905C-TX/TX-M [Tornado] [10b7:9200] (rev 78)

Note the pci ids that are here: [10b7:9200]

Ajust your settings in src/config/local/

Then build ipxe:

cd ipxe/src/
make bin/10b79200.rom

Then backup the existing rom:

cd ../../
flashrom -pnic3com -r 3com_rom_backup.rom

The flashchip size is written in the output of that command.

Then generate a rom that is exactly the size of your rom chip:

dd if=/dev/zero of=bin/10b79200.rom.64k bs=1 count=65536
dd if=bin/10b79200.rom of=bin/10b79200.rom.64k conv=notrunc