[PATCH] [POWERPC] AMCC Kilauea (405EX): Disable EMAC loopback mode

Stefan Roese sr at denx.de
Fri Feb 22 19:32:12 EST 2008


405EX(r) has SDR0_MFR[E0CS/E1CS] set after reset. This selects
the internal loopback mode. Clear these bits so that both EMACs
don't use loopback mode as default.

Signed-off-by: Stefan Roese <sr at denx.de>
---
I'm not sure if this should be done here in the board platform code,
or in the newemac driver or perhaps in some code common for 405EX.

Any thoughts on this welcome.

Thanks.

 arch/powerpc/platforms/40x/kilauea.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/40x/kilauea.c b/arch/powerpc/platforms/40x/kilauea.c
index f9206a7..b5456cc 100644
--- a/arch/powerpc/platforms/40x/kilauea.c
+++ b/arch/powerpc/platforms/40x/kilauea.c
@@ -1,7 +1,7 @@
 /*
  * Kilauea board specific routines
  *
- * Copyright 2007 DENX Software Engineering, Stefan Roese <sr at denx.de>
+ * Copyright 2007-2008 DENX Software Engineering, Stefan Roese <sr at denx.de>
  *
  * Based on the Walnut code by
  * Josh Boyer <jwboyer at linux.vnet.ibm.com>
@@ -20,6 +20,8 @@
 #include <asm/time.h>
 #include <asm/uic.h>
 #include <asm/pci-bridge.h>
+#include <asm/dcr.h>
+#include <asm/dcr-regs.h>
 
 static __initdata struct of_device_id kilauea_of_bus[] = {
 	{ .compatible = "ibm,plb4", },
@@ -45,6 +47,13 @@ static int __init kilauea_probe(void)
 
 	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
 
+	/*
+	 * 405EX(r) has SDR0_MFR[E0CS/E1CS] set after reset. This selects
+	 * the internal loopback mode. Clear these bits so that both EMACs
+	 * don't use loopback mode as deafult.
+	 */
+	mtdcri(SDR0, SDR0_MFR, mfdcri(SDR0, SDR0_MFR) & ~0x0c000000);
+
 	return 1;
 }
 
-- 
1.5.4.2




More information about the Linuxppc-dev mailing list