• David Brazdil's avatar
    arm64: Extract parts of el2_setup into a macro · 78869f0f
    David Brazdil authored
    When a CPU is booted in EL2, the kernel checks for VHE support and
    initializes the CPU core accordingly. For nVHE it also installs the stub
    vectors and drops down to EL1.
    
    Once KVM gains the ability to boot cores without going through the
    kernel entry point, it will need to initialize the CPU the same way.
    Extract the relevant bits of el2_setup into an init_el2_state macro
    with an argument specifying whether to initialize for VHE or nVHE.
    
    The following ifdefs are removed:
     * CONFIG_ARM_GIC_V3 - always selected on arm64
     * CONFIG_COMPAT - hstr_el2 can be set even without 32-bit support
    
    No functional change intended. Size of el2_setup increased by
    148 bytes due to duplication.
    Signed-off-by: default avatarDavid Brazdil <dbrazdil@google.com>
    [maz: reworked to fit the new PSTATE initial setup code]
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20201202184122.26046-9-dbrazdil@google.com
    78869f0f
head.S 25 KB