summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2013-01-24 15:02:28 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2013-01-24 15:02:28 +0100
commitf4db277923672fd0fb3ca0bb73b5e27e5c21e929 (patch)
treee666298aee3168720009bf7dfa8e64905cbdb14e
parent6f53b9349273a13ef02d1a5ad7e24ab1db900e7a (diff)
igb: apalis_t30: no NVM and hard-coded MAC address hacks
Springville with a blank Flash uses a different PCI ID. Hack the driver to load despite i210 data sheet claiming tools only, not for driver. Hack the driver to skip NVM validation on Apalis T30 for now. Hack the driver to use a hard-code MAC address on Apalis T30 for now.
-rw-r--r--drivers/net/igb/e1000_hw.h5
-rw-r--r--drivers/net/igb/igb_main.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index 99f8c7756295..2c7a3e130dc8 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -63,7 +63,12 @@ struct e1000_hw;
#define E1000_DEV_ID_I350_FIBER 0x1522
#define E1000_DEV_ID_I350_SERDES 0x1523
#define E1000_DEV_ID_I350_SGMII 0x1524
+#ifdef CONFIG_MACH_APALIS_T30
+/* Hack: Springville with a blank Flash (tools only, not for driver) */
+#define E1000_DEV_ID_I210_COPPER 0x1531
+#else
#define E1000_DEV_ID_I210_COPPER 0x1533
+#endif
#define E1000_DEV_ID_I210_COPPER_OEM1 0x1534
#define E1000_DEV_ID_I210_COPPER_IT 0x1535
#define E1000_DEV_ID_I210_FIBER 0x1536
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 6d6998edb778..220183dfe33f 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -2006,6 +2006,8 @@ static int __devinit igb_probe(struct pci_dev *pdev,
* known good starting state */
hw->mac.ops.reset_hw(hw);
+#ifndef CONFIG_MACH_APALIS_T30
+/* Hack: skip NVM validation on Apalis T30 for now */
/*
* make sure the NVM is good , i211 parts have special NVM that
* doesn't contain a checksum
@@ -2017,11 +2019,22 @@ static int __devinit igb_probe(struct pci_dev *pdev,
goto err_eeprom;
}
}
+#endif /* CONFIG_MACH_APALIS_T30 */
/* copy the MAC address out of the NVM */
if (hw->mac.ops.read_mac_addr(hw))
dev_err(&pdev->dev, "NVM Read Error\n");
+#ifdef CONFIG_MACH_APALIS_T30
+ /* Hack: hard-code MAC address on Apalis T30 for now */
+ hw->mac.addr[0] = 0x00;
+ hw->mac.addr[1] = 0x0e;
+ hw->mac.addr[2] = 0xc6;
+ hw->mac.addr[3] = 0x87;
+ hw->mac.addr[4] = 0x72;
+ hw->mac.addr[5] = 0x01;
+#endif /* CONFIG_MACH_APALIS_T30 */
+
memcpy(netdev->dev_addr, hw->mac.addr, netdev->addr_len);
memcpy(netdev->perm_addr, hw->mac.addr, netdev->addr_len);