[PATCH v5 REPOST 0/5] ARM: omap: Thumb-2 compatibility fixes
dave.martin at linaro.org
Fri Mar 4 15:33:52 UTC 2011
This set of patches, along with some other patches under
discussion on alkml, should enable omap3 and omap4 kernels to be
built with CONFIG_THUMB2_KERNEL.
This patch set builds on recent cleanup done by the omap
At least some of this code definitely works, most features have
been tested successfully. Further testing, especially of Thumb-2
behaviour, is still welcome.
In particular, I still have no Ack/Tested-by on the following
patches, so it would be great if anyone who has an opportunity
to do a final review / re-test can do so.
* ARM: omap3: Convert END() to ENDPROC() for correct linkage with CONFIG_THUMB2_KERNEL
* ARM: omap3: Thumb-2 compatibility for sram34xx.S
* ARM: omap3: Thumb-2 compatibility for sleep34xx.S
Seems to work with CONFIG_SMP_ON_UP and CONFIG_THUMB2_KERNEL
enabled on Beagle xM A2 and Panda A1.
Thanks also to Santosh Shilimkar and Kevin Hilman for their help
with testing so far.
* make SMC instruction syntax more consistent
* remove do_wfi() in favour of the generic wfi() macro
* revert to the OMAP-specific do_wfi() implementation, pending
discussion of how generic macros can/should be provided
* use ARM for low-level code in mach-omap2/*34xx.S, for
correct interoperation with non-Thumb-capable firmware.
I've stripped the Acked/Tested-bys from the major patches to
mach-omap2/*34xx.S, since the reversion to ARM constitutes a
significant change -- I would be grateful if people could re-
test / re-review if they have the chance.
For best future compatibility, I've left the changes which
avoid architecturally deprecated features.
The patches can be found, along with a buildable working tree,
in the following repo:
* arm/omap-thumb2: has the patches proposed here
* arm/omap-thumb2+merged: additionally has some patches cherry-
picked from other trees which are needed in order for the
patches on arm/omap-thumb2 to work usefully.
* dirty/arm/omap-thumb2+merged: buildable test tree, which adds
2 local patches to work around a toolchain bug.
A working kernel config for this tree is here:
CONFIG_SERIAL_OMAP=y (to avoid garbage on xM; for Panda use console=ttyS2)
(The config is derived from the linaro omap config and so turns on
loads of modules -- don't feel you have to build them all...)
Cherry-picked patches originated from Russell's devel tree
and Tony Lindgren's omap-testing tree:
This series also depends on one un-merged patch to generic-ise
the wfi() macro:
Dave Martin (5):
ARM: omap4: Provide do_wfi() for Thumb-2
ARM: omap4: Convert END() to ENDPROC() for correct linkage with
ARM: omap3: Remove hand-encoded SMC instructions
ARM: omap3: Thumb-2 compatibility for sram34xx.S
ARM: omap3: Thumb-2 compatibility for sleep34xx.S
arch/arm/mach-omap2/include/mach/omap4-common.h | 4 ++
arch/arm/mach-omap2/omap-headsmp.S | 2 +-
arch/arm/mach-omap2/omap44xx-smc.S | 8 ++--
arch/arm/mach-omap2/sleep34xx.S | 62 ++++++++++++++++++----
arch/arm/mach-omap2/sram34xx.S | 36 ++++++++++---
5 files changed, 87 insertions(+), 25 deletions(-)
More information about the linaro-dev