On 04/12/2016 12:30 AM, Angelo Dureghello wrote:
> fix 19/48 broken board compilations, due to a now too smal 16-bit
> relative jump

Won't it make sense to tweak the linker script to put those functions
closer together instead ?

> Signed-off-by: Angelo Dureghello <ang...@sysam.it>
> ---
>  arch/m68k/cpu/mcf523x/start.S  | 8 ++++++--
>  arch/m68k/cpu/mcf52x2/start.S  | 8 ++++++--
>  arch/m68k/cpu/mcf532x/start.S  | 8 ++++++--
>  arch/m68k/cpu/mcf5445x/start.S | 8 ++++++--
>  4 files changed, 24 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
> index 8a23e72..1702f98 100644
> --- a/arch/m68k/cpu/mcf523x/start.S
> +++ b/arch/m68k/cpu/mcf523x/start.S
> @@ -141,8 +141,12 @@ _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) */
> +     /* run low-level CPU init code (from flash) */
> +     move.l #cpu_init_f, %a1
> +     jsr (%a1)
> +     /* run low-level board init code (from flash) */
> +     move.l #board_init_f, %a1
> +     jsr (%a1)
>  
>       /* board_init_f() does not return */
>  
> diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
> index 8a59496..4af691f 100644
> --- a/arch/m68k/cpu/mcf52x2/start.S
> +++ b/arch/m68k/cpu/mcf52x2/start.S
> @@ -198,8 +198,12 @@ _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) */
> +     /* run low-level CPU init code (from flash) */
> +     move.l #cpu_init_f, %a1
> +     jsr (%a1)
> +     /* run low-level board init code (from flash) */
> +     move.l #board_init_f, %a1
> +     jsr (%a1)
>  
>       /* board_init_f() does not return */
>  
> diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
> index 3b9ede0..131ad6e 100644
> --- a/arch/m68k/cpu/mcf532x/start.S
> +++ b/arch/m68k/cpu/mcf532x/start.S
> @@ -155,8 +155,12 @@ _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) */
> +     /* run low-level CPU init code (from flash) */
> +     move.l #cpu_init_f, %a1
> +     jsr (%a1)
> +     /* run low-level board init code (from flash) */
> +     move.l #board_init_f, %a1
> +     jsr (%a1)
>  
>       /* board_init_f() does not return */
>  
> diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
> index ae261b1..f50f147 100644
> --- a/arch/m68k/cpu/mcf5445x/start.S
> +++ b/arch/m68k/cpu/mcf5445x/start.S
> @@ -664,8 +664,12 @@ _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) */
> +     /* run low-level CPU init code (from flash) */
> +     move.l #cpu_init_f, %a1
> +     jsr (%a1)
> +     /* run low-level board init code (from flash) */
> +     move.l #board_init_f, %a1
> +     jsr (%a1)
>  
>       /* board_init_f() does not return */
>  
> 


-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to