[U-Boot] [PATCH] blackfin: Initialize the EMAC VLAN with proper default value

Sonic Zhang sonic.adi at gmail.com
Wed Jan 22 09:28:28 CET 2014


From: Aaron Wu <Aaron.Wu at analog.com>

EMAC_VLANx regs is not properly initiallized in u-boot, once it's overwrite in the
kernel when DSA enabled, hot reset will lead to bringing up EMAC fail in u-boot.

Signed-off-by: Aaron Wu <Aaron.Wu at analog.com>
Signed-off-by: Sonic Zhang <sonic.zhang at analog.com>
---
 arch/blackfin/include/asm/mach-common/bits/emac.h |    3 +++
 drivers/net/bfin_mac.c                            |    2 ++
 2 files changed, 5 insertions(+)

diff --git a/arch/blackfin/include/asm/mach-common/bits/emac.h b/arch/blackfin/include/asm/mach-common/bits/emac.h
index 7a43bbb..4c9bc9d 100644
--- a/arch/blackfin/include/asm/mach-common/bits/emac.h
+++ b/arch/blackfin/include/asm/mach-common/bits/emac.h
@@ -217,4 +217,7 @@
 #define	TX_GE1024_CNT	0x00200000	/* 1024-Max-Byte TX Frames Sent */
 #define	TX_ABORT_CNT	0x00400000	/* TX Frames Aborted */
 
+/*default value for EMAC_VLANx reg*/
+#define EMAC_VLANX_DEF_VAL 0xFFFF
+
 #endif
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 0ffd59d..42e208c 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -259,6 +259,8 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode)
 		*opmode = 0;
 
 	bfin_write_EMAC_MMC_CTL(RSTC | CROLL);
+	bfin_write_EMAC_VLAN1(EMAC_VLANX_DEF_VAL);
+	bfin_write_EMAC_VLAN2(EMAC_VLANX_DEF_VAL);
 
 	/* Initialize the TX DMA channel registers */
 	bfin_write_DMA2_X_COUNT(0);
-- 
1.7.9.5



More information about the U-Boot mailing list