arm64: big-endian: set correct endianess on kernel entry
authorMatthew Leach <matthew.leach@arm.com>
Fri, 11 Oct 2013 13:52:17 +0000 (14:52 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 25 Oct 2013 14:59:41 +0000 (15:59 +0100)
commit9cf71728931a4073b9e3a4bcbf9dada86bc98370
tree3f691894d37da543d5077307c26e3d450952974e
parent828e9834e9a5b7e61046aa3c5f603a4fecba2fb4
arm64: big-endian: set correct endianess on kernel entry

The endianness of memory accesses at EL2 and EL1 are configured by
SCTLR_EL2.EE and SCTLR_EL1.EE respectively. When the kernel is booted,
the state of SCTLR_EL{2,1}.EE is unknown, and thus the kernel must
ensure that they are set before performing any memory accesses.

This patch ensures that SCTLR_EL{2,1} are configured appropriately at
boot for kernels of either endianness.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Matthew Leach <matthew.leach@arm.com>
[catalin.marinas@arm.com: fix SCTLR_EL1.E0E bit setting in head.S]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/head.S
arch/arm64/mm/proc.S