[PATCH 0/2] Hyper-V VTL support

Saurabh Sengar
2023-03-01T10:08:24Z

This patch series introduces support for Virtual Trust Level (VTL)
in Hyper-V systems. It provide a foundation for the implementation
of Hyper-V VSM support in the Linux kernel, providing a secure
platform for the development and deployment of applications.

Virtual Secure Mode (VSM) is a critical aspect of the security
infrastructure in Hyper-V systems. It provides a set of hypervisor
capabilities and enlightenments that enable the creation and
management of new security boundaries within operating system
software. The VSM achieves and maintains isolation through Virtual
Trust Levels, which are hierarchical, with higher levels being more
privileged than lower levels. Please refer to this link for further
information: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm

This patch series adds the initialization of the x86 platform for VTL
systems. This also adds the VTL early bootup code for initializing
and bringing up secondary cpus to targeted VTL context. In VTL, AP
has to start directly in the 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.

Currently only VTL level supprted is '2'. This patch series is tested
extensively on VTL2 systems.

Saurabh Sengar (2):
x86/init: Make get/set_rtc_noop() public
x86/hyperv: VTL support for Hyper-V

arch/x86/Kconfig | 23 +++
arch/x86/hyperv/Makefile | 1 +
arch/x86/hyperv/hv_vtl.c | 242 +++++++++++++++++++++++++++++
arch/x86/include/asm/hyperv-tlfs.h | 75 +++++++++
arch/x86/include/asm/mshyperv.h | 14 ++
arch/x86/include/asm/x86_init.h | 2 +
arch/x86/kernel/cpu/mshyperv.c | 6 +-
arch/x86/kernel/x86_init.c | 4 +-
include/asm-generic/hyperv-tlfs.h | 4 +
9 files changed, 364 insertions(+), 7 deletions(-)
create mode 100644 arch/x86/hyperv/hv_vtl.c

--
2.34.1