diff options
author | Saurabh Sengar <ssengar@linux.microsoft.com> | 2023-04-10 22:55:32 -0700 |
---|---|---|
committer | Wei Liu <wei.liu@kernel.org> | 2023-04-18 17:29:52 +0000 |
commit | 3be1bc2fe9d2e4fc1375efa2567d2f58cd2a2a7c (patch) | |
tree | a23d6ae4e942929e5fab08902fea6244eaffe4c1 /arch/x86/kernel/cpu | |
parent | d01b9a9f2d0131e1e249177a70e6b80d146d16d2 (diff) | |
download | linux-stable-3be1bc2fe9d2e4fc1375efa2567d2f58cd2a2a7c.tar.gz linux-stable-3be1bc2fe9d2e4fc1375efa2567d2f58cd2a2a7c.tar.bz2 linux-stable-3be1bc2fe9d2e4fc1375efa2567d2f58cd2a2a7c.zip |
x86/hyperv: VTL support for Hyper-V
Virtual Trust Levels (VTL) helps enable Hyper-V Virtual Secure Mode (VSM)
feature. VSM is a set of hypervisor capabilities and enlightenments
offered to host and guest partitions which enable the creation and
management of new security boundaries within operating system software.
VSM achieves and maintains isolation through VTLs.
Add early initialization for Virtual Trust Levels (VTL). This includes
initializing the x86 platform for VTL and enabling boot support for
secondary CPUs to start in targeted VTL context. For now, only enable
the code for targeted VTL level as 2.
When starting an AP at a VTL other than VTL0, the AP must start directly
in 64-bit mode, bypassing the usual 16-bit -> 32-bit -> 64-bit mode
transition sequence that occurs after waking up an AP with SIPI whose
vector points to the 16-bit AP startup trampoline code.
Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Stanislav Kinsburskii <stanislav.kinsburskii@gmail.com>
Link: https://lore.kernel.org/r/1681192532-15460-6-git-send-email-ssengar@linux.microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/mshyperv.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c index c8a0e70cc484..c7969e806c64 100644 --- a/arch/x86/kernel/cpu/mshyperv.c +++ b/arch/x86/kernel/cpu/mshyperv.c @@ -514,6 +514,7 @@ static void __init ms_hyperv_init_platform(void) /* Register Hyper-V specific clocksource */ hv_init_clocksource(); + hv_vtl_init_platform(); #endif /* * TSC should be marked as unstable only after Hyper-V |