On Thursday 09 October 2014 09:24:38 Olof Johansson wrote:
On Thu, Oct 9, 2014 at 7:34 AM, Arnd Bergmann arnd@arndb.de wrote:
On Thursday 09 October 2014 07:24:18 Olof's autobooter wrote:
Full logs are available at http://arm-soc.lixom.net/bootlogs/arm-soc/v3.17-5587-g00a5e5c/
Failed boards:
capri arm-bcm_defconfig : FAILED 0:56.61 capri arm-multi_v7_defconfig : FAILED 1:39.64 colombus arm-sunxi_defconfig : FAILED 1:46.75 odroidu3 arm-exynos_defconfig : FAILED 0:58.88
FWIW, this was a test I did using THUMB2_KERNEL. Apparently it broke at least capri and odroidu3, the colombus problem was preexisting.
Talking to Will at LC, it sounded like THUMB2_KERNEL isn't actually much of a desirable feature (on A-class hardware) -- it slows it down and I don't think the size advantages are enough to warrant it.
Then again, the multi_v7_defconfig kernel is getting rather big already, IIRC we save about 1MB of kernel size, but I'd have to check again.
I also noticed that odroidu3 only gets tested with exynos_defconfig, not multi_v7_defconfig, is that intentional?
When I added the hardware it didn't work on multi_v7 -- there were some bug reports but I didn't go back and check. I'll do a run with multi_v7 when I deal with the farm next time (I have a bunch of hardware sitting here waiting to get added).
Ok. FWIW, this is the patch I used to get it to build and enable the feature. Getting IWMMXT to build right is rather tricky, so I gave up and just disabled the feature.
Arnd
commit 00a5e5c6d6ead8f6f680e9b490b42ead1d438db5 Author: Arnd Bergmann arnd@arndb.de Date: Thu Oct 9 15:19:09 2014 +0200
TESTING: enable THUMB2_KERNEL by default for most v7 targets
Signed-off-by: Arnd Bergmann arnd@arndb.de
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d9d32de9628c..b2f73ce82949 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1010,6 +1010,7 @@ source arch/arm/mm/Kconfig config IWMMXT bool "Enable iWMMXt support" depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B + depends on !THUMB2_KERNEL default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B help Enable support for iWMMXt context switching at run time if @@ -1563,7 +1564,7 @@ config SCHED_HRTICK config THUMB2_KERNEL bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K - default y if CPU_THUMBONLY + default !(CPU_PJ4 || CPU_PJ4B) select AEABI select ARM_ASM_UNIFIED select ARM_UNWIND diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 491b7d5523bf..32c5bf396409 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -5,6 +5,7 @@ CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_BLK_DEV_INITRD=y CONFIG_EMBEDDED=y +CONFIG_THUMB2_KERNEL=y CONFIG_PERF_EVENTS=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/kernel/pj4-cp0.c b/arch/arm/kernel/pj4-cp0.c index 8153e36b2491..af4a46b13a9e 100644 --- a/arch/arm/kernel/pj4-cp0.c +++ b/arch/arm/kernel/pj4-cp0.c @@ -68,8 +68,8 @@ static void __init pj4_cp_access_write(u32 value) "mcr p15, 0, %1, c1, c0, 2\n\t" "mrc p15, 0, %0, c1, c0, 2\n\t" "mov %0, %0\n\t" - "sub pc, pc, #4\n\t" : "=r" (temp) : "r" (value)); + isb(); }
static int __init pj4_get_iwmmxt_version(void)