summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2010-08-15 22:57:50 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2010-08-15 22:57:50 +0000
commit93933a7b6569b9be50f409ca3f70c39f802d5ee4 (patch)
treef36daf778c496bff5e9ea8be4ecfc08e1ae50413 /sys
parent64f7df68af2747ca0a2db9ff28d465a80ba1d1e4 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/bge/if_bge.c11
-rw-r--r--sys/dev/bge/if_bgereg.h1
2 files changed, 5 insertions, 7 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 5e76ef744314..c889ea3ce7b7 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -3143,7 +3143,7 @@ bge_reset(struct bge_softc *sc)
* powered up in D0 uninitialized.
*/
if (BGE_IS_5705_PLUS(sc))
- reset |= 0x04000000;
+ reset |= BGE_MISCCFG_GPHY_PD_OVERRIDE;
/* Issue global reset */
write_op(sc, BGE_MISC_CFG, reset);
@@ -3272,11 +3272,6 @@ bge_reset(struct bge_softc *sc)
DELAY(10);
}
- if (sc->bge_flags & BGE_FLAG_PCIE) {
- reset = bge_readmem_ind(sc, 0x7C00);
- bge_writemem_ind(sc, 0x7C00, reset | (1 << 25));
- }
-
/* Fix up byte swapping. */
CSR_WRITE_4(sc, BGE_MODE_CTL, BGE_DMA_SWAP_OPTIONS |
BGE_MODECTL_BYTESWAP_DATA);
@@ -3301,7 +3296,9 @@ bge_reset(struct bge_softc *sc)
/* XXX: Broadcom Linux driver. */
if (sc->bge_flags & BGE_FLAG_PCIE &&
- sc->bge_chipid != BGE_CHIPID_BCM5750_A0) {
+ sc->bge_chipid != BGE_CHIPID_BCM5750_A0 &&
+ sc->bge_asicrev != BGE_ASICREV_BCM5785) {
+ /* Enable Data FIFO protection. */
val = CSR_READ_4(sc, 0x7C00);
CSR_WRITE_4(sc, 0x7C00, val | (1 << 25));
}
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h
index 4e751495172b..6664d5b7e567 100644
--- a/sys/dev/bge/if_bgereg.h
+++ b/sys/dev/bge/if_bgereg.h
@@ -1823,6 +1823,7 @@
#define BGE_MISCCFG_BOARD_ID_5788 0x00010000
#define BGE_MISCCFG_BOARD_ID_5788M 0x00018000
#define BGE_MISCCFG_EPHY_IDDQ 0x00200000
+#define BGE_MISCCFG_GPHY_PD_OVERRIDE 0x04000000
#define BGE_32BITTIME_66MHZ (0x41 << 1)