aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
diff options
context:
space:
mode:
authorImre Kaloz <kaloz@openwrt.org>2008-08-07 20:11:16 +0000
committerImre Kaloz <kaloz@openwrt.org>2008-08-07 20:11:16 +0000
commit45bdf3402086ee7cbd9993caf098c7e808f42b27 (patch)
treeb63fdca0f105cee5f40dd9fc201633dcecf086ac /target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch
parent18e38f7ba7038a3ea7c77ad21ce5aaaf8374b335 (diff)
downloadupstream-45bdf3402086ee7cbd9993caf098c7e808f42b27.tar.gz
upstream-45bdf3402086ee7cbd9993caf098c7e808f42b27.tar.bz2
upstream-45bdf3402086ee7cbd9993caf098c7e808f42b27.zip
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 00000000000..10f17747bc1
--- /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;
+ }
+