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-gbe-controllers-software-dev-manual.html instead? That way it is inline with the other comments.
 
+ *
+ * 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)

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