I recently found a need to re-flash the option ROM on an Intel 82574L gigabit ethernet card. These are a bit more common these days than the 82571 and 82572 and relatively cheap. It turns out this works with flashrom, but it doesn't detect the PCI ID for the device out of the box.
Attached is a patch add it to nicintel_spi.c. Note that there are probably other devices in the PRO/1000 family that would work too.
Here's an example run with the latest code from svn:
[...] flashrom v0.9.7-unknown on FreeBSD 10.0-RELEASE (amd64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. Found Winbond flash chip "W25X40" (512 kB, SPI) on nicintel_spi. Reading old flash chip contents... done. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED. [...]
FreeBSD detects the device as follows:
em1@pci0:2:0:0: class=0x020000 card=0xa01f8086 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' device = '82574L Gigabit Network Connection' class = network subclass = ethernet
I also added links to the Intel PCIe ethernet controllers programming manual and the 82574 datasheet.
Incidentally, thanks to everyone involved for their work in this project. It helped me out of a bit of a jam.
-Bill