mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH] ARM: arm32: fix realocate_to_curr_addr
@ 2018-04-22 16:41 Andreas Schmidt
  2018-04-25  9:30 ` Sascha Hauer
  0 siblings, 1 reply; 2+ messages in thread
From: Andreas Schmidt @ 2018-04-22 16:41 UTC (permalink / raw)
  To: barebox

After add aarch64 support (commit 868df08038a91d674a0c50b0c0a2f70dbc445510)
to realocation, MLO on beaglebone black do not boot any more.
The issue is, that addition of offset in one if-case was not done.
This patch fix this.

Signed-off-by: Andreas Schmidt <mail@schmidt-andreas.de>
---
Hi!

I've tested this patch only on beablebone black REV C.

Regards,
Andreas
---
 arch/arm/cpu/common.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/cpu/common.c b/arch/arm/cpu/common.c
index 00ce3efb2..51fe7ed98 100644
--- a/arch/arm/cpu/common.c
+++ b/arch/arm/cpu/common.c
@@ -85,6 +85,7 @@ void relocate_to_current_adr(void)
 			unsigned long *fixup = (unsigned long *)(rel->r_offset + offset);
 
 			*fixup = *fixup + r + offset;
+			rel->r_offset += offset;
 		} else {
 			putc_ll('>');
 			puthex_ll(rel->r_info);
-- 
2.14.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] ARM: arm32: fix realocate_to_curr_addr
  2018-04-22 16:41 [PATCH] ARM: arm32: fix realocate_to_curr_addr Andreas Schmidt
@ 2018-04-25  9:30 ` Sascha Hauer
  0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2018-04-25  9:30 UTC (permalink / raw)
  To: Andreas Schmidt, g; +Cc: barebox

Hi Andreas,

On Sun, Apr 22, 2018 at 06:41:57PM +0200, Andreas Schmidt wrote:
> After add aarch64 support (commit 868df08038a91d674a0c50b0c0a2f70dbc445510)
> to realocation, MLO on beaglebone black do not boot any more.
> The issue is, that addition of offset in one if-case was not done.
> This patch fix this.
> 
> Signed-off-by: Andreas Schmidt <mail@schmidt-andreas.de>
> ---
> Hi!
> 
> I've tested this patch only on beablebone black REV C.

Applied, thanks.

It took me a while to reproduce this. I switched to gcc7 a while ago and
this gcc version no longer uses these types of relocation. Then after
using a gcc-4.9.2 I could really see the same issue. The problem arises
when relocate_to_current_adr() is called multiple times, as happens when
the board lowlevel code calls it and the startup code later again. Some
boards do this, one of them being the beagle bone.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-25  9:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-22 16:41 [PATCH] ARM: arm32: fix realocate_to_curr_addr Andreas Schmidt
2018-04-25  9:30 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox