From: Angelo Dureghello <angelo@sysam.it>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH] arm, m68k: fix out-of-range jump
Date: Sat, 16 Apr 2016 02:30:12 +0200 [thread overview]
Message-ID: <57118794.8000602@sysam.it> (raw)
In-Reply-To: <1460717963-24589-1-git-send-email-hs@denx.de>
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 */
>
>
prev parent reply other threads:[~2016-04-16 0:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57118794.8000602@sysam.it \
--to=angelo@sysam.it \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox