[flashrom] [PATCH] Add support for Intel 82599 10G NICs
Ed Swierk
eswierk at skyportsystems.com
Wed Dec 3 03:18:47 CET 2014
The Intel 82599 series of 10G Ethernet controllers has a bit-banged SPI
interface that's register-compatible with the one in the 1G controllers,
except the register addresses are shifted up by 0x10000. See
http://www.intel.com/content/www/us/en/ethernet-controllers/82599-10-gbe-controller-datasheet.html.
I tested this with a board that has the 0x10fc device and a Micron M25P40
SPI flash chip. I filled in device IDs for other 82599 devices per
https://www-ssl.intel.com/content/www/us/en/ethernet-controllers/82599-10-gbe-controller-spec-update.html
and lifted the name strings from the PCI SIG device ID registry.
Signed-off-by: Ed Swierk <eswierk at skyportsystems.com>
===================================================================
diff --git a/trunk/nicintel_spi.c b/trunk/nicintel_spi.c
--- a/trunk/nicintel_spi.c (revision 1855)
+++ b/trunk/nicintel_spi.c (working copy)
@@ -80,6 +80,13 @@
{PCI_VENDOR_ID_INTEL, 0x10b9, OK, "Intel", "82572EI Gigabit Ethernet Controller"},
{PCI_VENDOR_ID_INTEL, 0x10d3, OK, "Intel", "82574L Gigabit Ethernet Controller"},
+ {PCI_VENDOR_ID_INTEL, 0x10f7, NT, "Intel", "10 Gigabit BR KX4 Dual Port Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x10f8, NT, "Intel", "82599 10 Gigabit Dual Port Backplane Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x10f9, NT, "Intel", "82599 10 Gigabit Dual Port Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x10fb, NT, "Intel", "82599ES 10-Gigabit SFI/SFP+ Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x10fc, OK, "Intel", "82599 10 Gigabit Dual Port Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x1557, NT, "Intel", "82599 10 Gigabit Network Connection"},
+
{0},
};
@@ -183,7 +190,13 @@
if (!io_base_addr)
return 1;
- nicintel_spibar = rphysmap("Intel Gigabit NIC w/ SPI flash", io_base_addr, MEMMAP_SIZE);
+ if (dev->device_id < 0x10f0) {
+ nicintel_spibar = rphysmap("Intel Gigabit NIC w/ SPI flash", io_base_addr,
+ MEMMAP_SIZE);
+ } else {
+ nicintel_spibar = rphysmap("Intel 10 Gigabit NIC w/ SPI flash", io_base_addr + 0x10000,
+ MEMMAP_SIZE);
+ }
if (nicintel_spibar == ERROR_PTR)
return 1;
More information about the flashrom
mailing list