Skip to content

ARM: omap[34]: Thumb-2 compatibility fixes

Kevin Hilman linux-arm-kernel linux-omap 7 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest posting 3/30 of 5 patches 0 repliesNew
  2. v5 posting 2/30 of 5 patches 0 repliesSuperseded
  3. v5 posting 1/30 of 5 patches 0 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v4 posting 3/30 of 5 patches0 repliesSuperseded
v4 posting 2/30 of 5 patches0 repliesSuperseded
v4 posting 1/30 of 5 patches0 repliesSuperseded
v22 of 5 patches0 repliesSuperseded

Patches in v5 posting 3/3 No applies recorded yet

None of the 5 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [PATCH v5 REPOST 0/5] ARM: omap[34]: Thumb-2 compatibility fixes
Quoted 11 lines · Dave Martin

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 maintainers.

At least some of this code definitely works, most features have been tested successfully. Further testing, especially of Thumb-2 behaviour, is still welcome.

Quoted 7 lines

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

Jean Pihet and I have now done both retention and off-mode testing of these, so I'll add a Tested-by for the last two for Jean and queue these for 2.6.39 in my PM queue

git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git for_2.6.39/pm-misc

If you want to do sanity checking with all the other OMAP PM stuff that is queued for 2.6.39, feel free to test with my pm-core branch in the tree above. This has all OMAP PM related changes that will be queued for 2.6.39 integrated.

FWIW, I also tested on 3430/n900 (retention and off-mode) and 3630/Zoom3 (retention-only, since the Si rev have has off-mode errata.)

Kevin

Quoted 84 lines

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.

v3:
* make SMC instruction syntax more consistent
* remove do_wfi() in favour of the generic wfi() macro

v4:
* revert to the OMAP-specific do_wfi() implementation, pending discussion of how generic macros can/should be provided

v5:
* 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.

Details below.

Cheers,
Dave

The patches can be found, along with a buildable working tree, in the following repo:

git://git.linaro.org/people/dmart/linux-2.6-arm.git

* 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:
http://people.linaro.org/~dmart/arm_omap-thumb2+v2_config :

CONFIG_SMP_ON_UP=y
CONFIG_THUMB2_KERNEL=y
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:

http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git devel

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git omap-testing

This series also depends on one un-merged patch to generic-ise the wfi() macro:

git://git.linaro.org/people/dmart/linux-2.6-arm.git arm/wfi-macro

Dave Martin (5):
ARM: omap4: Provide do_wfi() for Thumb-2
ARM: omap4: Convert END() to ENDPROC() for correct linkage with
CONFIG_THUMB2_KERNEL
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(-)