mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
xtensa: fix boot parameters address translation
commit 40dc948f23 upstream.
The bootloader may pass physical address of the boot parameters structure
to the MMUv3 kernel in the register a2. Code in the _SetupMMU block in
the arch/xtensa/kernel/head.S is supposed to map that physical address to
the virtual address in the configured virtual memory layout.
This code haven't been updated when additional 256+256 and 512+512
memory layouts were introduced and it may produce wrong addresses when
used with these layouts.
Cc: stable@vger.kernel.org
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
591dd5df17
commit
3ad5f23377
@@ -88,9 +88,12 @@ _SetupMMU:
|
|||||||
initialize_mmu
|
initialize_mmu
|
||||||
#if defined(CONFIG_MMU) && XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
|
#if defined(CONFIG_MMU) && XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
|
||||||
rsr a2, excsave1
|
rsr a2, excsave1
|
||||||
movi a3, 0x08000000
|
movi a3, XCHAL_KSEG_PADDR
|
||||||
|
bltu a2, a3, 1f
|
||||||
|
sub a2, a2, a3
|
||||||
|
movi a3, XCHAL_KSEG_SIZE
|
||||||
bgeu a2, a3, 1f
|
bgeu a2, a3, 1f
|
||||||
movi a3, 0xd0000000
|
movi a3, XCHAL_KSEG_CACHED_VADDR
|
||||||
add a2, a2, a3
|
add a2, a2, a3
|
||||||
wsr a2, excsave1
|
wsr a2, excsave1
|
||||||
1:
|
1:
|
||||||
|
|||||||
Reference in New Issue
Block a user