Hi All,
This is an informational post about our plans for the enablement of AMD SEV
support in Xen. This work will be done as part of the Hyper OpenX project[1].
Phase Zero:
----------------
Our primary intention is to gather the necessary information required to
commence the upstream work for this project. This phase also encompasses
the development of a small demo to demonstrate the SME technology itself.
Please note, this small demo won't be part of the upstream, as its primary
purpose is to demonstrate the SME technology as part of Hyper OpenX
project. And it is not integral to the enablement work in Xen. Although the
demo code will be open source, so feel free to keep an eye on this repo[2]
as we'll add the related links there.
Phase One:
----------------
The main goal of this phase is to achieve basic SEV support using XTF
guests. This work will entail:
- Xen adaptations to make it compliant with SEV technology. (For example:
how Xen currently manages multiple ASIDs for a single VM)
- An ASP/PSP driver for platform and key management.
- ASID allocation mechanism
Dom0:
- Introduction of a security hypercall and an ASP sub-op
- Support for enabling SEV during guest creation
DomU XTF:
- Support for the security hypercall and ASP sub-op
- Support for the C bit
- Test cases for OSS-Test to launch the XTF guest
Phase Two:
----------------
This phase emphasizes achieving full support for the PVH VM with
paravirtualized devices capable of running in the SEV-ES environment. The
primary tasks include:
- SEV-ES support addition
- GHCB MSR protocol implementation and #vc handler
- Enhancements in PV protocol related to PV devices framework (Xenstore/Xen
console)
- Adjustments in VMEXIT handling
- Establishing ABI rules for the HVM ABI redesign
- Dom0 developments concerning the HVM ABI redesign
- OSS Test: PVH Linux+initrd+metadata+signature mimicking phase one XTF test
- XTF(testing): comprehensive test cases for the new HVM ABI
Phase Three:
-----------------
This phase revolves around enabling SEV-SNP support for PVH Linux guests.
Predominantly, this will require:
- Addition of alternative SNP commands supporting the API and extending the
flow in the PSP/ASP driver
- Hypercall expansion for domain creation
- Developments in RMP Management
- Dom0 and DomU developments related to the enablement of SNP in guests
- Testing that includes support for guest RMP instructions
We're also looking forward to integrating CI and documenting the various
project stages. Like any significant upstream project, implementation
details may change as we advance. However, we are committed to
collaborating and communicating with the Xen community regarding any
modifications.
We would also like to thank Andrew and folks from Apertus solutions , in
doing the early research with regards to defining the tasks for the AMD
SEV-SNP enablement in Xen.
Please don't hesitate to reply here or email me & Andrei (CC'ed here) if
you have any further inquiries.
Thank you,
Vaishali
[1]
https://www.lemondeinformatique.fr/actualites/lire-hyper-open-x-sort-de-terre-avec-10-meteuro-de-financements-90954.html
[2] https://github.com/xcp-ng/hyper-sev-project