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>
Mohammadfaiz Bawa committed
Mar 27, 2026 at 23:02 UTC
ffdd1949a159502d4e85d76e27b51020929a9d1c
1 file changed
+24
docs/specs/tpm.rst
+24
@@ -187,8 +187,32 @@ The location of the table is given by the fw_cfg ``tpmppi_address``
187
field. The PPI memory region size is 0x400 (``TPM_PPI_ADDR_SIZE``) to
188
leave enough room for future updates.
189
190
+PPI on ARM64 virt
191
+-----------------
192
+
193
+The ARM virt machine supports PPI for ``tpm-tis-device`` as defined
194
+in the `PPI specification`_.
195
+
196
+Unlike the x86 TIS device where the PPI memory region is mapped at
197
+the fixed address ``0xFED45000`` (within the TIS MMIO range), the
198
+ARM64 sysbus device registers PPI memory as a second MMIO region
199
+on the platform bus. The platform bus assigns the guest physical
200
+address dynamically at device plug time. The ACPI ``_DSM`` method
201
+and PPI operation regions reference this dynamically resolved
202
+address.
203
+
204
+PPI is controlled by the ``ppi`` property (default ``on``)::
205
+
206
+ -device tpm-tis-device,tpmdev=tpm0,ppi=on
207
+
208
+Without PPI, guest operating systems such as Windows 11
209
+ARM64 will log errors when attempting to query TPM Physical
210
+Presence capabilities via the ACPI ``_DSM`` method.
211
+
212
QEMU files related to TPM ACPI tables:
213
- ``hw/i386/acpi-build.c``
214
+ - ``hw/arm/virt-acpi-build.c``
215
+ - ``hw/acpi/tpm.c``
216
- ``include/hw/acpi/tpm.h``
217
218
TPM backend devices