[PATCH] ARM: let CPUs not being able to run in ARM mode enter in THUMB mode

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Jan 11 11:07:53 EST 2013


On Fri, Jan 11, 2013 at 12:39:57PM +0100, Uwe Kleine-König wrote:
> +# Select this if your CPU doesn't support the 32 bit ARM instructions.
> +config THUMBONLY_CPU
> +	bool
> +	select THUMB2_KERNEL
> +	select ARM_THUMB

Hmm, not convinced this is the best solution.  Yes, fine for there to be
a THUMBONLY_CPU option, _but_ not the select statements onto user visible
symbols.  We can get this instead by:

config THUMB2_KERNEL
        bool "Compile the kernel in Thumb-2 mode" if !THUMBONLY_CPU
        depends on (CPU_V7 && !CPU_V6 && !CPU_V6K) || THUMBONLY_CPU
	default y if THUMBONLY_CPU
        select AEABI
        select ARM_ASM_UNIFIED
        select ARM_UNWIND

and:

config ARM_THUMB
        bool "Support Thumb user binaries" if !THUMBONLY_CPU
        depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || \
		   CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || \
		   CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || \
		   CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
		   CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || \
		   CPU_V6K || CPU_V7 || CPU_FEROCEON || THUMBONLY_CPU
        default y

And... I'm left wondering - should we have this instead:

config CPU_ARM
	bool

config CPU_THUMB
	bool

which indicates whether the CPU supports the ARM instruction set or the
Thumb instruction set (or both) - that should then allow us to select
those from the individual CPU_xxx options and eliminate that big long
list of dependencies against ARM_THUMB.



More information about the linux-arm-kernel mailing list