accel/hvf/hvf-accel-ops.c | 1 + accel/kvm/kvm-all.c | 7 +- backends/hostmem-epc.c | 82 ++++++++++++++ backends/meson.build | 1 + configs/devices/i386-softmmu/default.mak | 1 + docs/system/i386/sgx.rst | 165 +++++++++++++++++++++++++++ docs/system/target-i386.rst | 1 + hmp-commands-info.hx | 15 +++ hw/i386/Kconfig | 5 + hw/i386/acpi-build.c | 22 ++++ hw/i386/fw_cfg.c | 12 +- hw/i386/meson.build | 2 + hw/i386/pc.c | 15 ++- hw/i386/pc_piix.c | 1 + hw/i386/pc_q35.c | 1 + hw/i386/sgx-epc.c | 184 +++++++++++++++++++++++++++++++ hw/i386/sgx-stub.c | 26 +++++ hw/i386/sgx.c | 170 ++++++++++++++++++++++++++++ hw/i386/x86.c | 29 +++++ hw/i386/xen/xen-hvm.c | 2 + hw/intc/openpic_kvm.c | 1 + hw/remote/proxy-memory-listener.c | 1 + hw/vfio/common.c | 2 + hw/vfio/spapr.c | 1 + hw/virtio/vhost-vdpa.c | 1 + hw/virtio/vhost.c | 2 + hw/virtio/virtio.c | 1 + hw/xen/xen_pt.c | 2 + include/exec/memory.h | 23 +++- include/hw/i386/hostmem-epc.h | 28 +++++ include/hw/i386/pc.h | 6 + include/hw/i386/sgx-epc.h | 67 +++++++++++ include/hw/i386/sgx.h | 12 ++ include/hw/i386/x86.h | 1 + include/monitor/hmp-target.h | 1 + include/sysemu/kvm_int.h | 2 +- io/dns-resolver.c | 2 +- meson.build | 18 +-- meson_options.txt | 2 +- monitor/hmp-cmds.c | 10 ++ pc-bios/descriptors/meson.build | 4 +- pc-bios/meson.build | 5 +- qapi/machine.json | 63 ++++++++++- qapi/misc-target.json | 61 ++++++++++ qapi/qom.json | 19 ++++ qapi/sockets.json | 2 +- qemu-options.hx | 10 +- softmmu/memory.c | 7 ++ softmmu/physmem.c | 4 +- softmmu/trace-events | 1 + target/arm/kvm.c | 1 + target/i386/cpu.c | 167 +++++++++++++++++++++++++++- target/i386/cpu.h | 16 +++ target/i386/hax/hax-mem.c | 1 + target/i386/kvm/kvm.c | 77 ++++++++++++- target/i386/kvm/kvm_i386.h | 2 + target/i386/machine.c | 20 ++++ target/i386/monitor.c | 32 ++++++ target/i386/nvmm/nvmm-all.c | 1 + target/i386/sev.c | 2 +- target/i386/whpx/whpx-all.c | 1 + tests/qtest/meson.build | 6 +- tests/qtest/qmp-cmd-test.c | 2 + util/qemu-sockets.c | 6 +- 64 files changed, 1397 insertions(+), 38 deletions(-) create mode 100644 backends/hostmem-epc.c create mode 100644 docs/system/i386/sgx.rst create mode 100644 hw/i386/sgx-epc.c create mode 100644 hw/i386/sgx-stub.c create mode 100644 hw/i386/sgx.c create mode 100644 include/hw/i386/hostmem-epc.h create mode 100644 include/hw/i386/sgx-epc.h create mode 100644 include/hw/i386/sgx.h