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>
This commit is contained in:
@@ -482,6 +482,9 @@ __und_usr:
|
||||
subeq r4, r2, #4 @ ARM instr at LR - 4
|
||||
subne r4, r2, #2 @ Thumb instr at LR - 2
|
||||
1: ldreqt r0, [r4]
|
||||
#ifdef CONFIG_CPU_ENDIAN_BE8
|
||||
reveq r0, r0 @ little endian instruction
|
||||
#endif
|
||||
beq call_fpe
|
||||
@ Thumb instruction
|
||||
#if __LINUX_ARM_ARCH__ >= 7
|
||||
|
Referens i nytt ärende
Block a user