arm64 :show_regs: show the address before relocation

After relocation, when error happends, it is hard to track
ELR and LR with asm file objdumped from elf file.

So subtract the gd->reloc_off the reflect the compliation address.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
master
Peng Fan 7 years ago committed by Tom Rini
parent c7be3e5a79
commit 082693f4f0
  1. 10
      arch/arm/lib/interrupts_64.c

@ -9,6 +9,7 @@
#include <linux/compiler.h>
#include <efi_loader.h>
DECLARE_GLOBAL_DATA_PTR;
int interrupt_init(void)
{
@ -29,8 +30,13 @@ void show_regs(struct pt_regs *regs)
{
int i;
printf("ELR: %lx\n", regs->elr);
printf("LR: %lx\n", regs->regs[30]);
if (gd->flags & GD_FLG_RELOC) {
printf("ELR: %lx\n", regs->elr - gd->reloc_off);
printf("LR: %lx\n", regs->regs[30] - gd->reloc_off);
} else {
printf("ELR: %lx\n", regs->elr);
printf("LR: %lx\n", regs->regs[30]);
}
for (i = 0; i < 29; i += 2)
printf("x%-2d: %016lx x%-2d: %016lx\n",
i, regs->regs[i], i+1, regs->regs[i+1]);

Loading…
Cancel
Save