public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump
@ 2016-04-15 10:59 Heiko Schocher
  2016-04-15 14:39 ` Angelo Dureghello
  2016-04-16  0:30 ` Angelo Dureghello
  0 siblings, 2 replies; 4+ messages in thread
From: Heiko Schocher @ 2016-04-15 10:59 UTC (permalink / raw)
  To: u-boot

fix the following build error for m68k boards:
Building current source for 48 boards (2 threads, 1 job per thread)
      m68k:  +   M54455EVB_i66
+arch/m68k/cpu/mcf5445x/start.o: In function `_start':
+arch/m68k/cpu/mcf5445x/start.S:668:(.text+0x45a): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o
+make[1]: *** [u-boot] Error 1
+make: *** [sub-make] Error 2

Signed-off-by: Heiko Schocher <hs@denx.de>
---
This commit fixes build error:
https://travis-ci.org/hsdenx/u-boot/jobs/123254183

fixed log see:
https://travis-ci.org/hsdenx/u-boot/jobs/123281032

Any ideas why the changes did not work for:
arch/m68k/cpu/mcf523x/start.S
arch/m68k/cpu/mcf52x2/start.S
arch/m68k/cpu/mcf532x/start.S

but work for
arch/m68k/cpu/mcf5445x/start.S

I have no real m68k experiences, so help is appreciated!


 arch/m68k/cpu/mcf523x/start.S  | 4 ++--
 arch/m68k/cpu/mcf52x2/start.S  | 4 ++--
 arch/m68k/cpu/mcf532x/start.S  | 4 ++--
 arch/m68k/cpu/mcf5445x/start.S | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
index 8a23e72..ad7bde4 100644
--- a/arch/m68k/cpu/mcf523x/start.S
+++ b/arch/m68k/cpu/mcf523x/start.S
@@ -141,8 +141,8 @@ _start:
 
 	move.l #__got_start, %a5	/* put relocation table address to a5 */
 
-	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
-	bsr board_init_f		/* run low-level board init code (from flash) */
+	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
+	jbsr board_init_f		/* run low-level board init code (from flash) */
 
 	/* board_init_f() does not return */
 
diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
index 8a59496..a16b589 100644
--- a/arch/m68k/cpu/mcf52x2/start.S
+++ b/arch/m68k/cpu/mcf52x2/start.S
@@ -198,8 +198,8 @@ _after_flashbar_copy:
 
 	move.l #__got_start, %a5		/* put relocation table address to a5 */
 
-	bsr cpu_init_f				/* run low-level CPU init code (from flash) */
-	bsr board_init_f			/* run low-level board init code (from flash) */
+	jbsr cpu_init_f				/* run low-level CPU init code (from flash) */
+	jbsr board_init_f			/* run low-level board init code (from flash) */
 
 	/* board_init_f() does not return */
 
diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
index 3b9ede0..50d301c 100644
--- a/arch/m68k/cpu/mcf532x/start.S
+++ b/arch/m68k/cpu/mcf532x/start.S
@@ -155,8 +155,8 @@ _start:
 
 	move.l #__got_start, %a5	/* put relocation table address to a5 */
 
-	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
-	bsr board_init_f		/* run low-level board init code (from flash) */
+	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
+	jbsr board_init_f		/* run low-level board init code (from flash) */
 
 	/* board_init_f() does not return */
 
diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
index ae261b1..ff8d627 100644
--- a/arch/m68k/cpu/mcf5445x/start.S
+++ b/arch/m68k/cpu/mcf5445x/start.S
@@ -664,8 +664,8 @@ _start:
 
 	move.l #__got_start, %a5	/* put relocation table address to a5 */
 
-	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
-	bsr board_init_f		/* run low-level board init code (from flash) */
+	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
+	jbsr board_init_f		/* run low-level board init code (from flash) */
 
 	/* board_init_f() does not return */
 
-- 
2.5.0

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

* [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump
  2016-04-15 10:59 [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump Heiko Schocher
@ 2016-04-15 14:39 ` Angelo Dureghello
  2016-04-18  5:03   ` Heiko Schocher
  2016-04-16  0:30 ` Angelo Dureghello
  1 sibling, 1 reply; 4+ messages in thread
