--- a/arch/powerpc/platforms/40x/kilauea.c +++ b/arch/powerpc/platforms/40x/kilauea.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include static __initdata struct of_device_id kilauea_of_bus[] = { { .compatible = "ibm,plb4", }, @@ -46,6 +48,13 @@ static int __init kilauea_probe(void) ppc_pci_set_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; }