diff --git a/cpu/ppc4xx/cpu_init.c b/cpu/ppc4xx/cpu_init.c index 52d46502313cd0df100de0418d64c05ff90578c6..9bf180fcdc93a8940a6f6f00e706473fc1874eb5 100644 --- a/cpu/ppc4xx/cpu_init.c +++ b/cpu/ppc4xx/cpu_init.c @@ -124,6 +124,7 @@ int cpu_init_r (void) bd_t *bd = gd->bd; unsigned long reg; + uint pvr = get_pvr(); /* * Write Ethernetaddress into on-chip register @@ -143,6 +144,15 @@ int cpu_init_r (void) reg = reg << 8; reg |= bd->bi_enetaddr[5]; out32 (EMAC_IAL, reg); + + /* + * Set edge conditioning circuitry on PPC405GPr + * for compatibility to existing PPC405GP designs. + */ + if ((pvr & 0xfffffff0) == (PVR_405GPR_RA & 0xfffffff0)) { + mtdcr(ecr, 0x60606000); + } + #endif /* CONFIG_405GP */ return (0); }