xemu/stubs
Stefan Berger ac6dd31e3f acpi: build TPM Physical Presence interface
The TPM Physical Presence interface consists of an ACPI part, a shared
memory part, and code in the firmware. Users can send messages to the
firmware by writing a code into the shared memory through invoking the
ACPI code. When a reboot happens, the firmware looks for the code and
acts on it by sending sequences of commands to the TPM.

This patch adds the ACPI code. It is similar to the one in EDK2 but doesn't
assume that SMIs are necessary to use. It uses a similar datastructure for
the shared memory as EDK2 does so that EDK2 and SeaBIOS could both make use
of it. I extended the shared memory data structure with an array of 256
bytes, one for each code that could be implemented. The array contains
flags describing the individual codes. This decouples the ACPI implementation
from the firmware implementation.

The underlying TCG specification is accessible from the following page.

https://trustedcomputinggroup.org/tcg-physical-presence-interface-specification/

This patch implements version 1.30.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
[ Marc-André - ACPI code improvements and windows fixes ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2019-01-17 21:10:57 -05:00
..
arch-query-cpu-def.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
arch-query-cpu-model-baseline.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
arch-query-cpu-model-comparison.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
arch-query-cpu-model-expansion.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
bdrv-next-monitor-owned.c block: Add bdrv_next_monitor_owned() 2016-03-17 15:47:56 +01:00
blk-commit-all.c block: Move some bdrv_*_all() functions to BB 2016-03-17 15:47:56 +01:00
blockdev-close-all-bdrv-states.c all: Clean up includes 2016-02-16 14:29:28 +00:00
change-state-handler.c stubs: Add vm state change handler stubs 2017-08-15 10:03:27 -05:00
clock-warp.c icount: decouple warp calls 2016-03-15 18:23:45 +01:00
cpu-get-clock.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
cpu-get-icount.c replay: pass raw icount value to replay_save_clock 2018-10-19 13:44:15 +02:00
dump.c Include qmp-commands.h exactly where needed 2018-02-09 13:52:10 +01:00
error-printf.c tests: don't silence error reporting for all tests 2018-07-24 17:35:23 +01:00
fd-register.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
fdset.c monitor: add lock to protect mon_fdsets 2018-06-18 15:48:22 +02:00
gdbstub.c Clean up includes some more 2016-03-22 22:20:16 +01:00
get-vm-name.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
iothread-lock.c qsp: track BQL callers explicitly 2018-08-23 18:46:25 +02:00
iothread.c aio: introduce qemu_get_current_aio_context 2016-10-28 21:50:18 +08:00
is-daemonized.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
linux-aio.c linux-aio: properly bubble up errors from initialization 2018-06-27 13:06:34 +01:00
machine-init-done.c vl: export machine_init_done 2018-03-12 16:12:46 +01:00
Makefile.objs stubs: add ramfb 2018-10-15 10:52:09 -06:00
migr-blocker.c migration: Create migration/blocker.h 2017-05-17 12:04:59 +02:00
monitor.c monitor: Fix unsafe sharing of @cur_mon among threads 2018-07-23 14:00:03 +02:00
notify-event.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
pc_madt_cpu_entry.c machine: Make possible_cpu_arch_ids() return const pointer 2017-01-23 21:25:37 -02:00
pci-host-piix.c hw/acpi: Move acpi_set_pci_info to pcihp 2017-09-08 16:15:17 +03:00
qmp_memory_device.c pc-dimm: factor out MemoryDevice interface 2018-05-07 10:00:02 -03:00
qtest.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
ram-block.c stubs: Add stubs for ram block API 2018-02-08 09:22:03 +08:00
ramfb.c stubs: add ramfb 2018-10-15 10:52:09 -06:00
replay.c replay: pass raw icount value to replay_save_clock 2018-10-19 13:44:15 +02:00
runstate-check.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
set-fd-handler.c block: move AioContext, QEMUTimer, main-loop to libqemuutil 2017-02-21 11:14:07 +00:00
slirp.c qemu-common: stop including qemu/host-utils.h from qemu-common.h 2016-05-19 16:42:28 +02:00
sysbus.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
target-get-monitor-def.c Clean up includes some more 2016-03-22 22:20:16 +01:00
target-monitor-defs.c Clean up includes some more 2016-03-22 22:20:16 +01:00
tpm.c acpi: build TPM Physical Presence interface 2019-01-17 21:10:57 -05:00
trace-control.c trace: remove global 'uint16 dstate[]' array 2016-10-12 09:35:54 +02:00
uuid.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
vm-stop.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
vmgenid.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
vmstate.c migration: Move check_migratable() into qdev.c 2017-05-17 12:04:59 +02:00
xen-common.c move xen-common.c to hw/xen/ 2017-04-25 11:04:34 -07:00
xen-hvm.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00