Comment 35 for bug 859473

Revision history for this message
Nicolas Pitre (npitre) wrote : Re: [Bug 859473] Re: CI kernels causing many "Illegal Instruction"s

On Mon, 17 Oct 2011, James Westby wrote:

> asac asked in a private mail thread about how to enable thumb2 on an
> otherwise plain defconfig.

Two things:

1) If you want your kernel to support Thumb2 user space binaries, you
   must have CONFIG_ARM_THUMB=y in your kernel config. This is probably
   set as our user space has been compiled to Thumb2 for quite a while.

2) If you want your kernel itself to be a Thumb2 binary, then you must
   have CONFIG_THUMB2_KERNEL=y. This is however available only for
   ARMv7 and above. For example, in the OMAP case, you can't support
   OMAP2 with a Thumb2 kernel, therefore the CONFIG_THUMB2_KERNEL option
   will be visible only if OMAP2 support is configured out (OMAP3 +
   OMAP4 is fine).

Also it is not necessary to match the kernel and user space "thumbness".
However there was a bug in the kernel compiled for ARM mode when a Thumb
mode user space was used with it when that kernel was configured for
both ARMv6 and ARMv7 (e.g. omap2plus_defconfig). The fix was available
in linux-linaro-3.0 but this was missing from linux-linaro-3.1 until a
few hours ago.