summaryrefslogtreecommitdiff
path: root/cpu/mpc824x
diff options
context:
space:
mode:
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 40447a16371..743ced91396 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 18b8e612608..7716240edbf 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 11f51c25011..956244f3864 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.
*/