From: Angelo Dureghello @ 2016-04-15 14:39 UTC (permalink / raw)
  To: u-boot

Hi Heiko,

On 15/04/2016 12:59, Heiko Schocher wrote:
> fix the following build error for m68k boards:
> Building current source for 48 boards (2 threads, 1 job per thread)
>        m68k:  +   M54455EVB_i66
> +arch/m68k/cpu/mcf5445x/start.o: In function `_start':
> +arch/m68k/cpu/mcf5445x/start.S:668:(.text+0x45a): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o
> +make[1]: *** [u-boot] Error 1
> +make: *** [sub-make] Error 2
>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> ---
> This commit fixes build error:
> https://travis-ci.org/hsdenx/u-boot/jobs/123254183
>
> fixed log see:
> https://travis-ci.org/hsdenx/u-boot/jobs/123281032
>
> Any ideas why the changes did not work for:
> arch/m68k/cpu/mcf523x/start.S
> arch/m68k/cpu/mcf52x2/start.S
> arch/m68k/cpu/mcf532x/start.S
>
> but work for
> arch/m68k/cpu/mcf5445x/start.S
>
> I have no real m68k experiences, so help is appreciated!
>
>
>   arch/m68k/cpu/mcf523x/start.S  | 4 ++--
>   arch/m68k/cpu/mcf52x2/start.S  | 4 ++--
>   arch/m68k/cpu/mcf532x/start.S  | 4 ++--
>   arch/m68k/cpu/mcf5445x/start.S | 4 ++--
>   4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
> index 8a23e72..ad7bde4 100644
> --- a/arch/m68k/cpu/mcf523x/start.S
> +++ b/arch/m68k/cpu/mcf523x/start.S
> @@ -141,8 +141,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
> index 8a59496..a16b589 100644
> --- a/arch/m68k/cpu/mcf52x2/start.S
> +++ b/arch/m68k/cpu/mcf52x2/start.S
> @@ -198,8 +198,8 @@ _after_flashbar_copy:
>
>   	move.l #__got_start, %a5		/* put relocation table address to a5 */
>
> -	bsr cpu_init_f				/* run low-level CPU init code (from flash) */
> -	bsr board_init_f			/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f				/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f			/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
> index 3b9ede0..50d301c 100644
> --- a/arch/m68k/cpu/mcf532x/start.S
> +++ b/arch/m68k/cpu/mcf532x/start.S
> @@ -155,8 +155,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
> index ae261b1..ff8d627 100644
> --- a/arch/m68k/cpu/mcf5445x/start.S
> +++ b/arch/m68k/cpu/mcf5445x/start.S
> @@ -664,8 +664,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
>

I just sent a very similar patch some days ago.

https://patchwork.ozlabs.org/patch/609150/

Issue should be fixed.

Regards,
Angelo

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

* [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump
  2016-04-15 10:59 [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump Heiko Schocher
  2016-04-15 14:39 ` Angelo Dureghello
@ 2016-04-16  0:30 ` Angelo Dureghello
  1 sibling, 0 replies; 4+ messages in thread
From: Angelo Dureghello @ 2016-04-16  0:30 UTC (permalink / raw)
  To: u-boot

Hi Heiko,

On 15/04/2016 12:59, Heiko Schocher wrote:
> fix the following build error for m68k boards:
> Building current source for 48 boards (2 threads, 1 job per thread)
>        m68k:  +   M54455EVB_i66
> +arch/m68k/cpu/mcf5445x/start.o: In function `_start':
> +arch/m68k/cpu/mcf5445x/start.S:668:(.text+0x45a): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o
> +make[1]: *** [u-boot] Error 1
> +make: *** [sub-make] Error 2
>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> ---
> This commit fixes build error:
> https://travis-ci.org/hsdenx/u-boot/jobs/123254183
>
> fixed log see:
> https://travis-ci.org/hsdenx/u-boot/jobs/123281032
>
> Any ideas why the changes did not work for:
> arch/m68k/cpu/mcf523x/start.S
> arch/m68k/cpu/mcf52x2/start.S
> arch/m68k/cpu/mcf532x/start.S
>
> but work for
> arch/m68k/cpu/mcf5445x/start.S
>
> I have no real m68k experiences, so help is appreciated!

