• Mark Rutland's avatar
    arm64: psci: account for Trusted OS instances · ff3010e6
    Mark Rutland authored
    Software resident in the secure world (a "Trusted OS") may cause CPU_OFF
    calls for the CPU it is resident on to be denied. Such a denial would be
    fatal for the kernel, and so we must detect when this can happen before
    the point of no return.
    
    This patch implements Trusted OS detection for PSCI 0.2+ systems, using
    MIGRATE_INFO_TYPE and MIGRATE_INFO_UP_CPU. When a trusted OS is detected
    as resident on a particular CPU, attempts to hot unplug that CPU will be
    denied early, before they can prove fatal.
    
    Trusted OS migration is not implemented by this patch. Implementation of
    migratable UP trusted OSs seems unlikely, and the right policy for
    migration is unclear (and will likely differ across implementations). As
    such, it is likely that migration will require cooperation with Trusted
    OS drivers.
    
    PSCI implementations prior to 0.1 do not provide the facility to detect
    the presence of a Trusted OS, nor the CPU any such OS is resident on, so
    without additional information it is not possible to handle Trusted OSs
    with PSCI 0.1.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Tested-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    ff3010e6
psci.c 14.1 KB