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. Below 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
Signed-off-by: Bill Paul wpaul@windriver.com
Index: nicintel_spi.c =================================================================== --- nicintel_spi.c (revision 1765) +++ nicintel_spi.c (working copy) @@ -17,14 +17,20 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
/* - * Datasheet: + * Datasheets: * PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developer's Manual * 82540EP/EM, 82541xx, 82544GC/EI, 82545GM/EM, 82546GB/EB, and 82547xx * http://download.intel.com/design/network/manuals/8254x_GBe_SDM.pdf + * + * PCIe GbE Controllers Open Source Software Developer's Manual + * http://www.intel.com/content/www/us/en/ethernet-controllers/pcie-gbe- controllers-open-source-manual.html + * + * Intel 82574 Gigabit Ethernet Controller Family Datasheet + * http://www.intel.com/content/www/us/en/ethernet-controllers/82574l-gbe- controller-datasheet.html */
#include <stdlib.h> #include <unistd.h> #include "flash.h" @@ -70,10 +76,11 @@ const struct dev_entry nics_intel_spi[] = { {PCI_VENDOR_ID_INTEL, 0x105e, OK, "Intel", "82571EB Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x1076, OK, "Intel", "82541GI Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x107c, OK, "Intel", "82541PI Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x10b9, OK, "Intel", "82572EI Gigabit Ethernet Controller"}, + {PCI_VENDOR_ID_INTEL, 0x10d3, OK, "Intel", "82574L Gigabit Ethernet Controller"},
{0}, };
static void nicintel_request_spibus(void)
2014-03-13 22:59 GMT+01:00 Bill Paul wpaul@windriver.com:
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. Below 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
Signed-off-by: Bill Paul wpaul@windriver.com
This patch is Acked-by: Idwer Vollering vidwer@gmail.com when you adjust the PDF URL in a follow-up patch, see below.
Index: nicintel_spi.c
--- nicintel_spi.c (revision 1765) +++ nicintel_spi.c (working copy) @@ -17,14 +17,20 @@
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA */
/*
- Datasheet:
- Datasheets:
- PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developer's
Manual
- 82540EP/EM, 82541xx, 82544GC/EI, 82545GM/EM, 82546GB/EB, and 82547xx
- http://download.intel.com/design/network/manuals/8254x_GBe_SDM.pdf
Would you change the hyperlink above to point to http://www.intel.com/content/www/us/en/ethernet-controllers/pci-pci-x-family... That way it is inline with the other comments.
- PCIe GbE Controllers Open Source Software Developer's Manual
controllers-open-source-manual.html
- Intel 82574 Gigabit Ethernet Controller Family Datasheet
http://www.intel.com/content/www/us/en/ethernet-controllers/82574l-gbe- controller-datasheet.html */
#include <stdlib.h> #include <unistd.h> #include "flash.h" @@ -70,10 +76,11 @@ const struct dev_entry nics_intel_spi[] = { {PCI_VENDOR_ID_INTEL, 0x105e, OK, "Intel", "82571EB Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x1076, OK, "Intel", "82541GI Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x107c, OK, "Intel", "82541PI Gigabit Ethernet Controller"}, {PCI_VENDOR_ID_INTEL, 0x10b9, OK, "Intel", "82572EI Gigabit Ethernet Controller"},
{PCI_VENDOR_ID_INTEL, 0x10d3, OK, "Intel", "82574L Gigabit Ethernet
Controller"},
{0},
};
static void nicintel_request_spibus(void)
--
============================================================================= -Bill Paul (510) 749-2329 | Senior Member of Technical Staff, wpaul@windriver.com | Master of Unix-Fu - Wind River Systems
============================================================================= "I put a dollar in a change machine. Nothing changed." - George Carlin
=============================================================================
flashrom mailing list flashrom@flashrom.org http://www.flashrom.org/mailman/listinfo/flashrom