[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH kernel 11/17] tsm/core: Add TDI status
- To: <x86@xxxxxxxxxx>
- From: Alexey Kardashevskiy <aik@xxxxxxx>
- Date: Wed, 16 Sep 2026 21:51:51 +1000
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qTsg1utTkplWuARlA0qswoeLICanNrYPE/18/PBEUNY=; b=rmoiGjoh+6GgaL646m2gMAgAeOVhpofkBX3f/ONIo6agDbJ3NudbMju58xl+C1BXMLqHJHo/SJLgCu6OfZ6ClRdQOK+hdd+xThXKfg0ZOf8ObPpFogMdFYwFsuEVQyDlOqpg6yNgukAg4WRCIldL4HVzAGdtQX2nPGDjHKo/+CXnz1CXQERwq5BbbujDJTMzsYKKk4HZj6Q0ZmvdBb7+OwZZswtvWAkI3jaCClT3FPSNqo8ZTMgGcp9Xw0Zxm0nnnymV0tycimCtTkLIwfYtp4uFWIZo/SDWyrbE3/S4DfvtntmL3XIUE/P/cTKwfr6stSp1zjl52cvPMVYQHPKRMw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ofOgEZt5/WvZL398DiMP4cnJu+bAOQ7ChdryDjdv6oc3B+1IqZ5xoCor8N7Ik69lXihL8DalFNN9z171VyKvjWP7qM0DDXR3yLwNOmXuBqCv86Gbl8ba8tHqsafdCNrPxltMrbLTHvsJAE5IbcIcl+RldZJlImHm7npnTIGIzJJ1QMcy8I+eqcBMS9ZZqprVDYX2C05fuBYoOpwyswLPdGLbxffVcsQm3S+lV4Mtf7YbMTeFB9fehnnY8S4cHnUSdXF5aINmNiKz7F17iSKPebMKZAIN0MpN0ypjqkW2E4BYk1eFRto289kn9r4R9JwcoGJZ4lcE9S2+Jgiy17XQSQ==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: <linux-kernel@xxxxxxxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <linux-crypto@xxxxxxxxxxxxxxx>, <linux-pci@xxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Sean Christopherson <seanjc@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Andy Lutomirski <luto@xxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Ashish Kalra <ashish.kalra@xxxxxxx>, Tom Lendacky <thomas.lendacky@xxxxxxx>, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>, Robin Murphy <robin.murphy@xxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Lorenzo Stoakes <ljs@xxxxxxxxxx>, "Liam R. Howlett" <liam@xxxxxxxxxxxxx>, Vlastimil Babka <vbabka@xxxxxxxxxx>, Mike Rapoport <rppt@xxxxxxxxxx>, "Suren Baghdasaryan" <surenb@xxxxxxxxxx>, Michal Hocko <mhocko@xxxxxxxx>, "Catalin Marinas" <catalin.marinas@xxxxxxx>, Jini Susan George <jinisusan.george@xxxxxxx>, Kees Cook <kees@xxxxxxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>, Nikunj A Dadhania <nikunj@xxxxxxx>, Ard Biesheuvel <ardb@xxxxxxxxxx>, Eric Biggers <ebiggers@xxxxxxxxxx>, Kim Phillips <kim.phillips@xxxxxxx>, Joerg Roedel <jroedel@xxxxxxx>, Ethan Nelson-Moore <enelsonmoore@xxxxxxxxx>, "Tycho Andersen (AMD)" <tycho@xxxxxxxxxx>, "Liam Merwick" <liam.merwick@xxxxxxxxxx>, Michael Kerrisk <mtk.manpages@xxxxxxxxx>, Suresh Siddha <suresh.b.siddha@xxxxxxxxx>, Xiaotian Feng <dfeng@xxxxxxxxxx>, Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>, Andi Kleen <ak@xxxxxxxxxxxxxxx>, Kiryl Shutsemau <kas@xxxxxxxxxx>, Tony Luck <tony.luck@xxxxxxxxx>, Jason Gunthorpe <jgg@xxxxxxxx>, Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>, Xu Yilun <yilun.xu@xxxxxxxxxxxxxxx>, Carlos López <clopez@xxxxxxx>, Jonathan Cameron <jic23@xxxxxxxxxx>, Jori Koolstra <jkoolstra@xxxxxxxxx>, Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>, "Aneesh Kumar K.V (Arm)" <aneesh.kumar@xxxxxxxxxx>, Ian Campbell <ian.campbell@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>, Petr Tesarik <ptesarik@xxxxxxxx>, "David Howells" <dhowells@xxxxxxxxxx>, Haavard Skinnemoen <hskinnemoen@xxxxxxxxx>, Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>, Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>, "Christian Marangi" <ansuelsmth@xxxxxxxxx>, Dave Jiang <dave.jiang@xxxxxxxxx>, "Michael Kelley" <mhklinux@xxxxxxxxxxx>, Ilias Stamatis <ilstam@xxxxxxxxxx>, "Sumanth Korikkar" <sumanthk@xxxxxxxxxxxxx>, Simona Vetter <simona.vetter@xxxxxxxx>, Toshi Kani <toshi.kani@xxxxxx>, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Vinod Koul <vkoul@xxxxxxxxxx>, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Anshuman Khandual <anshuman.khandual@xxxxxxx>, Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>, "Palmer Dabbelt" <palmerdabbelt@xxxxxxxxxx>, <linux-coco@xxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, <iommu@xxxxxxxxxxxxxxx>, <linux-mm@xxxxxxxxx>, Alexey Kardashevskiy <aik@xxxxxxx>, <aik@xxxxxxxxx>, Santosh Shukla <santosh.shukla@xxxxxxx>, "Pratik R . Sampat" <prsampat@xxxxxxx>, Scott Soule Cheloha <scott.cheloha@xxxxxxx>, Ackerley Tng <ackerleytng@xxxxxxxxxx>, Fuad Tabba <tabba@xxxxxxxxxx>
- Delivery-date: Wed, 16 Sep 2026 11:59:38 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Define a structure with all info about a TDI such as TDISP status,
bind state, used START_INTERFACE options and the report digest.
Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxx>
---
include/linux/pci-tsm.h | 69 ++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/include/linux/pci-tsm.h b/include/linux/pci-tsm.h
index 9b34304d9a1f..2ca577e2a37e 100644
--- a/include/linux/pci-tsm.h
+++ b/include/linux/pci-tsm.h
@@ -11,6 +11,7 @@
struct pci_tsm;
struct tsm_dev;
struct kvm;
+struct tsm_tdi_status;
enum pci_tsm_req_scope;
/*
@@ -88,6 +89,7 @@ struct pci_tsm_ops {
int (*refresh_evidence)(struct pci_tsm *tsm, const void *nonce,
size_t nonce_len);
+ int (*tdi_status)(struct pci_dev *pdev, struct tsm_tdi_status *ts);
};
/**
@@ -331,4 +333,71 @@ static inline ssize_t pci_tsm_guest_req(struct pci_dev
*pdev,
return -ENXIO;
}
#endif
+
+/* private: */
+
+enum tsm_tdisp_state {
+ TDISP_STATE_CONFIG_UNLOCKED = 0,
+ TDISP_STATE_CONFIG_LOCKED = 1,
+ TDISP_STATE_RUN = 2,
+ TDISP_STATE_ERROR = 3,
+};
+
+enum tsm_tdisp_status {
+ TDISP_STATE_BOUND = 0,
+ TDISP_STATE_INVALID = 1,
+ TDISP_STATE_UNBOUND = 2,
+};
+
+/*
+ * struct tdisp_interface_id - TDISP INTERFACE_ID Definition
+ *
+ * @function_id: Identifies the function of the device hosting the TDI
+ * 15:0: @rid: Requester ID
+ * 23:16: @rseg: Requester Segment (Reserved if Requester Segment Valid is
Clear)
+ * 24: @rseg_valid: Requester Segment Valid
+ * 31:25 – Reserved
+ * 8B - Reserved
+ */
+#define TSM_TDISP_IID_REQUESTER_ID GENMASK(15, 0)
+#define TSM_TDISP_IID_RSEG GENMASK(23, 16)
+#define TSM_TDISP_IID_RSEG_VALID BIT(24)
+
+struct tdisp_interface_id {
+ __u32 function_id; /* TSM_TDISP_IID_xxxx */
+ __u8 reserved[8];
+} __packed;
+
+struct tsm_tdi_status {
+ __u8 status; /* enum tsm_tdisp_status */
+ __u8 state; /* enum tsm_tdisp_state */
+ __u8 meas_digest_fresh;
+ __u8 meas_digest_valid;
+ __u8 all_request_redirect;
+ __u8 bind_p2p;
+ __u8 lock_msix;
+ __u8 no_fw_update;
+ __u16 cache_line_size;
+ __u64 spdm_algos; /* Bitmask of TSM_SPDM_ALGOS */
+ __u8 certs_digest[48];
+ __u8 meas_digest[48];
+ __u8 interface_report_digest[48];
+ __u64 intf_report_counter;
+ struct tdisp_interface_id id;
+ __u64 tdi_id;
+} __packed;
+
+enum tsm_spdm_algos {
+ TSM_SPDM_ALGOS_DHE_SECP256R1,
+ TSM_SPDM_ALGOS_DHE_SECP384R1,
+ TSM_SPDM_ALGOS_AEAD_AES_128_GCM,
+ TSM_SPDM_ALGOS_AEAD_AES_256_GCM,
+ TSM_SPDM_ALGOS_ASYM_TPM_ALG_RSASSA_3072,
+ TSM_SPDM_ALGOS_ASYM_TPM_ALG_ECDSA_ECC_NIST_P256,
+ TSM_SPDM_ALGOS_ASYM_TPM_ALG_ECDSA_ECC_NIST_P384,
+ TSM_SPDM_ALGOS_HASH_TPM_ALG_SHA_256,
+ TSM_SPDM_ALGOS_HASH_TPM_ALG_SHA_384,
+ TSM_SPDM_ALGOS_KEY_SCHED_SPDM_KEY_SCHEDULE,
+};
+
#endif /*__PCI_TSM_H */
--
2.55.0
|