summaryrefslogtreecommitdiffstats
path: root/target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
diff options
context:
space:
mode:
authorkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-08-07 20:11:16 +0000
committerkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-08-07 20:11:16 +0000
commite5845142cef7cffc6957bad2a1eca7a8c50ce2f4 (patch)
treeb63fdca0f105cee5f40dd9fc201633dcecf086ac /target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
parent9c609b5b3bfb41c7317db1a8a0e2848adb563489 (diff)
upgrade ppc40x to 2.6.26.2 as well
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12243 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch')
-rw-r--r--target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch b/target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
new file mode 100644
index 000000000..10f17747b
--- /dev/null
+++ b/target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
@@ -0,0 +1,25 @@
+--- a/arch/powerpc/platforms/40x/kilauea.c
++++ b/arch/powerpc/platforms/40x/kilauea.c
+@@ -21,6 +21,8 @@
+ #include <asm/uic.h>
+ #include <asm/pci-bridge.h>
+ #include <asm/ppc4xx.h>
++#include <asm/dcr.h>
++#include <asm/dcr-regs.h>
+
+ static __initdata struct of_device_id kilauea_of_bus[] = {
+ { .compatible = "ibm,plb4", },
+@@ -46,6 +48,13 @@
+
+ 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;
+ }
+