On Tue, Nov 29, 2022 at 12:27:56PM -0600, Bjorn Helgaas wrote: > Does the TPM work under Windows? If so, it would suggest that there's > a different way to use it that doesn't require the quirk or the DMAR > override. Or maybe it only works on Windows without the IOMMU being > enabled? Haswell was the first generation having firmware TPM, and had fTPM implementation that was flakky in many ways (e.g. Intel TXT still required a discrete TPM so servers never used it). We have some workarounds for it already in place. I'm almost 100% confident nobody seriously tried to use it on server side and/or together with MMIO. > Naive question: apparently the TPM is doing DMA reads/writes. I see > tpm_crb.c doing MMIO mappings (ioremap()), but I don't see any DMA > mappings. Is that implicit or done elsewhere? Firmware does this. Kernel does not and should not care how it does it because it is not part of the specification [1]. Kernel cares only of getting a buffer pointed out by the firmware. [1] Section 6.5.3 in https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ BR, Jarkko