xref: /openbmc/qemu/target/i386/sev-system-stub.c (revision 65cb7129f4160c7e07a0da107f888ec73ae96776)
1*32cad1ffSPhilippe Mathieu-Daudé /*
2*32cad1ffSPhilippe Mathieu-Daudé  * QEMU SEV system stub
3*32cad1ffSPhilippe Mathieu-Daudé  *
4*32cad1ffSPhilippe Mathieu-Daudé  * Copyright Advanced Micro Devices 2018
5*32cad1ffSPhilippe Mathieu-Daudé  *
6*32cad1ffSPhilippe Mathieu-Daudé  * Authors:
7*32cad1ffSPhilippe Mathieu-Daudé  *      Brijesh Singh <brijesh.singh@amd.com>
8*32cad1ffSPhilippe Mathieu-Daudé  *
9*32cad1ffSPhilippe Mathieu-Daudé  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10*32cad1ffSPhilippe Mathieu-Daudé  * See the COPYING file in the top-level directory.
11*32cad1ffSPhilippe Mathieu-Daudé  *
12*32cad1ffSPhilippe Mathieu-Daudé  */
13*32cad1ffSPhilippe Mathieu-Daudé 
14*32cad1ffSPhilippe Mathieu-Daudé #include "qemu/osdep.h"
15*32cad1ffSPhilippe Mathieu-Daudé #include "monitor/monitor.h"
16*32cad1ffSPhilippe Mathieu-Daudé #include "monitor/hmp-target.h"
17*32cad1ffSPhilippe Mathieu-Daudé #include "qapi/qapi-commands-misc-target.h"
18*32cad1ffSPhilippe Mathieu-Daudé #include "qapi/error.h"
19*32cad1ffSPhilippe Mathieu-Daudé #include "sev.h"
20*32cad1ffSPhilippe Mathieu-Daudé 
qmp_query_sev(Error ** errp)21*32cad1ffSPhilippe Mathieu-Daudé SevInfo *qmp_query_sev(Error **errp)
22*32cad1ffSPhilippe Mathieu-Daudé {
23*32cad1ffSPhilippe Mathieu-Daudé     error_setg(errp, "SEV is not available in this QEMU");
24*32cad1ffSPhilippe Mathieu-Daudé     return NULL;
25*32cad1ffSPhilippe Mathieu-Daudé }
26*32cad1ffSPhilippe Mathieu-Daudé 
qmp_query_sev_launch_measure(Error ** errp)27*32cad1ffSPhilippe Mathieu-Daudé SevLaunchMeasureInfo *qmp_query_sev_launch_measure(Error **errp)
28*32cad1ffSPhilippe Mathieu-Daudé {
29*32cad1ffSPhilippe Mathieu-Daudé     error_setg(errp, "SEV is not available in this QEMU");
30*32cad1ffSPhilippe Mathieu-Daudé     return NULL;
31*32cad1ffSPhilippe Mathieu-Daudé }
32*32cad1ffSPhilippe Mathieu-Daudé 
qmp_query_sev_capabilities(Error ** errp)33*32cad1ffSPhilippe Mathieu-Daudé SevCapability *qmp_query_sev_capabilities(Error **errp)
34*32cad1ffSPhilippe Mathieu-Daudé {
35*32cad1ffSPhilippe Mathieu-Daudé     error_setg(errp, "SEV is not available in this QEMU");
36*32cad1ffSPhilippe Mathieu-Daudé     return NULL;
37*32cad1ffSPhilippe Mathieu-Daudé }
38*32cad1ffSPhilippe Mathieu-Daudé 
qmp_sev_inject_launch_secret(const char * packet_header,const char * secret,bool has_gpa,uint64_t gpa,Error ** errp)39*32cad1ffSPhilippe Mathieu-Daudé void qmp_sev_inject_launch_secret(const char *packet_header, const char *secret,
40*32cad1ffSPhilippe Mathieu-Daudé                                   bool has_gpa, uint64_t gpa, Error **errp)
41*32cad1ffSPhilippe Mathieu-Daudé {
42*32cad1ffSPhilippe Mathieu-Daudé     error_setg(errp, "SEV is not available in this QEMU");
43*32cad1ffSPhilippe Mathieu-Daudé }
44*32cad1ffSPhilippe Mathieu-Daudé 
sev_encrypt_flash(hwaddr gpa,uint8_t * ptr,uint64_t len,Error ** errp)45*32cad1ffSPhilippe Mathieu-Daudé int sev_encrypt_flash(hwaddr gpa, uint8_t *ptr, uint64_t len, Error **errp)
46*32cad1ffSPhilippe Mathieu-Daudé {
47*32cad1ffSPhilippe Mathieu-Daudé     g_assert_not_reached();
48*32cad1ffSPhilippe Mathieu-Daudé }
49*32cad1ffSPhilippe Mathieu-Daudé 
sev_es_set_reset_vector(CPUState * cpu)50*32cad1ffSPhilippe Mathieu-Daudé void sev_es_set_reset_vector(CPUState *cpu)
51*32cad1ffSPhilippe Mathieu-Daudé {
52*32cad1ffSPhilippe Mathieu-Daudé }
53*32cad1ffSPhilippe Mathieu-Daudé 
sev_es_save_reset_vector(void * flash_ptr,uint64_t flash_size)54*32cad1ffSPhilippe Mathieu-Daudé int sev_es_save_reset_vector(void *flash_ptr, uint64_t flash_size)
55*32cad1ffSPhilippe Mathieu-Daudé {
56*32cad1ffSPhilippe Mathieu-Daudé     g_assert_not_reached();
57*32cad1ffSPhilippe Mathieu-Daudé }
58*32cad1ffSPhilippe Mathieu-Daudé 
qmp_query_sev_attestation_report(const char * mnonce,Error ** errp)59*32cad1ffSPhilippe Mathieu-Daudé SevAttestationReport *qmp_query_sev_attestation_report(const char *mnonce,
60*32cad1ffSPhilippe Mathieu-Daudé                                                        Error **errp)
61*32cad1ffSPhilippe Mathieu-Daudé {
62*32cad1ffSPhilippe Mathieu-Daudé     error_setg(errp, "SEV is not available in this QEMU");
63*32cad1ffSPhilippe Mathieu-Daudé     return NULL;
64*32cad1ffSPhilippe Mathieu-Daudé }
65*32cad1ffSPhilippe Mathieu-Daudé 
hmp_info_sev(Monitor * mon,const QDict * qdict)66*32cad1ffSPhilippe Mathieu-Daudé void hmp_info_sev(Monitor *mon, const QDict *qdict)
67*32cad1ffSPhilippe Mathieu-Daudé {
68*32cad1ffSPhilippe Mathieu-Daudé     monitor_printf(mon, "SEV is not available in this QEMU\n");
69*32cad1ffSPhilippe Mathieu-Daudé }
70*32cad1ffSPhilippe Mathieu-Daudé 
pc_system_parse_sev_metadata(uint8_t * flash_ptr,size_t flash_size)71*32cad1ffSPhilippe Mathieu-Daudé void pc_system_parse_sev_metadata(uint8_t *flash_ptr, size_t flash_size)
72*32cad1ffSPhilippe Mathieu-Daudé {
73*32cad1ffSPhilippe Mathieu-Daudé }
74