From: Stefan Berger <stefanb@linux.ibm.com>
To: Mohammadfaiz Bawa <mbawa@redhat.com>, qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, Stefan Berger <stefanb@linux.vnet.ibm.com>,
Peter Maydell <peter.maydell@linaro.org>,
"Michael S . Tsirkin" <mst@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Ani Sinha <anisinha@redhat.com>,
Shannon Zhao <shannon.zhaosl@gmail.com>,
Pierrick Bouvier <pierrick.bouvier@linaro.org>
Subject: Re: [PATCH 1/3] docs/specs/tpm: document PPI support on ARM64 virt
Date: Wed, 25 Mar 2026 15:31:40 -0400 [thread overview]
Message-ID: <c6830a19-c275-4a83-bb17-4430680b3d54@linux.ibm.com> (raw)
In-Reply-To: <20260324-tpm-tis-sysbus-ppi-v1-1-e59175210954@redhat.com>
On 3/24/26 3:10 AM, Mohammadfaiz Bawa wrote:
> 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.
>
> Signed-off-by: Mohammadfaiz Bawa <mbawa@redhat.com>
> ---
> docs/specs/tpm.rst | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/docs/specs/tpm.rst b/docs/specs/tpm.rst
> index b630a351b4f77a8d2512f22446d00a4d674c7777..63cc0b68cd79d64138d4dd05ae158430c6a74643 100644
> --- a/docs/specs/tpm.rst
> +++ b/docs/specs/tpm.rst
> @@ -187,8 +187,30 @@ 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 enabled by default and can be controlled with the ``ppi``
> +property (e.g. ``-device tpm-tis-device,tpmdev=tpm0,ppi=on``).
> +Without PPI support, guest operating systems such as Windows 11
> +ARM64 will log errors when attempting to query TPM Physical
> +Presence capabilities via the ACPI ``_DSM`` method.
I remember having played around with TPM for QEMU on ARM64 (Raspberry
5(?)) a while ago and had the impression that there was something
related to caching that prevented the MMIO interface from working
correctly and Peter may have confirmed this back then on IRC .. I am not
sure what exactly it was that didn't work correctly when run natively on
ARM hardware. It worked well when run in CPU emulation on x86_64 for
example. So I am wondering whether there is a minimum requirement for an
ARM CPU or ARM CPU features related to caching that someone needs to
know about to be able to use TPM TIS successfully? If so, it would
probably be good to mention it here as well. If you know.
Otherwise this looks good to me.
> +
> 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
>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
next prev parent reply other threads:[~2026-03-25 19:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 7:10 [PATCH 0/3] hw/tpm: add PPI support to tpm-tis-device on ARM64 virt Mohammadfaiz Bawa
2026-03-24 7:10 ` [PATCH 1/3] docs/specs/tpm: document PPI support " Mohammadfaiz Bawa
2026-03-25 19:31 ` Stefan Berger [this message]
2026-03-25 20:22 ` Mohamed Mediouni
2026-03-25 20:31 ` Stefan Berger
2026-03-26 7:27 ` Mohammadfaiz Bawa
2026-03-26 11:29 ` Mohamed Mediouni
2026-03-24 7:10 ` [PATCH 2/3] hw/acpi/tpm: parameterize PPI base address in tpm_build_ppi_acpi Mohammadfaiz Bawa
2026-03-25 19:32 ` Stefan Berger
2026-03-24 7:10 ` [PATCH 3/3] hw/tpm: add PPI support to tpm-tis-device for ARM64 virt Mohammadfaiz Bawa
2026-03-25 19:37 ` Stefan Berger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c6830a19-c275-4a83-bb17-4430680b3d54@linux.ibm.com \
--to=stefanb@linux.ibm.com \
--cc=anisinha@redhat.com \
--cc=imammedo@redhat.com \
--cc=mbawa@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhaosl@gmail.com \
--cc=stefanb@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox