summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-09-16 17:06:05 +0000
committerwdenk <wdenk>2003-09-16 17:06:05 +0000
commit4aeb251f90f3c13b9a3c68c4f296fa871c77f314 (patch)
tree4e15cd2c76d159a297429600cb23e4ac11980d97
parentacf98e7f3062921547516d87611f2ae9824808b9 (diff)
downloadu-boot-imx-4aeb251f90f3c13b9a3c68c4f296fa871c77f314.zip
u-boot-imx-4aeb251f90f3c13b9a3c68c4f296fa871c77f314.tar.gz
u-boot-imx-4aeb251f90f3c13b9a3c68c4f296fa871c77f314.tar.bz2
* Modify XLB arbiter priorities on MPC5200 so all devices use same
priority; configure critical interrupts to be handled like external interrupts
-rw-r--r--CHANGELOG4
-rw-r--r--config.mk2
-rw-r--r--cpu/mpc5xxx/cpu_init.c5
-rw-r--r--include/mpc5xxx.h7
4 files changed, 17 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b7fa446..acf5f9c 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 f73d6f4..51ca5f0 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 a33e250..c23d621 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 b38d7d4..49951f5 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)