Comment 39 for bug 859473

Revision history for this message
Dave Martin (dave-martin-arm) wrote : Re: [Bug 859473] Re: CI kernels causing many "Illegal Instruction"s

On Tue, Oct 18, 2011 at 12:34:33PM -0000, Scott Bambrough wrote:
> Some notes from the LT's on Thumb2 kernels (CONFIG_THUMB2_KERNEL=y)
>
> TI: The LT tested it when Dave Martin sent out the call, it blows chunks
> for us in power management patches on tracking -->
>
> ''From the crash dump, the faulting code seems to be:
>
> f503 7182 add.w r1, r3, #260 ; 0x104
> ** e851 0f00 ldrex r0, [r1] **
> f100 0001 add.w r0, r0, #1
>
> r1 is 0x53555151, which is looks more likely to be garbage than to be a
> real, but misaligned, address. I guess we'll need to figure out where
> that value is coming from...''
>
> It's stuck at the moment.
>
> Freescale: The LT is currently having some difficulties building the
> kernel completely with Thumb2 instructions. The major reason is the
> suspend/resume code which is very SoC specific and low level, uses ARM
> instructions which they need to convert into thumb2 compatible firstly.
> It's currently on their wish list.

omap3 had some problems of this sort. To avoid needless churn, we
simply kept some of the affected code as ARM for now.

See
https://wiki.linaro.org/WorkingGroups/Kernel/Thumb2Guide#Firmware_Interactions
for an example of how this was implemented.

It is likely that most of all of the affected code can be made Thumb-2
compatible, but building selected snippets as ARM is a useful first
step, and still allows the rest of the kernel to be build in Thumb-2.

If you have a log from make -k, that would also be useful for
identifying how to fix the build failures.

Cheers
---Dave