summaryrefslogtreecommitdiffstats
path: root/target/linux/ppc40x/patches
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ppc40x/patches')
-rw-r--r--target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch6
-rw-r--r--target/linux/ppc40x/patches/002-disable_emac_loopback_mode.patch25
2 files changed, 27 insertions, 4 deletions
diff --git a/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch b/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch
index 450a150ca..78c94d88d 100644
--- a/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch
+++ b/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch
@@ -1,7 +1,5 @@
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/kilauea.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/kilauea.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/kilauea.dts
+--- a/arch/powerpc/boot/dts/kilauea.dts
++++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -138,15 +138,15 @@
#size-cells = <1>;
partition@0 {
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;
+ }
+