diff --git a/CHANGELOG b/CHANGELOG index b7fa4469cd9bbac731d7fe912641c96807486838..acf5f9c00cb92c3d772cd98463084bb4e369ff0f 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 f73d6f4c90903fb3608701c56a1af345a3a579c9..51ca5f0a6b32c27ffdfbc9ab7bc54e7e0736194c 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 a33e2501e77d7d5ffb9881361db8e7ce674cc7c5..c23d621ec0bc44e6302066885c2dc004134a2544 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 b38d7d4a0c28a78564de1895fe7dff0111b52e2e..49951f5972e938a4952910f9235416dce47a1244 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)