]> git.sur5r.net Git - u-boot/blobdiff - cpu/mpc85xx/traps.c
kgdb: cpu/mpc* cpu/74xx: include kgdb.h when needed
[u-boot] / cpu / mpc85xx / traps.c
index 2381fb0654c09c4752b12c155a69d315a6a824e6..10108d86e3343e7d4d0f7a25c814383b7db50cfb 100644 (file)
 
 #include <common.h>
 #include <command.h>
+#include <kgdb.h>
 #include <asm/processor.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#if defined(CONFIG_CMD_KGDB)
-int (*debugger_exception_handler)(struct pt_regs *) = 0;
-#endif
-
 /* Returns 0 if exception not found and fixup otherwise.  */
 extern unsigned long search_exception_table(unsigned long);
 
 /*
- * End of memory as shown by board info and determined by DDR setup.
+ * End of addressable memory.  This may be less than the actual
+ * amount of memory on the system if we're unable to keep all
+ * the memory mapped in.
  */
-#define END_OF_MEM     (gd->bd->bi_memstart + gd->bd->bi_memsize)
-
+extern ulong get_effective_memsize(void);
+#define END_OF_MEM (gd->bd->bi_memstart + get_effective_memsize())
 
 static __inline__ void set_tsr(unsigned long val)
 {
@@ -214,10 +213,10 @@ MachineCheckException(struct pt_regs *regs)
 
        if (machinecheck_count > 1) {
                regs->nip += 4; /* skip offending instruction */
-               printf("Skipping current instr, Returning to 0x%08x\n",
+               printf("Skipping current instr, Returning to 0x%08lx\n",
                       regs->nip);
        } else {
-               printf("Returning back to 0x%08x\n",regs->nip);
+               printf("Returning back to 0x%08lx\n",regs->nip);
        }
 }
 
@@ -285,10 +284,11 @@ UnknownException(struct pt_regs *regs)
               regs->nip, regs->msr, regs->trap);
        _exception(0, regs);
 }
+
 void
 ExtIntException(struct pt_regs *regs)
 {
-       volatile ccsr_pic_t *pic = (void *)(CFG_MPC85xx_PIC_ADDR);
+       volatile ccsr_pic_t *pic = (void *)(CONFIG_SYS_MPC85xx_PIC_ADDR);
 
        uint vect;
 
@@ -300,17 +300,9 @@ ExtIntException(struct pt_regs *regs)
        printf("External Interrupt Exception at PC: %lx, SR: %lx, vector=%lx",
               regs->nip, regs->msr, regs->trap);
        vect = pic->iack0;
-       printf(" irq IACK0@%05x=%d\n",&pic->iack0,vect);
+       printf(" irq IACK0@%05x=%d\n",(int)&pic->iack0,vect);
        show_regs(regs);
        print_backtrace((unsigned long *)regs->gpr[1]);
-       machinecheck_count++;
-#ifdef EXTINT_NOSKIP
-       printf("Returning back to 0x%08x\n",regs->nip);
-#else
-       regs->nip += 4; /* skip offending instruction */
-       printf("Skipping current instr, Returning to 0x%08x\n",regs->nip);
-#endif
-
 }
 
 void