From ffe39a5884f82b5ebd395352788fe69db8d9292a Mon Sep 17 00:00:00 2001
From: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Date: Sun, 21 Feb 2016 17:48:34 +0100
Subject: [PATCH] nicintel_spi: add support for Intel I350 cards.
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
---
nicintel_spi.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
@@ -91,6 +91,13 @@ const struct dev_entry nics_intel_spi[] = {
{PCI_VENDOR_ID_INTEL, 0x10fc, OK, "Intel", "82599 10 Gigabit XAUI/BX4 Dual Port Network Controller"},
{PCI_VENDOR_ID_INTEL, 0x1517, NT, "Intel", "82599 10 Gigabit KR Network Controller"},
{PCI_VENDOR_ID_INTEL, 0x151c, NT, "Intel", "82599 10 Gigabit TN Network Controller"},
+
+ {PCI_VENDOR_ID_INTEL, 0x1520, NT, "Intel", "I350 Ethernet Controller Virtual Function"},
+ {PCI_VENDOR_ID_INTEL, 0x1521, NT, "Intel", "I350 Gigabit Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x1522, NT, "Intel", "I350 Gigabit Fiber Network Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x1523, NT, "Intel", "I350 Gigabit Backplane Connection"},
+ {PCI_VENDOR_ID_INTEL, 0x1524, NT, "Intel", "I350 Gigabit Connection"},
+
{PCI_VENDOR_ID_INTEL, 0x1529, NT, "Intel", "82599 10 Gigabit Dual Port Network Controller with FCoE"},
{PCI_VENDOR_ID_INTEL, 0x152a, NT, "Intel", "82599 10 Gigabit Dual Port Backplane Controller with FCoE"},
{PCI_VENDOR_ID_INTEL, 0x1557, NT, "Intel", "82599 10 Gigabit SFI Network Controller"},
@@ -198,7 +205,10 @@ int nicintel_spi_init(void)
if (!io_base_addr)
return 1;
- if (dev->device_id < 0x10d8) {
+ /* 10 Gb devices have the registers at offset 0x10000 (see the "Register(s) Summary" table in the
+ * "Programming Interface" chapter of the respective datasheet). Unfortunately there is no easy way to
+ * distinguish them apart from the device ID and we can not easily tag the devices in nics_intel_spi. */
+ if (dev->device_id < 0x10d8 || (dev->device_id >= 0x1520 && dev->device_id <= 0x1524)) {
nicintel_spibar = rphysmap("Intel Gigabit NIC w/ SPI flash", io_base_addr,
MEMMAP_SIZE);
} else {
--
Kind regards, Stefan Tauner