x86/hyperv: VTL support for Hyper-V
authorSaurabh Sengar <ssengar@linux.microsoft.com>
Tue, 11 Apr 2023 05:55:32 +0000 (22:55 -0700)
committerWei Liu <wei.liu@kernel.org>
Tue, 18 Apr 2023 17:29:52 +0000 (17:29 +0000)
commit3be1bc2fe9d2e4fc1375efa2567d2f58cd2a2a7c
treea23d6ae4e942929e5fab08902fea6244eaffe4c1
parentd01b9a9f2d0131e1e249177a70e6b80d146d16d2
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>
arch/x86/hyperv/Makefile
arch/x86/hyperv/hv_vtl.c [new file with mode: 0644]
arch/x86/include/asm/mshyperv.h
arch/x86/kernel/cpu/mshyperv.c