diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2023-01-11 11:22:33 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2023-01-24 11:51:07 +0000 |
commit | 9d7c13e5dde31270eb48a34204a2e06b1a719546 (patch) | |
tree | cbf118907451a3e1cdbeecd2e5fd906e8672f295 /drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |
parent | af7249b317e4d0b3d5a0ebbb7ee7a0f336ca7bca (diff) |
arm64: head: record the MMU state at primary entry
Prepare for being able to deal with primary entry with the MMU and
caches enabled, by recording whether or not we entered with the MMU on
in register x19 and in a global variable. (Note that setting this
variable to '1' does not require cache invalidation, nor is it required
for storing the bootargs in that case, so omit the cache maintenance).
Since boot with the MMU and caches enabled is not permitted by the bare
metal boot protocol, ensure that a diagnostic is emitted and a taint bit
set if the MMU was found to be enabled on a non-EFI boot, and panic()
once the console is likely to be up. We will make an exception for EFI
boot later, which has strict requirements for the mapping of system
memory, permitting us to relax the boot protocol and hand over from the
EFI stub to the core kernel with MMU and caches left enabled.
While at it, add 'pre_disable_mmu_workaround' macro invocations to
init_kernel_el, as its manipulation of SCTLR_ELx may amount to disabling
of the MMU after subsequent patches.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20230111102236.1430401-4-ardb@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
0 files changed, 0 insertions, 0 deletions