sorry, i realized later you was asking the reason why jbsr
is not working with

 > arch/m68k/cpu/mcf523x/start.S
 > arch/m68k/cpu/mcf52x2/start.S
 > arch/m68k/cpu/mcf532x/start.S

jbsr is an alias for bsr.l that is supported only from ISA_B.
In ISA_A it is likely translated to 16bit relative jump.

I prepared some notes, you can check ISA Revisions here:
http://www.denx.de/wiki/U-Boot/ColdFireNotes

Best regards,
Angelo Dureghello



>
>
>   arch/m68k/cpu/mcf523x/start.S  | 4 ++--
>   arch/m68k/cpu/mcf52x2/start.S  | 4 ++--
>   arch/m68k/cpu/mcf532x/start.S  | 4 ++--
>   arch/m68k/cpu/mcf5445x/start.S | 4 ++--
>   4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
> index 8a23e72..ad7bde4 100644
> --- a/arch/m68k/cpu/mcf523x/start.S
> +++ b/arch/m68k/cpu/mcf523x/start.S
> @@ -141,8 +141,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
> index 8a59496..a16b589 100644
> --- a/arch/m68k/cpu/mcf52x2/start.S
> +++ b/arch/m68k/cpu/mcf52x2/start.S
> @@ -198,8 +198,8 @@ _after_flashbar_copy:
>
>   	move.l #__got_start, %a5		/* put relocation table address to a5 */
>
> -	bsr cpu_init_f				/* run low-level CPU init code (from flash) */
> -	bsr board_init_f			/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f				/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f			/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
> index 3b9ede0..50d301c 100644
> --- a/arch/m68k/cpu/mcf532x/start.S
> +++ b/arch/m68k/cpu/mcf532x/start.S
> @@ -155,8 +155,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
> diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
> index ae261b1..ff8d627 100644
> --- a/arch/m68k/cpu/mcf5445x/start.S
> +++ b/arch/m68k/cpu/mcf5445x/start.S
> @@ -664,8 +664,8 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> -	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
> -	bsr board_init_f		/* run low-level board init code (from flash) */
> +	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
> +	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>   	/* board_init_f() does not return */
>
>

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

