qemu/hw/acpi
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
..
acpi_interface.c acpi: extend ACPI interface to provide send_event hook 2016-06-07 15:36:54 +03:00
acpi-stub.c Include qmp-commands.h exactly where needed 2018-02-09 13:52:10 +01:00
aml-build.c hw: acpi: Export and share the ARM RSDP build 2018-12-19 16:48:16 -05:00
bios-linker-loader.c vmgenid: replace x-write-pointer-available hack 2017-09-08 16:15:17 +03:00
core.c qmp hmp: Make system_wakeup check wake-up support and run state 2018-12-18 07:55:47 +01:00
cpu_hotplug.c machine: Make possible_cpu_arch_ids() return const pointer 2017-01-23 21:25:37 -02:00
cpu.c pci, pc, virtio: fixes, features 2018-09-24 18:49:11 +01:00
ich9.c include/exec/poison: Mark CONFIG_KVM as poisoned, too 2017-07-04 14:30:03 +02:00
ipmi-stub.c hw: use "qemu/osdep.h" as first #include in source files 2017-12-18 17:07:02 +03:00
ipmi.c acpi/ipmi: Initialize the fwinfo before fetching it 2016-11-01 19:21:09 +02:00
Makefile.objs acpi: build TPM Physical Presence interface 2019-01-17 21:10:57 -05:00
memory_hotplug.c qapi: Drop qapi_event_send_FOO()'s Error ** argument 2018-08-28 18:21:38 +02:00
nvdimm.c hw/acpi/nvdimm: Don't take address of fields in packed structs 2018-11-12 15:14:06 +00:00
pcihp.c pci/pcihp: perform unplug via the hotplug handler 2018-12-20 11:19:12 -05:00
piix4.c pci/pcihp: perform unplug via the hotplug handler 2018-12-20 11:19:12 -05:00
tco.c tco: add trace events 2017-10-16 18:03:52 +02:00
tpm.c acpi: build TPM Physical Presence interface 2019-01-17 21:10:57 -05:00
trace-events tco: add trace events 2017-10-16 18:03:52 +02:00
vmgenid.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00