From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Laszlo Ersek" <lersek@redhat.com>,
"Brijesh Singh" <brijesh.singh@amd.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Sergio Lopez" <slp@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Connor Kuehl" <ckuehl@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"James Bottomley" <jejb@linux.ibm.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Dov Murik" <dovmurik@linux.ibm.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eric Blake" <eblake@redhat.com>
Subject: [PATCH v2 10/23] target/i386/sev: Restrict SEV to system emulation
Date: Wed, 16 Jun 2021 22:43:15 +0200 [thread overview]
Message-ID: <20210616204328.2611406-11-philmd@redhat.com> (raw)
In-Reply-To: <20210616204328.2611406-1-philmd@redhat.com>
SEV is irrelevant on user emulation, so restrict it to sysemu.
Some stubs are still required because used in cpu.c by
x86_register_cpudef_types(), so move the sysemu specific stubs
to sev-sysemu-stub.c instead. This will allow us to simplify
monitor.c (which is not available in user emulation) in the
next commit.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
target/i386/sev-stub.c | 43 -------------------------
target/i386/sev-sysemu-stub.c | 60 +++++++++++++++++++++++++++++++++++
target/i386/meson.build | 4 ++-
3 files changed, 63 insertions(+), 44 deletions(-)
create mode 100644 target/i386/sev-sysemu-stub.c
diff --git a/target/i386/sev-stub.c b/target/i386/sev-stub.c
index 4668365fd3e..8eae5d2fa8d 100644
--- a/target/i386/sev-stub.c
+++ b/target/i386/sev-stub.c
@@ -15,11 +15,6 @@
#include "qapi/error.h"
#include "sev_i386.h"
-SevInfo *sev_get_info(void)
-{
- return NULL;
-}
-
bool sev_enabled(void)
{
return false;
@@ -35,45 +30,7 @@ uint32_t sev_get_reduced_phys_bits(void)
return 0;
}
-char *sev_get_launch_measurement(void)
-{
- return NULL;
-}
-
-SevCapability *sev_get_capabilities(Error **errp)
-{
- error_setg(errp, "SEV is not available in this QEMU");
- return NULL;
-}
-
-int sev_inject_launch_secret(const char *hdr, const char *secret,
- uint64_t gpa, Error **errp)
-{
- return 1;
-}
-
-int sev_encrypt_flash(uint8_t *ptr, uint64_t len, Error **errp)
-{
- g_assert_not_reached();
-}
-
bool sev_es_enabled(void)
{
return false;
}
-
-void sev_es_set_reset_vector(CPUState *cpu)
-{
-}
-
-int sev_es_save_reset_vector(void *flash_ptr, uint64_t flash_size)
-{
- g_assert_not_reached();
-}
-
-SevAttestationReport *
-sev_get_attestation_report(const char *mnonce, Error **errp)
-{
- error_setg(errp, "SEV is not available in this QEMU");
- return NULL;
-}
diff --git a/target/i386/sev-sysemu-stub.c b/target/i386/sev-sysemu-stub.c
new file mode 100644
index 00000000000..d556b4f091f
--- /dev/null
+++ b/target/i386/sev-sysemu-stub.c
@@ -0,0 +1,60 @@
+/*
+ * QEMU SEV system stub
+ *
+ * Copyright Advanced Micro Devices 2018
+ *
+ * Authors:
+ * Brijesh Singh <brijesh.singh@amd.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qapi/qapi-commands-misc-target.h"
+#include "qapi/error.h"
+#include "sev_i386.h"
+
+SevInfo *sev_get_info(void)
+{
+ return NULL;
+}
+
+char *sev_get_launch_measurement(void)
+{
+ return NULL;
+}
+
+SevCapability *sev_get_capabilities(Error **errp)
+{
+ error_setg(errp, "SEV is not available in this QEMU");
+ return NULL;
+}
+
+int sev_inject_launch_secret(const char *hdr, const char *secret,
+ uint64_t gpa, Error **errp)
+{
+ return 1;
+}
+
+int sev_encrypt_flash(uint8_t *ptr, uint64_t len, Error **errp)
+{
+ g_assert_not_reached();
+}
+
+void sev_es_set_reset_vector(CPUState *cpu)
+{
+}
+
+int sev_es_save_reset_vector(void *flash_ptr, uint64_t flash_size)
+{
+ g_assert_not_reached();
+}
+
+SevAttestationReport *sev_get_attestation_report(const char *mnonce,
+ Error **errp)
+{
+ error_setg(errp, "SEV is not available in this QEMU");
+ return NULL;
+}
diff --git a/target/i386/meson.build b/target/i386/meson.build
index dac19ec00d4..a4f45c3ec1d 100644
--- a/target/i386/meson.build
+++ b/target/i386/meson.build
@@ -6,7 +6,7 @@
'xsave_helper.c',
'cpu-dump.c',
))
-i386_ss.add(when: 'CONFIG_SEV', if_true: files('host-cpu.c', 'sev.c'), if_false: files('sev-stub.c'))
+i386_ss.add(when: 'CONFIG_SEV', if_true: files('host-cpu.c'), if_false: files('sev-stub.c'))
# x86 cpu type
i386_ss.add(when: 'CONFIG_KVM', if_true: files('host-cpu.c'))
@@ -20,6 +20,8 @@
'monitor.c',
'cpu-sysemu.c',
))
+i386_softmmu_ss.add(when: 'CONFIG_SEV', if_true: files('sev.c'), if_false: files('sev-sysemu-stub.c'))
+
i386_user_ss = ss.source_set()
subdir('kvm')
--
2.31.1
next prev parent reply other threads:[~2021-06-16 20:55 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-16 20:43 [PATCH v2 00/23] target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries) Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 01/23] MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV Philippe Mathieu-Daudé
2021-08-30 14:18 ` Philippe Mathieu-Daudé
2021-08-30 14:21 ` Connor Kuehl
2021-06-16 20:43 ` [PATCH v2 02/23] qapi/misc-target: Wrap long 'SEV Attestation Report' long lines Philippe Mathieu-Daudé
2021-06-24 11:04 ` Dr. David Alan Gilbert
2021-08-30 15:07 ` Markus Armbruster
2021-08-30 15:08 ` Markus Armbruster
2021-06-16 20:43 ` [PATCH v2 03/23] qapi/misc-target: Group SEV QAPI definitions Philippe Mathieu-Daudé
2021-06-24 6:13 ` Dov Murik
2021-06-24 7:52 ` Philippe Mathieu-Daudé
2021-08-30 15:11 ` Markus Armbruster
2021-06-16 20:43 ` [PATCH v2 04/23] target/i386/monitor: Return QMP error when SEV is disabled in build Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 05/23] target/i386/cpu: Add missing 'qapi/error.h' header Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 06/23] target/i386/sev_i386.h: Remove unused headers Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 07/23] target/i386/sev: Remove sev_get_me_mask() Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 08/23] target/i386/sev: Mark unreachable code with g_assert_not_reached() Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 09/23] target/i386/sev: sev_get_attestation_report use g_autofree Philippe Mathieu-Daudé
2021-06-16 20:43 ` Philippe Mathieu-Daudé [this message]
2021-06-16 20:43 ` [PATCH v2 11/23] target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 12/23] target/i386/sev: Move qmp_sev_inject_launch_secret() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 13/23] target/i386/sev: Move qmp_query_sev_capabilities() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 14/23] target/i386/sev: Move qmp_query_sev_launch_measure() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 15/23] target/i386/sev: Move qmp_query_sev() & hmp_info_sev() " Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 16/23] monitor: Restrict 'info sev' to x86 targets Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 17/23] hw/i386/acpi-common: Remove unused includes Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 18/23] hw/i386: Rename acpi-build.c -> acpi-pc.c Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 19/23] hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c Philippe Mathieu-Daudé
2021-06-18 11:37 ` Igor Mammedov
2021-06-19 8:45 ` Philippe Mathieu-Daudé
2021-06-19 21:32 ` Michael S. Tsirkin
2021-06-21 8:41 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 20/23] hw/acpi: Do not restrict ACPI core routines to x86 architecture Philippe Mathieu-Daudé
2021-06-17 20:40 ` Michael S. Tsirkin
2021-07-20 13:24 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 21/23] hw/i386: Introduce X86_FW_OVMF Kconfig symbol Philippe Mathieu-Daudé
2021-07-12 14:38 ` Philippe Mathieu-Daudé
2021-06-16 20:43 ` [PATCH v2 22/23] hw/acpi/Kconfig: Add missing Kconfig dependencies (build error) Philippe Mathieu-Daudé
2021-06-17 5:20 ` Gerd Hoffmann
2021-06-16 20:43 ` [PATCH v2 23/23] hw/i386/Kconfig: Add missing Kconfig dependency (runtime error) Philippe Mathieu-Daudé
2021-06-17 5:21 ` Gerd Hoffmann
2021-06-17 20:42 ` [PATCH v2 00/23] target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries) Michael S. Tsirkin
2021-06-18 11:46 ` Igor Mammedov
2021-06-18 12:53 ` Michael S. Tsirkin
2021-06-23 21:37 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210616204328.2611406-11-philmd@redhat.com \
--to=philmd@redhat.com \
--cc=armbru@redhat.com \
--cc=brijesh.singh@amd.com \
--cc=ckuehl@redhat.com \
--cc=dgilbert@redhat.com \
--cc=dovmurik@linux.ibm.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jejb@linux.ibm.com \
--cc=kraxel@redhat.com \
--cc=lersek@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=slp@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).