projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fixes' into cleanups
[oweals/u-boot.git]
/
cpu
/
mpc85xx
/
traps.c
diff --git
a/cpu/mpc85xx/traps.c
b/cpu/mpc85xx/traps.c
index efc80c7aee75ec35b1737dac47eeb57bd93bdc85..1045cc1e7d08f4aec72a9f2c9df026fb15318f57 100644
(file)
--- a/
cpu/mpc85xx/traps.c
+++ b/
cpu/mpc85xx/traps.c
@@
-50,10
+50,12
@@
int (*debugger_exception_handler)(struct pt_regs *) = 0;
extern unsigned long search_exception_table(unsigned long);
/*
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)
{
static __inline__ void set_tsr(unsigned long val)
{
@@
-214,10
+216,10
@@
MachineCheckException(struct pt_regs *regs)
if (machinecheck_count > 1) {
regs->nip += 4; /* skip offending instruction */
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%08
l
x\n",
regs->nip);
} else {
regs->nip);
} else {
- printf("Returning back to 0x%08x\n",regs->nip);
+ printf("Returning back to 0x%08
l
x\n",regs->nip);
}
}
}
}
@@
-288,8
+290,8
@@
UnknownException(struct pt_regs *regs)
void
ExtIntException(struct pt_regs *regs)
{
void
ExtIntException(struct pt_regs *regs)
{
- volatile
immap_t *immap = (immap_t *)CFG_IMMR
;
- volatile ccsr_pic_t *pic = &immap->im_pic;
+ volatile
ccsr_pic_t *pic = (void *)(CONFIG_SYS_MPC85xx_PIC_ADDR)
;
+
uint vect;
#if defined(CONFIG_CMD_KGDB)
uint vect;
#if defined(CONFIG_CMD_KGDB)
@@
-300,7
+302,7
@@
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("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++;
show_regs(regs);
print_backtrace((unsigned long *)regs->gpr[1]);
machinecheck_count++;
@@
-308,7
+310,7
@@
ExtIntException(struct pt_regs *regs)
printf("Returning back to 0x%08x\n",regs->nip);
#else
regs->nip += 4; /* skip offending instruction */
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);
+ printf("Skipping current instr, Returning to 0x%08
l
x\n",regs->nip);
#endif
}
#endif
}