Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45417master
parent
1f70f452cc
commit
6bc743ef6f
@ -0,0 +1,24 @@ |
|||||||
|
From: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
Date: Mon, 13 Apr 2015 15:54:04 +0200
|
||||||
|
Subject: [PATCH] bgmac: fix MAC soft-reset bit for corerev > 4
|
||||||
|
|
||||||
|
Only core revisions older than 4 use BGMAC_CMDCFG_SR_REV0
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
||||||
|
+++ b/drivers/net/ethernet/broadcom/bgmac.h
|
||||||
|
@@ -198,9 +198,9 @@
|
||||||
|
#define BGMAC_CMDCFG_TAI 0x00000200
|
||||||
|
#define BGMAC_CMDCFG_HD 0x00000400 /* Set if in half duplex mode */
|
||||||
|
#define BGMAC_CMDCFG_HD_SHIFT 10
|
||||||
|
-#define BGMAC_CMDCFG_SR_REV0 0x00000800 /* Set to reset mode, for other revs */
|
||||||
|
-#define BGMAC_CMDCFG_SR_REV4 0x00002000 /* Set to reset mode, only for core rev 4 */
|
||||||
|
-#define BGMAC_CMDCFG_SR(rev) ((rev == 4) ? BGMAC_CMDCFG_SR_REV4 : BGMAC_CMDCFG_SR_REV0)
|
||||||
|
+#define BGMAC_CMDCFG_SR_REV0 0x00000800 /* Set to reset mode, for core rev 0-3 */
|
||||||
|
+#define BGMAC_CMDCFG_SR_REV4 0x00002000 /* Set to reset mode, for core rev >= 4 */
|
||||||
|
+#define BGMAC_CMDCFG_SR(rev) ((rev >= 4) ? BGMAC_CMDCFG_SR_REV4 : BGMAC_CMDCFG_SR_REV0)
|
||||||
|
#define BGMAC_CMDCFG_ML 0x00008000 /* Set to activate mac loopback mode */
|
||||||
|
#define BGMAC_CMDCFG_AE 0x00400000
|
||||||
|
#define BGMAC_CMDCFG_CFE 0x00800000
|
@ -0,0 +1,28 @@ |
|||||||
|
From: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
Date: Mon, 13 Apr 2015 15:56:26 +0200
|
||||||
|
Subject: [PATCH] bgmac: reset all 4 GMAC cores on init
|
||||||
|
|
||||||
|
On a BCM4709 based device, I found that GMAC cores may be enabled at
|
||||||
|
probe time, but only become usable after a full reset.
|
||||||
|
Disable cores before re-enabling them to ensure that they are properly
|
||||||
|
reset.
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
|
+++ b/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
|
@@ -1609,8 +1609,11 @@ static int bgmac_probe(struct bcma_devic
|
||||||
|
ns_core = bcma_find_core_unit(core->bus,
|
||||||
|
BCMA_CORE_MAC_GBIT,
|
||||||
|
ns_gmac);
|
||||||
|
- if (ns_core && !bcma_core_is_enabled(ns_core))
|
||||||
|
- bcma_core_enable(ns_core, 0);
|
||||||
|
+ if (!ns_core)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ bcma_core_disable(ns_core, 0);
|
||||||
|
+ bcma_core_enable(ns_core, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue