Add core support for ARMv6/v7 big-endian
authorCatalin Marinas <catalin.marinas@arm.com>
Sat, 30 May 2009 13:00:18 +0000 (14:00 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Sat, 30 May 2009 13:00:18 +0000 (14:00 +0100)
commit26584853a44c58f3d6ac7360d697a2ddcd1a3efa
treea47156d781c6207d316746a056a81ca82b90d452
parentee8c9571191e588ede9a220ded807e33c4897d91
Add core support for ARMv6/v7 big-endian

Starting with ARMv6, the CPUs support the BE-8 variant of big-endian
(byte-invariant). This patch adds the core support:

- setting of the BE-8 mode via the CPSR.E register for both kernel and
  user threads
- big-endian page table walking
- REV used to rotate instructions read from memory during fault
  processing as they are still little-endian format
- Kconfig and Makefile support for BE-8. The --be8 option must be passed
  to the final linking stage to convert the instructions to
  little-endian

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
12 files changed:
arch/arm/Makefile
arch/arm/boot/compressed/Makefile
arch/arm/boot/compressed/head.S
arch/arm/include/asm/processor.h
arch/arm/include/asm/ptrace.h
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-common.S
arch/arm/kernel/process.c
arch/arm/mm/Kconfig
arch/arm/mm/abort-ev6.S
arch/arm/mm/proc-v6.S
arch/arm/mm/proc-v7.S