[U-Boot] [PATCH 1/4] arm: make sure board_init_r() is being called using the right mode (ARM / THUMB)

David Müller (ELSOFT AG) d.mueller at elsoft.ch
Wed Feb 10 08:57:38 CET 2016


Hello

Tom Rini wrote:
> On Tue, Feb 09, 2016 at 04:48:28PM +0100, David Müller wrote:
>>  	/* call board_init_r */
>> +#if defined(CONFIG_SYS_THUMB_BUILD)
>> +	ldr	lr, =board_init_r	/* this is auto-relocated! */
>> +	bx	lr
>> +#else
>>  	ldr	pc, =board_init_r	/* this is auto-relocated! */
>> -
>> +#endif
>>  	/* we should not return here. */
>>  #endif
> 
> In general, my preference is always to use the thumb compatible way, can
> you rework like that and explain in the commit message?  Thanks!

AFAIK, the "bx" instruction is undefined on non-THUMB capable
architectures. I therefore don't see a way to avoid some kind of
#if/#else/#endif construct.

Dave



More information about the U-Boot mailing list