Hi, While testing James & Dov patch: https://www.mail-archive.com/qemu-devel@nongnu.org/msg810571.html I wasted some time trying to figure out how OVMF was supposed to behave until realizing the binary I was using was built without SEV support... Then wrote this series to help other developers to not hit the same problem.
Some SEV patches I was following have been queued on Eduardo's 'x86-next' tree, so I used his tree as base, and included David and Connor patches to reduce merge conflicts. Patches 1-16 are SEV related, patches 17-23 are OVMF related. Special comment for Laszlo: Please don't review this version, wait for the respin (hoping the SEV cleanup patch get accepted, the respin will be focused on OVMF). Based-on: https://gitlab.com/ehabkost/qemu/-/commits/x86-next/ Supersedes: <20210610064556.1421620-1-phi...@redhat.com> Connor Kuehl (1): MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV Dr. David Alan Gilbert (1): target/i386/sev: sev_get_attestation_report use g_autofree Philippe Mathieu-Daudé (21): qapi/misc-target: Wrap long 'SEV Attestation Report' long lines qapi/misc-target: Group SEV QAPI definitions target/i386/monitor: Return QMP error when SEV is disabled in build target/i386/cpu: Add missing 'qapi/error.h' header target/i386/sev_i386.h: Remove unused headers target/i386/sev: Remove sev_get_me_mask() target/i386/sev: Mark unreachable code with g_assert_not_reached() target/i386/sev: Restrict SEV to system emulation target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c target/i386/sev: Move qmp_sev_inject_launch_secret() to sev.c target/i386/sev: Move qmp_query_sev_capabilities() to sev.c target/i386/sev: Move qmp_query_sev_launch_measure() to sev.c target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c monitor: Restrict 'info sev' to x86 targets hw/i386/acpi-common: Remove unused includes hw/i386: Rename acpi-build.c -> acpi-pc.c hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c hw/acpi: Do not restrict ACPI core routines to x86 architecture hw/i386: Introduce X86_FW_OVMF Kconfig symbol hw/acpi/Kconfig: Add missing Kconfig dependencies (build error) hw/i386/Kconfig: Add missing Kconfig dependency (runtime error) qapi/misc-target.json | 78 ++++++++-------- include/hw/i386/pc.h | 1 + include/monitor/hmp-target.h | 1 + include/monitor/hmp.h | 1 - target/i386/sev_i386.h | 11 --- hw/i386/acpi-common.c | 45 ---------- hw/i386/{acpi-build.c => acpi-pc.c} | 39 ++++++++ hw/i386/pc_sysfw.c | 107 ---------------------- hw/i386/pc_sysfw_ovmf-stubs.c | 26 ++++++ hw/i386/pc_sysfw_ovmf.c | 135 ++++++++++++++++++++++++++++ target/i386/cpu.c | 1 + target/i386/monitor.c | 91 ------------------- target/i386/sev-stub.c | 49 +--------- target/i386/sev-sysemu-stub.c | 69 ++++++++++++++ target/i386/sev.c | 130 +++++++++++++++++++++------ MAINTAINERS | 8 ++ hw/acpi/Kconfig | 4 + hw/acpi/meson.build | 3 +- hw/i386/Kconfig | 5 ++ hw/i386/meson.build | 4 +- target/i386/meson.build | 4 +- 21 files changed, 443 insertions(+), 369 deletions(-) rename hw/i386/{acpi-build.c => acpi-pc.c} (98%) create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c create mode 100644 hw/i386/pc_sysfw_ovmf.c create mode 100644 target/i386/sev-sysemu-stub.c -- 2.31.1