mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
* SGX implementation for x86
* Miscellaneous bugfixes * Fix dependencies from ROMs to qtests -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmFVu/sUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroNFUgf+OexjKqJw4qzbDdQrxWqw3upoFblk y4OrmrhCyCKDwPghnjHUEVGHnNKqKpCLoIvtvFZ7xX/qezpMtZxVUliOVNQGmioR MZU/DbdlvVL/t8yKjfz1ljshk55hnSJ7rAv8LBA+B3uNzyJ+LZU9+Kbvmei5oyex nenCtXnoVNBJMvTBE/KfJbp0UasEb1OTvPBa0Y7mHyDub28FDPKr9WZbloCLUtE+ uXwbZ34VRDsxbLnXh+BJ+ljOQLdsJErAkiPKTnW1/3W8Ti7PzOzvLpbSIVdBv/9A U1qOEm48BjCrG/tFJvTUm0ZM7AHmqYfvmwpenDpL0FhReohMdUa3pycQ9g== =Hicy -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging * SGX implementation for x86 * Miscellaneous bugfixes * Fix dependencies from ROMs to qtests # gpg: Signature made Thu 30 Sep 2021 14:30:35 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini-gitlab/tags/for-upstream: (33 commits) meson_options.txt: Switch the default value for the vnc option to 'auto' build-sys: add HAVE_IPPROTO_MPTCP memory: Add tracepoint for dirty sync memory: Name all the memory listeners target/i386: Fix memory leak in sev_read_file_base64() tests: qtest: bios-tables-test depends on the unpacked edk2 ROMs meson: unpack edk2 firmware even if --disable-blobs target/i386: Add the query-sgx-capabilities QMP command target/i386: Add HMP and QMP interfaces for SGX docs/system: Add SGX documentation to the system manual sgx-epc: Add the fill_device_info() callback support i440fx: Add support for SGX EPC q35: Add support for SGX EPC i386: acpi: Add SGX EPC entry to ACPI tables i386/pc: Add e820 entry for SGX EPC section(s) hw/i386/pc: Account for SGX EPC sections when calculating device memory hw/i386/fw_cfg: Set SGX bits in feature control fw_cfg accordingly Adjust min CPUID level to 0x12 when SGX is enabled i386: Propagate SGX CPUID sub-leafs to KVM i386: kvm: Add support for exposing PROVISIONKEY to guest ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
0021c4765a
64 changed files with 1397 additions and 38 deletions
|
@ -1194,13 +1194,36 @@
|
|||
}
|
||||
}
|
||||
|
||||
##
|
||||
# @SgxEPCDeviceInfo:
|
||||
#
|
||||
# Sgx EPC state information
|
||||
#
|
||||
# @id: device's ID
|
||||
#
|
||||
# @memaddr: physical address in memory, where device is mapped
|
||||
#
|
||||
# @size: size of memory that the device provides
|
||||
#
|
||||
# @memdev: memory backend linked with device
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'SgxEPCDeviceInfo',
|
||||
'data': { '*id': 'str',
|
||||
'memaddr': 'size',
|
||||
'size': 'size',
|
||||
'memdev': 'str'
|
||||
}
|
||||
}
|
||||
|
||||
##
|
||||
# @MemoryDeviceInfoKind:
|
||||
#
|
||||
# Since: 2.1
|
||||
##
|
||||
{ 'enum': 'MemoryDeviceInfoKind',
|
||||
'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem' ] }
|
||||
'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem', 'sgx-epc' ] }
|
||||
|
||||
##
|
||||
# @PCDIMMDeviceInfoWrapper:
|
||||
|
@ -1226,13 +1249,21 @@
|
|||
{ 'struct': 'VirtioMEMDeviceInfoWrapper',
|
||||
'data': { 'data': 'VirtioMEMDeviceInfo' } }
|
||||
|
||||
##
|
||||
# @SgxEPCDeviceInfoWrapper:
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'SgxEPCDeviceInfoWrapper',
|
||||
'data': { 'data': 'SgxEPCDeviceInfo' } }
|
||||
|
||||
##
|
||||
# @MemoryDeviceInfo:
|
||||
#
|
||||
# Union containing information about a memory device
|
||||
#
|
||||
# nvdimm is included since 2.12. virtio-pmem is included since 4.1.
|
||||
# virtio-mem is included since 5.1.
|
||||
# virtio-mem is included since 5.1. sgx-epc is included since 6.2.
|
||||
#
|
||||
# Since: 2.1
|
||||
##
|
||||
|
@ -1242,10 +1273,36 @@
|
|||
'data': { 'dimm': 'PCDIMMDeviceInfoWrapper',
|
||||
'nvdimm': 'PCDIMMDeviceInfoWrapper',
|
||||
'virtio-pmem': 'VirtioPMEMDeviceInfoWrapper',
|
||||
'virtio-mem': 'VirtioMEMDeviceInfoWrapper'
|
||||
'virtio-mem': 'VirtioMEMDeviceInfoWrapper',
|
||||
'sgx-epc': 'SgxEPCDeviceInfoWrapper'
|
||||
}
|
||||
}
|
||||
|
||||
##
|
||||
# @SgxEPC:
|
||||
#
|
||||
# Sgx EPC cmdline information
|
||||
#
|
||||
# @memdev: memory backend linked with device
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'SgxEPC',
|
||||
'data': { 'memdev': 'str' } }
|
||||
|
||||
##
|
||||
# @SgxEPCProperties:
|
||||
#
|
||||
# SGX properties of machine types.
|
||||
#
|
||||
# @sgx-epc: list of ids of memory-backend-epc objects.
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'SgxEPCProperties',
|
||||
'data': { 'sgx-epc': ['SgxEPC'] }
|
||||
}
|
||||
|
||||
##
|
||||
# @query-memory-devices:
|
||||
#
|
||||
|
|
|
@ -333,3 +333,64 @@
|
|||
{ 'command': 'query-sev-attestation-report', 'data': { 'mnonce': 'str' },
|
||||
'returns': 'SevAttestationReport',
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @SGXInfo:
|
||||
#
|
||||
# Information about intel Safe Guard eXtension (SGX) support
|
||||
#
|
||||
# @sgx: true if SGX is supported
|
||||
#
|
||||
# @sgx1: true if SGX1 is supported
|
||||
#
|
||||
# @sgx2: true if SGX2 is supported
|
||||
#
|
||||
# @flc: true if FLC is supported
|
||||
#
|
||||
# @section-size: The EPC section size for guest
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'SGXInfo',
|
||||
'data': { 'sgx': 'bool',
|
||||
'sgx1': 'bool',
|
||||
'sgx2': 'bool',
|
||||
'flc': 'bool',
|
||||
'section-size': 'uint64'},
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @query-sgx:
|
||||
#
|
||||
# Returns information about SGX
|
||||
#
|
||||
# Returns: @SGXInfo
|
||||
#
|
||||
# Since: 6.2
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "query-sgx" }
|
||||
# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
|
||||
# "flc": true, "section-size" : 0 } }
|
||||
#
|
||||
##
|
||||
{ 'command': 'query-sgx', 'returns': 'SGXInfo', 'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @query-sgx-capabilities:
|
||||
#
|
||||
# Returns information from host SGX capabilities
|
||||
#
|
||||
# Returns: @SGXInfo
|
||||
#
|
||||
# Since: 6.2
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "query-sgx-capabilities" }
|
||||
# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
|
||||
# "flc": true, "section-size" : 0 } }
|
||||
#
|
||||
##
|
||||
{ 'command': 'query-sgx-capabilities', 'returns': 'SGXInfo', 'if': 'TARGET_I386' }
|
||||
|
|
|
@ -647,6 +647,23 @@
|
|||
'*hugetlbsize': 'size',
|
||||
'*seal': 'bool' } }
|
||||
|
||||
##
|
||||
# @MemoryBackendEpcProperties:
|
||||
#
|
||||
# Properties for memory-backend-epc objects.
|
||||
#
|
||||
# The @share boolean option is true by default with epc
|
||||
#
|
||||
# The @merge boolean option is false by default with epc
|
||||
#
|
||||
# The @dump boolean option is false by default with epc
|
||||
#
|
||||
# Since: 6.2
|
||||
##
|
||||
{ 'struct': 'MemoryBackendEpcProperties',
|
||||
'base': 'MemoryBackendProperties',
|
||||
'data': {} }
|
||||
|
||||
##
|
||||
# @PrManagerHelperProperties:
|
||||
#
|
||||
|
@ -797,6 +814,7 @@
|
|||
{ 'name': 'memory-backend-memfd',
|
||||
'if': 'CONFIG_LINUX' },
|
||||
'memory-backend-ram',
|
||||
'memory-backend-epc',
|
||||
'pef-guest',
|
||||
'pr-manager-helper',
|
||||
'qtest',
|
||||
|
@ -855,6 +873,7 @@
|
|||
'memory-backend-memfd': { 'type': 'MemoryBackendMemfdProperties',
|
||||
'if': 'CONFIG_LINUX' },
|
||||
'memory-backend-ram': 'MemoryBackendProperties',
|
||||
'memory-backend-epc': 'MemoryBackendEpcProperties',
|
||||
'pr-manager-helper': 'PrManagerHelperProperties',
|
||||
'qtest': 'QtestProperties',
|
||||
'rng-builtin': 'RngProperties',
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
'*ipv4': 'bool',
|
||||
'*ipv6': 'bool',
|
||||
'*keep-alive': 'bool',
|
||||
'*mptcp': { 'type': 'bool', 'if': 'IPPROTO_MPTCP' } } }
|
||||
'*mptcp': { 'type': 'bool', 'if': 'HAVE_IPPROTO_MPTCP' } } }
|
||||
|
||||
##
|
||||
# @UnixSocketAddress:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue