Hello Dave,
On Mon, Oct 24, 2011 at 10:51 PM, Dave Martin dave.martin@linaro.orgwrote:
On Fri, Oct 21, 2011 at 11:54 AM, Deepti Kalakeri deepti.kalakeri@linaro.org wrote:
On Thu, Oct 20, 2011 at 11:30 PM, Amit Kucheria <
amit.kucheria@linaro.org>
wrote:
[...]
make ARCH=arm omap2plus_defconfig yes "" | make ARCH=arm oldconfig cp .config /tmp/config echo "CONFIG_ARCH_OMAP2=n" >> .config echo "CONFIG_THUMB2_KERNEL=y" >> .config yes "" | make ARCH=arm oldconfig grep THUMB2 .config
Thanks Amit. These steps worked for me.
That looks correct. For recent trees, CONFIG_THUMB2_KERNEL=y should be enough.
However since Thumb-2 needs ARMv7, for any platform configured to include ARMv6 support in the kernel by default, some platform-specific config change will be needed to remove support for any v6 platform in order for enabling CONFIG_THUMB2_KERNEL to be possible.
Note that CONFIG_ARM_THUMB is a completely independent thing from CONFIG_THUMB2_KERNEL.
CONFIG_THUMB2_KERNEL=y builds the kernel using the Thumb-2 instruction set, but should have no effect on the user/kernel ABI or on what code can execute in userspace. This option can only be turned on if the kernel is not configured to support any pre-ARMv7 CPUs, since a Thumb-2 kernel cannot run on a CPU which doesn't support the Thumb-2 instruction set.
CONFIG_ARM_THUMB=y enables the execution of Thumb binaries in userspace. Without this, Thumb userspace binaries won't work preoperly; Linaro (Ubuntu) armel packages for userspace are all built in Thumb-2, so In order to execute Linaro filesystems this option must always be turned on. This does not cause the kernel to be built in Thumb-2. Fortunately, most defconfigs turn this option on by default anyway.
I tried kernel build with "CONFIG_ARCH_OMAP2=n" and the rebooting problem seems to be fixed. The config file contained something like this below:
grep THUMB /boot/config-3.0.5-758-g051c523-omap2plus-linaro-omap CONFIG_ARM_THUMB=y CONFIG_ARM_THUMBEE=y # CONFIG_THUMB2_KERNEL is not set
grep "CONFIG_ARCH_OMAP2" /boot/config-3.0.5-758-g051c523-omap2plus-linaro-omap CONFIG_ARCH_OMAP2PLUS=y CONFIG_ARCH_OMAP2PLUS_TYPICAL=y # CONFIG_ARCH_OMAP2 is not set
seems like disabling the OMAP2 Config solves the reboot issue and not by enabling the THUMB2 option. So, CONFIG_ARCH_OMAP2 is something which needs to be disabled when we intend to build a kernel with omap2plus_defconfig ? What should be the approach for the Kernel CI work, should we build the kernel by disabling "CONFIG_ARCH_OMAP2" option only? Or should we have a kernel builds with THUMB2 enabled as well ?
Cheers ---Dave