[U-Boot] [RFC PATCH 1/2] armv7: enable Thumb build for armv7

Albert ARIBAUD albert.aribaud at free.fr
Wed Mar 16 18:25:34 CET 2011


Le 16/03/2011 09:39, Aneesh V a écrit :
> On Tuesday 15 March 2011 05:24 PM, Loïc Minier wrote:
>> On Tue, Mar 15, 2011, Aneesh V wrote:
>>> Please note that I am enabling armv7-a in the second patch in omap4
>>> config.mk file. The reason I didn't do this here was some ARMv7 SoCs do
>>> not want to use -march=armv7-a even if the compiler supports it. Tegra2
>>> is an example. Please see the below from Tegra2 config.mk:
>>>
>>> # Use ARMv4 for Tegra2 - initial code runs on the AVP, which is an
>>> ARM7TDI.
>>> PLATFORM_CPPFLAGS += -march=armv4
>>
>> Good point, I wonder whether it would make sense to have
>> arch/arm/cpu/armv7/config.mk default to -march=armv7 and Tegra2 to
>
> Sounds reasonable. I will do that.
>
>> override this with -march=armv4. Maybe this code doesn't belong under
>> armv7 though; or perhaps -march=armv4 should only be set when building
>> a subset of the files rather than by default.
>
> I don't understand it either. Maybe, the early boot code runs on one
> processor and the rest run on another processor all in the same SoC.
>
>>> This being the case I would have had to define another CONFIG flag if I
>>> had to add -march=armv7-a in arch/arm/cpu/armv7/config.mk. I thought it
>>> un-necessary and instead put it in the SoC specific file. So, Tegra2
>>> can continue to use -march=armv4 and will get Thumb-1 if they enable
>>> CONFIG_SYS_THUMB_BUILD. Or do you think we should define something like
>>> CONFIG_SYS_MARCH_ARMV7
>>
>> Up to you, but I would expect that code udner arch/arm/cpu/armv7/ would
>> build with -march=armv7 (maybe not -a though), with specific overrides
>
> I tried -march=armv7 yesterday. I am getting several errors from the
> assembly files. Particularly, it doesn't support high registers, spsr
> etc. Looks like it defaults to the armv7-m variant(just my guess)
>
>> where that's not the case; it would feel a bit odd to me to have this
>> as a "config" option.
>
> Yes, me too didn't like having a CONFIG option for this. But that
> doesn't seem to be needed either as it can be over-ridden in the SoC
> directory.
>
> Albert,
> Your thoughts on this?

Some toolchains in current use (notably the one provided with ELDK 4.2, 
and possibly others) do not support -march=armv7[-a]. Do we really need 
armv7 instructions?

> best regards,
> Aneesh

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list