• Ard Biesheuvel's avatar
    arm64: reduce ID map to a single page · 5dfe9d7d
    Ard Biesheuvel authored
    Commit ea8c2e11 ("arm64: Extend the idmap to the whole kernel
    image") changed the early page table code so that the entire kernel
    Image is covered by the identity map. This allows functions that
    need to enable or disable the MMU to reside anywhere in the kernel
    Image.
    
    However, this change has the unfortunate side effect that the Image
    cannot cross a physical 512 MB alignment boundary anymore, since the
    early page table code cannot deal with the Image crossing a /virtual/
    512 MB alignment boundary.
    
    So instead, reduce the ID map to a single page, that is populated by
    the contents of the .idmap.text section. Only three functions reside
    there at the moment: __enable_mmu(), cpu_resume_mmu() and cpu_reset().
    If new code is introduced that needs to manipulate the MMU state, it
    should be added to this section as well.
    Reviewed-by: default avatarMark Rutland <mark.rutland@arm.com>
    Tested-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    5dfe9d7d
head.S 17.5 KB