* [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump
  2016-04-15 14:39 ` Angelo Dureghello
@ 2016-04-18  5:03   ` Heiko Schocher
  0 siblings, 0 replies; 4+ messages in thread
From: Heiko Schocher @ 2016-04-18  5:03 UTC (permalink / raw)
  To: u-boot

Hello Angelo,

Am 15.04.2016 um 16:39 schrieb Angelo Dureghello:
> Hi Heiko,
>
> On 15/04/2016 12:59, Heiko Schocher wrote:
>> fix the following build error for m68k boards:
>> Building current source for 48 boards (2 threads, 1 job per thread)
>>        m68k:  +   M54455EVB_i66
>> +arch/m68k/cpu/mcf5445x/start.o: In function `_start':
>> +arch/m68k/cpu/mcf5445x/start.S:668:(.text+0x45a): relocation truncated to fit: R_68K_PC16 against
>> symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o
>> +make[1]: *** [u-boot] Error 1
>> +make: *** [sub-make] Error 2
>>
>> Signed-off-by: Heiko Schocher <hs@denx.de>
>> ---
>> This commit fixes build error:
>> https://travis-ci.org/hsdenx/u-boot/jobs/123254183
>>
>> fixed log see:
>> https://travis-ci.org/hsdenx/u-boot/jobs/123281032
>>
>> Any ideas why the changes did not work for:
>> arch/m68k/cpu/mcf523x/start.S
>> arch/m68k/cpu/mcf52x2/start.S
>> arch/m68k/cpu/mcf532x/start.S
>>
>> but work for
>> arch/m68k/cpu/mcf5445x/start.S
>>
>> I have no real m68k experiences, so help is appreciated!
>>
>>
>>   arch/m68k/cpu/mcf523x/start.S  | 4 ++--
>>   arch/m68k/cpu/mcf52x2/start.S  | 4 ++--
>>   arch/m68k/cpu/mcf532x/start.S  | 4 ++--
>>   arch/m68k/cpu/mcf5445x/start.S | 4 ++--
>>   4 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
>> index 8a23e72..ad7bde4 100644
>> --- a/arch/m68k/cpu/mcf523x/start.S
>> +++ b/arch/m68k/cpu/mcf523x/start.S
>> @@ -141,8 +141,8 @@ _start:
>>
>>       move.l #__got_start, %a5    /* put relocation table address to a5 */
>>
>> -    bsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> -    bsr board_init_f        /* run low-level board init code (from flash) */
>> +    jbsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> +    jbsr board_init_f        /* run low-level board init code (from flash) */
>>
>>       /* board_init_f() does not return */
>>
>> diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
>> index 8a59496..a16b589 100644
>> --- a/arch/m68k/cpu/mcf52x2/start.S
>> +++ b/arch/m68k/cpu/mcf52x2/start.S
>> @@ -198,8 +198,8 @@ _after_flashbar_copy:
>>
>>       move.l #__got_start, %a5        /* put relocation table address to a5 */
>>
>> -    bsr cpu_init_f                /* run low-level CPU init code (from flash) */
>> -    bsr board_init_f            /* run low-level board init code (from flash) */
>> +    jbsr cpu_init_f                /* run low-level CPU init code (from flash) */
>> +    jbsr board_init_f            /* run low-level board init code (from flash) */
>>
>>       /* board_init_f() does not return */
>>
>> diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
>> index 3b9ede0..50d301c 100644
>> --- a/arch/m68k/cpu/mcf532x/start.S
>> +++ b/arch/m68k/cpu/mcf532x/start.S
>> @@ -155,8 +155,8 @@ _start:
>>
>>       move.l #__got_start, %a5    /* put relocation table address to a5 */
>>
>> -    bsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> -    bsr board_init_f        /* run low-level board init code (from flash) */
>> +    jbsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> +    jbsr board_init_f        /* run low-level board init code (from flash) */
>>
>>       /* board_init_f() does not return */
>>
>> diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
>> index ae261b1..ff8d627 100644
>> --- a/arch/m68k/cpu/mcf5445x/start.S
>> +++ b/arch/m68k/cpu/mcf5445x/start.S
>> @@ -664,8 +664,8 @@ _start:
>>
>>       move.l #__got_start, %a5    /* put relocation table address to a5 */
>>
>> -    bsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> -    bsr board_init_f        /* run low-level board init code (from flash) */
>> +    jbsr cpu_init_f            /* run low-level CPU init code (from flash) */
>> +    jbsr board_init_f        /* run low-level board init code (from flash) */
>>
>>       /* board_init_f() does not return */
>>
>>
>
> I just sent a very similar patch some days ago.
>
> https://patchwork.ozlabs.org/patch/609150/
>
> Issue should be fixed.

Oh, sorry for overlooking this!

Thanks for fixing!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

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

end of thread, other threads:[~2016-04-18  5:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-15 10:59 [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump Heiko Schocher
2016-04-15 14:39 ` Angelo Dureghello
2016-04-18  5:03   ` Heiko Schocher
2016-04-16  0:30 ` Angelo Dureghello

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