[PATCH 0/6] PCI/TSM: Finalize "Link" TSM infrastructure

Dan Williams
2025-11-05T04:00:52Z

Now that the base series has settled [1], here is a collection of topics
to finish off the "Link" side of the PCI/TSM core. Recall that "Link"
refers to all the physical device security aspects of TEE Device
Interface Security Protocol (TDISP) managed by the host kernel / VMM.

[1]: http://lore.kernel.org/20251031212902.2256310-1-dan.j.williams@intel.com

Add support for Address Association registers that helps root port
hardware pick the Selective IDE Stream to use for a downstream memory
transaction.

Add support for devices that expect to have all Stream IDs on the device
configured to unique values even if the given stream is not in use.

Add an operation for requesting a device enter the LOCKED TDISP state
(pci_tsm_bind())). This has no user outside of test code in the staging
tree [2] for now, but examples exist in the SEV-TIO and ARM CCA RFC
branches.

Add an operation for marshaling TDISP collateral and TDISP state change
requests from confidential guests to the platform TSM
(pci_tsm_guest_req()). This too has no consumer in the staging branch
outside of the samples/devsec/ test module, but is used in the vendor
RFC branches that will soon be incorporated into the staging branch.

These patches have previously appeared in the tsm.git#staging branch [3]
for integration testing.

[2]: https://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm.git/tree/samples/devsec/link_tsm.c?h=staging#n306
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm.git/log/?h=staging

Dan Williams (5):
resource: Introduce resource_assigned() for discerning active
resources
PCI/IDE: Initialize an ID for all IDE streams
PCI/TSM: Add pci_tsm_bind() helper for instantiating TDIs
PCI/TSM: Add pci_tsm_guest_req() for managing TDIs
PCI/TSM: Add 'dsm' and 'bound' attributes for dependent functions

Xu Yilun (1):
PCI/IDE: Add Address Association Register setup for downstream MMIO

Documentation/ABI/testing/sysfs-bus-pci | 30 +++
drivers/pci/pci.h | 2 +
include/linux/ioport.h | 9 +
include/linux/pci-ide.h | 33 +++
include/linux/pci-tsm.h | 92 +++++++
include/linux/pci.h | 6 +
drivers/pci/ide.c | 248 ++++++++++++++++++-
drivers/pci/remove.c | 1 +
drivers/pci/tsm.c | 303 ++++++++++++++++++++++--
9 files changed, 694 insertions(+), 30 deletions(-)

base-commit: 0fe2f67a913cedca2be48c5b7b0412cbbaf29108
--
2.51.0