mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
docs/specs/tpm: document PPI support on ARM64 virt
Document that tpm-tis-device on the ARM virt machine supports PPI with dynamically allocated MMIO via the platform bus, unlike x86 where PPI is at the fixed address 0xFED45000. Also add hw/arm/virt-acpi-build.c and hw/acpi/tpm.c to the list of files related to TPM ACPI tables. Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Mohammadfaiz Bawa <mbawa@redhat.com> Message-ID: <20260327173209.148180-2-mbawa@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
150072398f
commit
ffdd1949a1
@@ -187,8 +187,32 @@ The location of the table is given by the fw_cfg ``tpmppi_address``
|
||||
field. The PPI memory region size is 0x400 (``TPM_PPI_ADDR_SIZE``) to
|
||||
leave enough room for future updates.
|
||||
|
||||
PPI on ARM64 virt
|
||||
-----------------
|
||||
|
||||
The ARM virt machine supports PPI for ``tpm-tis-device`` as defined
|
||||
in the `PPI specification`_.
|
||||
|
||||
Unlike the x86 TIS device where the PPI memory region is mapped at
|
||||
the fixed address ``0xFED45000`` (within the TIS MMIO range), the
|
||||
ARM64 sysbus device registers PPI memory as a second MMIO region
|
||||
on the platform bus. The platform bus assigns the guest physical
|
||||
address dynamically at device plug time. The ACPI ``_DSM`` method
|
||||
and PPI operation regions reference this dynamically resolved
|
||||
address.
|
||||
|
||||
PPI is controlled by the ``ppi`` property (default ``on``)::
|
||||
|
||||
-device tpm-tis-device,tpmdev=tpm0,ppi=on
|
||||
|
||||
Without PPI, guest operating systems such as Windows 11
|
||||
ARM64 will log errors when attempting to query TPM Physical
|
||||
Presence capabilities via the ACPI ``_DSM`` method.
|
||||
|
||||
QEMU files related to TPM ACPI tables:
|
||||
- ``hw/i386/acpi-build.c``
|
||||
- ``hw/arm/virt-acpi-build.c``
|
||||
- ``hw/acpi/tpm.c``
|
||||
- ``include/hw/acpi/tpm.h``
|
||||
|
||||
TPM backend devices
|
||||
|
||||
Reference in New Issue
Block a user