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.
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.
On Tue, Oct 18, 2011 at 12:34:33PM -0000, Scott Bambrough wrote: THUMB2_ KERNEL= y)
> Some notes from the LT's on Thumb2 kernels (CONFIG_
>
> 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 /wiki.linaro. org/WorkingGrou ps/Kernel/ Thumb2Guide# Firmware_ Interactions
https:/
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