summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/tg3/tg3_hw.c
diff options
context:
space:
mode:
authorKevin Tran2013-03-04 22:56:24 +0100
committerMichael Brown2013-03-04 22:56:24 +0100
commite27803e40f9134ca7c05c7bf94f3ccd9bbb8edb4 (patch)
treecb09804c2a886084766be1ecde0747efcb19b0e6 /src/drivers/net/tg3/tg3_hw.c
parent[netdevice] Separate VLAN support from presence of VLAN-supporting drivers (diff)
downloadipxe-e27803e40f9134ca7c05c7bf94f3ccd9bbb8edb4.tar.gz
ipxe-e27803e40f9134ca7c05c7bf94f3ccd9bbb8edb4.tar.xz
ipxe-e27803e40f9134ca7c05c7bf94f3ccd9bbb8edb4.zip
[tg3] Fix various tg3 issues
Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/tg3/tg3_hw.c')
-rw-r--r--src/drivers/net/tg3/tg3_hw.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/drivers/net/tg3/tg3_hw.c b/src/drivers/net/tg3/tg3_hw.c
index 9ae007c2..3a481aba 100644
--- a/src/drivers/net/tg3/tg3_hw.c
+++ b/src/drivers/net/tg3/tg3_hw.c
@@ -322,7 +322,7 @@ static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
}
if ((nic_cfg & NIC_SRAM_DATA_CFG_APE_ENABLE) &&
- tg3_flag(tp, 5750_PLUS))
+ tg3_flag(tp, ENABLE_ASF))
tg3_flag_set(tp, ENABLE_APE);
if (cfg2 & (1 << 17))
@@ -466,6 +466,7 @@ int tg3_get_invariants(struct tg3 *tp)
tg3_flag_set(tp, 5717_PLUS);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 ||
+ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766 ||
tg3_flag(tp, 5717_PLUS))
tg3_flag_set(tp, 57765_PLUS);
@@ -1465,6 +1466,13 @@ static int tg3_chip_reset(struct tg3 *tp)
tw32(TG3_CPMU_CLCK_ORIDE, val & ~CPMU_CLCK_ORIDE_MAC_ORIDE_EN);
}
+ if (tg3_flag(tp, CPMU_PRESENT)) {
+ tw32(TG3_CPMU_D0_CLCK_POLICY, 0);
+ val = tr32(TG3_CPMU_CLCK_ORIDE_EN);
+ tw32(TG3_CPMU_CLCK_ORIDE_EN,
+ val | CPMU_CLCK_ORIDE_MAC_CLCK_ORIDE_EN);
+ }
+
return 0;
}