[U-Boot] [PATCH] m68k: fix broken buildman m68k

Angelo Dureghello angelo at sysam.it
Tue Apr 12 23:41:52 CEST 2016


Hi,


On 12/04/2016 00:52, Marek Vasut wrote:
> 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 ?
>

tried hardly with linker script, keeping the functions near,
but "relocation truncated to fit: R_68K_PC16 .." error moves to other 
jumps now. The fix in this way seems a bit too complex so i suggest to 
maintain the jumps as in the patch below.

Best regards,
Angelo Dureghello

>> Signed-off-by: Angelo Dureghello <angelo at 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 */
>>
>>
>
>


More information about the U-Boot mailing list