diff --git a/CHANGELOG b/CHANGELOG index b7fa4469cd..acf5f9c00c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,10 @@ Changes for U-Boot 1.0.0: ====================================================================== +* Modify XLB arbiter priorities on MPC5200 so all devices use same + priority; configure critical interrupts to be handled like external + interrupts + * Make IPB clock on MGT5100/MPC5200 configurable in board config file; go back to 66 MHz for stability diff --git a/config.mk b/config.mk index f73d6f4c90..51ca5f0a6b 100644 --- a/config.mk +++ b/config.mk @@ -102,7 +102,7 @@ RELFLAGS= $(PLATFORM_RELFLAGS) DBGFLAGS= -g #-DDEBUG OPTFLAGS= -Os #-fomit-frame-pointer ifndef LDSCRIPT -#LDSCRIPT := board/$(BOARDDIR)/u-boot.lds.debug +#LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds endif OBJCFLAGS += --gap-fill=0xff diff --git a/cpu/mpc5xxx/cpu_init.c b/cpu/mpc5xxx/cpu_init.c index a33e2501e7..c23d621ec0 100644 --- a/cpu/mpc5xxx/cpu_init.c +++ b/cpu/mpc5xxx/cpu_init.c @@ -161,6 +161,9 @@ void cpu_init_f (void) addecr |= 0x02; *(vu_long *)MPC5XXX_CDM_CFG = addecr; #endif + /* Configure the XLB Arbiter */ + *(vu_long *)MPC5XXX_XLBARB_MPRIEN = 0xff; + *(vu_long *)MPC5XXX_XLBARB_MPRIVAL = 0x11111111; #endif } @@ -177,6 +180,8 @@ int cpu_init_r (void) #endif *(vu_long *)MPC5XXX_ICTL_CRIT |= 0x0001ffff; *(vu_long *)MPC5XXX_ICTL_EXT &= ~0x00000f00; + /* route critical ints to normal ints */ + *(vu_long *)MPC5XXX_ICTL_EXT |= 0x00000001; #if (CONFIG_COMMANDS & CFG_CMD_NET) && defined(CONFIG_MPC5XXX_FEC) /* load FEC microcode */ diff --git a/include/mpc5xxx.h b/include/mpc5xxx.h index b38d7d4a0c..49951f5972 100644 --- a/include/mpc5xxx.h +++ b/include/mpc5xxx.h @@ -151,6 +151,13 @@ #define MPC5XXX_CS_DEADCYCLE (MPC5XXX_LPB + 0x002c) #endif +#if defined(CONFIG_MPC5200) +/* XLB Arbiter registers */ +#define MPC5XXX_XLBARB_CFG (MPC5XXX_XLBARB + 0x40) +#define MPC5XXX_XLBARB_MPRIEN (MPC5XXX_XLBARB + 0x64) +#define MPC5XXX_XLBARB_MPRIVAL (MPC5XXX_XLBARB + 0x68) +#endif + /* GPIO registers */ #define MPC5XXX_GPS_PORT_CONFIG (MPC5XXX_GPIO + 0x0000)