qemu/hw/i386
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
..
kvm ioapic: use TYPE_FOO MACRO than constant string 2019-01-09 11:33:47 +01:00
xen xen: introduce new 'XenBus' and 'XenDevice' object hierarchy 2019-01-14 13:45:40 +00:00
acpi-build.c acpi: build TPM Physical Presence interface 2019-01-17 21:10:57 -05:00
acpi-build.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
amd_iommu.c x86-iommu: switch intr_supported to OnOffAuto type 2018-12-20 13:25:11 -05:00
amd_iommu.h x86_iommu/amd: Enable Guest virtual APIC support 2018-11-05 13:24:02 -05:00
intel_iommu_internal.h intel_iommu: dma read/write draining support 2018-12-19 16:48:16 -05:00
intel_iommu.c x86-iommu: switch intr_supported to OnOffAuto type 2018-12-20 13:25:11 -05:00
kvmvapic.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw/i386: make IOMMUs configurable via default-configs/ 2018-03-12 16:12:46 +01:00
multiboot.c hw/i386/multiboot.c: Don't use load_image() 2018-12-14 13:30:51 +00:00
multiboot.h
pc_piix.c hw/misc/ivshmem: Remove deprecated "ivshmem" legacy device 2019-01-14 19:31:04 -05:00
pc_q35.c usb: generic sysbus ehci, bugfixes. 2019-01-08 16:07:32 +00:00
pc_sysfw.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc.c target/i386: Disable MPX support on named CPU models 2019-01-14 12:23:36 -02:00
trace-events intel_iommu: convert invalid traces into error reports 2018-12-19 16:48:16 -05:00
vmmouse.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
vmport.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
x86-iommu.c x86-iommu: turn on IR by default if proper 2018-12-20 13:25:11 -05:00