diff options
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.patch | 25 |
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 0000000000..10f17747bc --- /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; + } + |