]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
crypto/ccp: Implement SEV-TIO PCIe IDE (phase1)
authorAlexey Kardashevskiy <aik@amd.com>
Tue, 2 Dec 2025 02:44:49 +0000 (13:44 +1100)
committerDan Williams <dan.j.williams@intel.com>
Tue, 2 Dec 2025 20:50:33 +0000 (12:50 -0800)
commit4be423572da1f4c11f45168e3fafda870ddac9f8
tree6603dc46024d4ca568683dc236a793a3a160243f
parenteeb934137debfbe98be61a27756a605edf492ed3
crypto/ccp: Implement SEV-TIO PCIe IDE (phase1)

Implement the SEV-TIO (Trusted I/O) firmware interface for PCIe TDISP
(Trust Domain In-Socket Protocol). This enables secure communication
between trusted domains and PCIe devices through the PSP (Platform
Security Processor).

The implementation includes:
- Device Security Manager (DSM) operations for establishing secure links
- SPDM (Security Protocol and Data Model) over DOE (Data Object Exchange)
- IDE (Integrity Data Encryption) stream management for secure PCIe

This module bridges the SEV firmware stack with the generic PCIe TSM
framework.

This is phase1 as described in Documentation/driver-api/pci/tsm.rst.

On AMD SEV, the AMD PSP firmware acts as TSM (manages the security/trust).
The CCP driver provides the interface to it and registers in the TSM
subsystem.

Detect the PSP support (reported via FEATURE_INFO + SNP_PLATFORM_STATUS)
and enable SEV-TIO in the SNP_INIT_EX call if the hardware supports TIO.

Implement SEV TIO PSP command wrappers in sev-dev-tio.c and store
the data in the SEV-TIO-specific structs.

Implement TSM hooks and IDE setup in sev-dev-tsm.c.

Signed-off-by: Alexey Kardashevskiy <aik@amd.com>
Link: https://patch.msgid.link/692f506bb80c9_261c11004@dwillia2-mobl4.notmuch
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/crypto/ccp/Kconfig
drivers/crypto/ccp/Makefile
drivers/crypto/ccp/sev-dev-tio.c [new file with mode: 0644]
drivers/crypto/ccp/sev-dev-tio.h [new file with mode: 0644]
drivers/crypto/ccp/sev-dev-tsm.c [new file with mode: 0644]
drivers/crypto/ccp/sev-dev.c
drivers/crypto/ccp/sev-dev.h
include/linux/psp-sev.h