Skip to content

Commit 7fb00c2

Browse files
Konstantin KhlebnikovRussell King
authored andcommitted
ARM: 8114/1: LPAE: load upper bits of early TTBR0/TTBR1
This patch fixes booting when idmap pgd lays above 4gb. Commit 4756dcb mostly had fixed this, but it'd failed to load upper bits. Also this fixes adding TTBR1_OFFSET to TTRR1: if lower part overflows carry flag must be added to the upper part. Signed-off-by: Konstantin Khlebnikov <[email protected]> Signed-off-by: Russell King <[email protected]>
1 parent c309bfa commit 7fb00c2

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

arch/arm/mm/proc-v7-3level.S

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,11 @@ ENDPROC(cpu_v7_set_pte_ext)
146146
mov \tmp, \ttbr1, lsr #(32 - ARCH_PGD_SHIFT) @ upper bits
147147
mov \ttbr1, \ttbr1, lsl #ARCH_PGD_SHIFT @ lower bits
148148
addls \ttbr1, \ttbr1, #TTBR1_OFFSET
149-
mcrr p15, 1, \ttbr1, \zero, c2 @ load TTBR1
149+
adcls \tmp, \tmp, #0
150+
mcrr p15, 1, \ttbr1, \tmp, c2 @ load TTBR1
150151
mov \tmp, \ttbr0, lsr #(32 - ARCH_PGD_SHIFT) @ upper bits
151152
mov \ttbr0, \ttbr0, lsl #ARCH_PGD_SHIFT @ lower bits
152-
mcrr p15, 0, \ttbr0, \zero, c2 @ load TTBR0
153-
mcrr p15, 1, \ttbr1, \zero, c2 @ load TTBR1
154-
mcrr p15, 0, \ttbr0, \zero, c2 @ load TTBR0
153+
mcrr p15, 0, \ttbr0, \tmp, c2 @ load TTBR0
155154
.endm
156155

157156
/*

0 commit comments

Comments
 (0)