arm64: sysreg: Move to use definitions for all the SCTLR bits
authorJames Morse <james.morse@arm.com>
Mon, 15 Jan 2018 19:38:55 +0000 (19:38 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 16 Jan 2018 15:05:39 +0000 (15:05 +0000)
commit7a00d68ebe5f07cb1db17e7fedfd031f0d87e8bb
tree6a834afe4abdadf7511cbb598a5408e617217728
parentedf298cfce47ab7279d03b5203ae2ef3a58e49db
arm64: sysreg: Move to use definitions for all the SCTLR bits

__cpu_setup() configures SCTLR_EL1 using some hard coded hex masks,
and el2_setup() duplicates some this when setting RES1 bits.

Lets make this the same as KVM's hyp_init, which uses named bits.

First, we add definitions for all the SCTLR_EL{1,2} bits, the RES{1,0}
bits, and those we want to set or clear.

Add a build_bug checks to ensures all bits are either set or clear.
This means we don't need to preserve endian-ness configuration
generated elsewhere.

Finally, move the head.S and proc.S users of these hard-coded masks
over to the macro versions.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/sysreg.h
arch/arm64/kernel/head.S
arch/arm64/mm/proc.S