For AMD SEV-ES, kvm-unit-tests currently rely on UEFI to set up a #VC exception handler. This series adds #VC exception processing from Linux to kvm-unit-tests. Based on the kvm-unit-tests uefi branch at 2fbec2578 ("x86 UEFI: Make _NO_FILE_4Uhere_ work w/ BOOTX64.EFI") Tree: https://github.com/varadgautam/kvm-unit-tests/tree/vc-handler-v1 Varad Gautam (13): x86/efi: Allow specifying AMD SEV/SEV-ES guest launch policy x86: AMD SEV-ES: Setup #VC exception handler for AMD SEV-ES x86: Move svm.h to lib/x86/ lib: x86: Import insn decoder from Linux x86: AMD SEV-ES: Pull related GHCB definitions and helpers from Linux x86: AMD SEV-ES: Prepare for #VC processing x86: AMD SEV-ES: Handle WBINVD #VC lib/x86: Move xsave helpers to lib/ x86: AMD SEV-ES: Handle CPUID #VC x86: AMD SEV-ES: Handle RDTSC/RDTSCP #VC x86: AMD SEV-ES: Handle MSR #VC x86: AMD SEV-ES: Handle IOIO #VC x86: AMD SEV-ES: Handle string IO for IOIO #VC Makefile | 3 + configure | 16 + lib/x86/amd_sev.c | 3 +- lib/x86/amd_sev.h | 107 +++ lib/x86/amd_sev_vc.c | 504 ++++++++++++ lib/x86/desc.c | 15 + lib/x86/desc.h | 1 + lib/x86/insn/inat-tables.c | 1566 ++++++++++++++++++++++++++++++++++++ lib/x86/insn/inat.c | 86 ++ lib/x86/insn/inat.h | 233 ++++++ lib/x86/insn/inat_types.h | 18 + lib/x86/insn/insn.c | 778 ++++++++++++++++++ lib/x86/insn/insn.h | 280 +++++++ lib/x86/setup.c | 10 + {x86 => lib/x86}/svm.h | 37 + lib/x86/xsave.c | 37 + lib/x86/xsave.h | 16 + x86/Makefile.common | 4 + x86/Makefile.x86_64 | 1 + x86/efi/README.md | 5 + x86/efi/run | 16 + x86/svm.c | 2 +- x86/svm_tests.c | 2 +- x86/xsave.c | 43 +- 24 files changed, 3738 insertions(+), 45 deletions(-) create mode 100644 lib/x86/amd_sev_vc.c create mode 100644 lib/x86/insn/inat-tables.c create mode 100644 lib/x86/insn/inat.c create mode 100644 lib/x86/insn/inat.h create mode 100644 lib/x86/insn/inat_types.h create mode 100644 lib/x86/insn/insn.c create mode 100644 lib/x86/insn/insn.h rename {x86 => lib/x86}/svm.h (93%) create mode 100644 lib/x86/xsave.c create mode 100644 lib/x86/xsave.h -- 2.32.0