Re: [U-Boot] [PATCH] arm64 :show_regs: show the address before relocation
On Tue, Feb 06, 2018 at 12:40:39AM +, Karl Beldan wrote: > On Sun, Feb 4, 2018 at 1:39 PM, Simon Glass wrote: > > Hi, > > > > On 22 January 2018 at 12:01, Karl Beldan wrote: > >> > >> On Tue, Nov 28, 2017 at 10:08:08AM +0800, Peng Fan wrote: > >> > 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 > >> > --- > >> > arch/arm/lib/interrupts_64.c | 10 -- > >> > 1 file changed, 8 insertions(+), 2 deletions(-) > >> > > >> > diff --git a/arch/arm/lib/interrupts_64.c b/arch/arm/lib/interrupts_64.c > >> > index 7c9cfce69f..cbcfeec2b0 100644 > >> > --- a/arch/arm/lib/interrupts_64.c > >> > +++ b/arch/arm/lib/interrupts_64.c > >> > @@ -9,6 +9,7 @@ > >> > #include > >> > #include > >> > > >> > +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]); > >> > >> Hi, > >> > >> It is useful to show the relocated address, the kind of local mods I too > >> have had for a while. > >> But here you dropped the hw register values altogether, instead of > >> displaying both, which I guess I am not the only one to not be happy > >> about. > > > > Yes I agree that we should have both. Do you think you could do a patch? > > Hi, > > Peng did reply with a patch[1], I was bugged by the formatting but no > follow-up ensued, so unclear whether it felt annoying on anybody's side. > Anyways sure, if the thread stalls for a few more days, I'll make sure > to send a patch. > > [1] https://marc.info/?l=u-boot&m=151674072412633&w=2 For the record, I took your objects as "Changes still Requested" to the patch and I think/hope in patchwork I marked it as such. -- Tom signature.asc Description: PGP signature ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] arm64 :show_regs: show the address before relocation
On Sun, Feb 4, 2018 at 1:39 PM, Simon Glass wrote: > Hi, > > On 22 January 2018 at 12:01, Karl Beldan wrote: >> >> On Tue, Nov 28, 2017 at 10:08:08AM +0800, Peng Fan wrote: >> > 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 >> > --- >> > arch/arm/lib/interrupts_64.c | 10 -- >> > 1 file changed, 8 insertions(+), 2 deletions(-) >> > >> > diff --git a/arch/arm/lib/interrupts_64.c b/arch/arm/lib/interrupts_64.c >> > index 7c9cfce69f..cbcfeec2b0 100644 >> > --- a/arch/arm/lib/interrupts_64.c >> > +++ b/arch/arm/lib/interrupts_64.c >> > @@ -9,6 +9,7 @@ >> > #include >> > #include >> > >> > +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]); >> >> Hi, >> >> It is useful to show the relocated address, the kind of local mods I too >> have had for a while. >> But here you dropped the hw register values altogether, instead of >> displaying both, which I guess I am not the only one to not be happy >> about. > > Yes I agree that we should have both. Do you think you could do a patch? > Hi, Peng did reply with a patch[1], I was bugged by the formatting but no follow-up ensued, so unclear whether it felt annoying on anybody's side. Anyways sure, if the thread stalls for a few more days, I'll make sure to send a patch. [1] https://marc.info/?l=u-boot&m=151674072412633&w=2 Regards, Karl ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] arm64 :show_regs: show the address before relocation
Hi, On 22 January 2018 at 12:01, Karl Beldan wrote: > > On Tue, Nov 28, 2017 at 10:08:08AM +0800, Peng Fan wrote: > > 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 > > --- > > arch/arm/lib/interrupts_64.c | 10 -- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm/lib/interrupts_64.c b/arch/arm/lib/interrupts_64.c > > index 7c9cfce69f..cbcfeec2b0 100644 > > --- a/arch/arm/lib/interrupts_64.c > > +++ b/arch/arm/lib/interrupts_64.c > > @@ -9,6 +9,7 @@ > > #include > > #include > > > > +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]); > > Hi, > > It is useful to show the relocated address, the kind of local mods I too > have had for a while. > But here you dropped the hw register values altogether, instead of > displaying both, which I guess I am not the only one to not be happy > about. Yes I agree that we should have both. Do you think you could do a patch? Regards, Simon ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] arm64 :show_regs: show the address before relocation
On Tue, Nov 28, 2017 at 10:08:08AM +0800, Peng Fan wrote: > 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 > --- > arch/arm/lib/interrupts_64.c | 10 -- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/lib/interrupts_64.c b/arch/arm/lib/interrupts_64.c > index 7c9cfce69f..cbcfeec2b0 100644 > --- a/arch/arm/lib/interrupts_64.c > +++ b/arch/arm/lib/interrupts_64.c > @@ -9,6 +9,7 @@ > #include > #include > > +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]); Hi, It is useful to show the relocated address, the kind of local mods I too have had for a while. But here you dropped the hw register values altogether, instead of displaying both, which I guess I am not the only one to not be happy about. Regards, Karl ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] arm64 :show_regs: show the address before relocation
On 27 November 2017 at 19:08, Peng Fan wrote: > 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 > --- > arch/arm/lib/interrupts_64.c | 10 -- > 1 file changed, 8 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH] 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 --- arch/arm/lib/interrupts_64.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/arm/lib/interrupts_64.c b/arch/arm/lib/interrupts_64.c index 7c9cfce69f..cbcfeec2b0 100644 --- a/arch/arm/lib/interrupts_64.c +++ b/arch/arm/lib/interrupts_64.c @@ -9,6 +9,7 @@ #include #include +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]); -- 2.14.1 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot