summaryrefslogtreecommitdiff
path: root/cpu/mpc824x
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-03-06 00:02:04 +0000
committerwdenk <wdenk>2003-03-06 00:02:04 +0000
commit43d9616cffb4a130e1620e3e33fc9bc1bcabe399 (patch)
treeed55479a108ed16258d81be3e37d0edd74520520 /cpu/mpc824x
parent6069ff265362ef6239749b5f598b137f407b821e (diff)
* Patch by Robert Schwebel, 21 Jan 2003:
- Add support for Innokom board - Don't complain if "install" fails - README cleanup (remove duplicated lines) - Update PXA header files * Add documentation for existing POST code (doc/README.POST) * Patch by Laudney Ren, 15 Jan 2003: Fix handling of redundand environment in "tools/envcrc.c" * Patch by Detlev Zundel, 28 Feb 2003: Add bedbug support for 824x systems * Add support for 16 MB flash configuration of TRAB board * Patch by Erwin Rol, 27 Feb 2003: Add support for RTEMS * Add image information to README * Fix dual PCMCIA slot support (when running with just one slot populated) * Add VFD type detection to trab board * extend drivers/cs8900.c driver to synchronize ethaddr environment variable with value in the EEPROM
Diffstat (limited to 'cpu/mpc824x')
-rw-r--r--cpu/mpc824x/Makefile5
-rw-r--r--cpu/mpc824x/start.S2
-rw-r--r--cpu/mpc824x/traps.c15
3 files changed, 20 insertions, 2 deletions
diff --git a/cpu/mpc824x/Makefile b/cpu/mpc824x/Makefile
index 40447a163..743ced913 100644
--- a/cpu/mpc824x/Makefile
+++ b/cpu/mpc824x/Makefile
@@ -27,13 +27,16 @@ LIB = lib$(CPU).a
START = start.S drivers/i2c/i2c2.o
OBJS = traps.o cpu.o cpu_init.o interrupts.o speed.o \
- drivers/epic/epic1.o drivers/i2c/i2c1.o pci.o
+ drivers/epic/epic1.o drivers/i2c/i2c1.o pci.o bedbug_603e.o
all: .depend $(START) $(LIB)
$(LIB): $(OBJS)
$(AR) crv $@ $(OBJS) drivers/i2c/i2c2.o
+bedbug_603e.c:
+ ln -s ../mpc8260/bedbug_603e.c bedbug_603e.c
+
#########################################################################
.depend: Makefile $(START:.o=.S) $(OBJS:.o=.c)
diff --git a/cpu/mpc824x/start.S b/cpu/mpc824x/start.S
index 18b8e6126..7716240ed 100644
--- a/cpu/mpc824x/start.S
+++ b/cpu/mpc824x/start.S
@@ -336,7 +336,7 @@ _end_back:
STD_EXCEPTION(EXC_OFF_ITME, InstructionTransMiss, UnknownException)
STD_EXCEPTION(EXC_OFF_DLTME, DataLoadTransMiss, UnknownException)
STD_EXCEPTION(EXC_OFF_DSTME, DataStoreTransMiss, UnknownException)
- STD_EXCEPTION(EXC_OFF_IABE, InstructionBreakpoint, UnknownException)
+ STD_EXCEPTION(EXC_OFF_IABE, InstructionBreakpoint, DebugException)
STD_EXCEPTION(EXC_OFF_SMIE, SysManageInt, UnknownException)
STD_EXCEPTION(0x1500, Reserved5, UnknownException)
STD_EXCEPTION(0x1600, Reserved6, UnknownException)
diff --git a/cpu/mpc824x/traps.c b/cpu/mpc824x/traps.c
index 11f51c250..956244f38 100644
--- a/cpu/mpc824x/traps.c
+++ b/cpu/mpc824x/traps.c
@@ -176,6 +176,21 @@ UnknownException(struct pt_regs *regs)
_exception(0, regs);
}
+#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG)
+extern void do_bedbug_breakpoint(struct pt_regs *);
+#endif
+
+void
+DebugException(struct pt_regs *regs)
+{
+
+ printf("Debugger trap at @ %lx\n", regs->nip );
+ show_regs(regs);
+#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG)
+ do_bedbug_breakpoint( regs );
+#endif
+}
+
/* Probe an address by reading. If not present, return -1, otherwise
* return 0.
*/