|
@@ -111,7 +111,7 @@ void trap_c(struct pt_regs *regs)
|
|
}
|
|
}
|
|
if (i == ARRAY_SIZE(bfin_memory_map)) {
|
|
if (i == ARRAY_SIZE(bfin_memory_map)) {
|
|
printf("%cCPLB exception outside of memory map at 0x%p\n",
|
|
printf("%cCPLB exception outside of memory map at 0x%p\n",
|
|
- (data ? 'D' : 'I'), new_cplb_addr);
|
|
|
|
|
|
+ (data ? 'D' : 'I'), (void *)new_cplb_addr);
|
|
bfin_panic(regs);
|
|
bfin_panic(regs);
|
|
} else
|
|
} else
|
|
debug("CPLB addr %p matches map 0x%p - 0x%p\n", new_cplb_addr, bfin_memory_map[i].start, bfin_memory_map[i].end);
|
|
debug("CPLB addr %p matches map 0x%p - 0x%p\n", new_cplb_addr, bfin_memory_map[i].start, bfin_memory_map[i].end);
|
|
@@ -207,20 +207,21 @@ static const char *symbol_lookup(unsigned long addr, unsigned long *caddr)
|
|
static void decode_address(char *buf, unsigned long address)
|
|
static void decode_address(char *buf, unsigned long address)
|
|
{
|
|
{
|
|
unsigned long sym_addr;
|
|
unsigned long sym_addr;
|
|
|
|
+ void *paddr = (void *)address;
|
|
const char *sym = symbol_lookup(address, &sym_addr);
|
|
const char *sym = symbol_lookup(address, &sym_addr);
|
|
|
|
|
|
if (sym) {
|
|
if (sym) {
|
|
- sprintf(buf, "<0x%p> { %s + 0x%x }", address, sym, address - sym_addr);
|
|
|
|
|
|
+ sprintf(buf, "<0x%p> { %s + 0x%lx }", paddr, sym, address - sym_addr);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
if (!address)
|
|
if (!address)
|
|
- sprintf(buf, "<0x%p> /* Maybe null pointer? */", address);
|
|
|
|
|
|
+ sprintf(buf, "<0x%p> /* Maybe null pointer? */", paddr);
|
|
else if (address >= CONFIG_SYS_MONITOR_BASE &&
|
|
else if (address >= CONFIG_SYS_MONITOR_BASE &&
|
|
address < CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
|
|
address < CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
|
|
- sprintf(buf, "<0x%p> /* somewhere in u-boot */", address);
|
|
|
|
|
|
+ sprintf(buf, "<0x%p> /* somewhere in u-boot */", paddr);
|
|
else
|
|
else
|
|
- sprintf(buf, "<0x%p> /* unknown address */", address);
|
|
|
|
|
|
+ sprintf(buf, "<0x%p> /* unknown address */", paddr);
|
|
}
|
|
}
|
|
|
|
|
|
static char *strhwerrcause(uint16_t hwerrcause)
|
|
static char *strhwerrcause(uint16_t hwerrcause)
|
|
@@ -260,7 +261,7 @@ static char *strexcause(uint16_t excause)
|
|
void dump(struct pt_regs *fp)
|
|
void dump(struct pt_regs *fp)
|
|
{
|
|
{
|
|
char buf[150];
|
|
char buf[150];
|
|
- size_t i;
|
|
|
|
|
|
+ int i;
|
|
uint16_t hwerrcause, excause;
|
|
uint16_t hwerrcause, excause;
|
|
|
|
|
|
if (!ENABLE_DUMP)
|
|
if (!ENABLE_DUMP)
|
|
@@ -275,8 +276,8 @@ void dump(struct pt_regs *fp)
|
|
printf("SEQUENCER STATUS:\n");
|
|
printf("SEQUENCER STATUS:\n");
|
|
printf(" SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
|
|
printf(" SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
|
|
fp->seqstat, fp->ipend, fp->syscfg);
|
|
fp->seqstat, fp->ipend, fp->syscfg);
|
|
- printf(" HWERRCAUSE: 0x%lx: %s\n", hwerrcause, strhwerrcause(hwerrcause));
|
|
|
|
- printf(" EXCAUSE : 0x%lx: %s\n", excause, strexcause(excause));
|
|
|
|
|
|
+ printf(" HWERRCAUSE: 0x%x: %s\n", hwerrcause, strhwerrcause(hwerrcause));
|
|
|
|
+ printf(" EXCAUSE : 0x%x: %s\n", excause, strexcause(excause));
|
|
for (i = 6; i <= 15; ++i) {
|
|
for (i = 6; i <= 15; ++i) {
|
|
if (fp->ipend & (1 << i)) {
|
|
if (fp->ipend & (1 << i)) {
|
|
decode_address(buf, bfin_read32(EVT0 + 4*i));
|
|
decode_address(buf, bfin_read32(EVT0 + 4*i));
|
|
@@ -310,7 +311,7 @@ void dump(struct pt_regs *fp)
|
|
printf(" P0 : %08lx P1 : %08lx P2 : %08lx P3 : %08lx\n",
|
|
printf(" P0 : %08lx P1 : %08lx P2 : %08lx P3 : %08lx\n",
|
|
fp->p0, fp->p1, fp->p2, fp->p3);
|
|
fp->p0, fp->p1, fp->p2, fp->p3);
|
|
printf(" P4 : %08lx P5 : %08lx FP : %08lx SP : %08lx\n",
|
|
printf(" P4 : %08lx P5 : %08lx FP : %08lx SP : %08lx\n",
|
|
- fp->p4, fp->p5, fp->fp, fp);
|
|
|
|
|
|
+ fp->p4, fp->p5, fp->fp, (unsigned long)fp);
|
|
printf(" LB0: %08lx LT0: %08lx LC0: %08lx\n",
|
|
printf(" LB0: %08lx LT0: %08lx LC0: %08lx\n",
|
|
fp->lb0, fp->lt0, fp->lc0);
|
|
fp->lb0, fp->lt0, fp->lc0);
|
|
printf(" LB1: %08lx LT1: %08lx LC1: %08lx\n",
|
|
printf(" LB1: %08lx LT1: %08lx LC1: %08lx\n",
|
|
@@ -336,7 +337,7 @@ void dump_bfin_trace_buffer(void)
|
|
{
|
|
{
|
|
char buf[150];
|
|
char buf[150];
|
|
unsigned long tflags;
|
|
unsigned long tflags;
|
|
- size_t i = 0;
|
|
|
|
|
|
+ int i = 0;
|
|
|
|
|
|
if (!ENABLE_DUMP)
|
|
if (!ENABLE_DUMP)
|
|
return;
|
|
return;
|