Linux-PCI Archive mirror
 help / color / mirror / Atom feed
From: Alistair Francis <alistair23@gmail.com>
To: alistair@alistair23.me, linux-kernel@vger.kernel.org,
	lukas@wunner.de,  Jonathan.Cameron@huawei.com,
	bhelgaas@google.com,  rust-for-linux@vger.kernel.org,
	akpm@linux-foundation.org,  linux-cxl@vger.kernel.org,
	djbw@kernel.org, linux-pci@vger.kernel.org
Cc: alex.gaynor@gmail.com, wilfred.mallawa@wdc.com, gary@garyguo.net,
	 bjorn3_gh@protonmail.com, benno.lossin@proton.me,
	aliceryhl@google.com,  boqun.feng@gmail.com,
	a.hindborg@kernel.org, tmgross@umich.edu,  ojeda@kernel.org,
	Alistair Francis <alistair.francis@wdc.com>
Subject: Re: [PATCH 08/18] PCI/TSM: Support connecting to PCIe CMA devices
Date: Wed, 20 May 2026 15:56:27 +1000	[thread overview]
Message-ID: <CAKmqyKO1L+sCHWMDJ-tH1WVc+=oMVidnVSMttr6ft0-ewSjMVA@mail.gmail.com> (raw)
In-Reply-To: <20260508031710.514574-9-alistair.francis@wdc.com>

On Fri, May 8, 2026 at 1:18 PM <alistair23@gmail.com> wrote:
>
> From: Alistair Francis <alistair.francis@wdc.com>
>
> In the next patch we are going to add a PCIe CMA TSM driver, as such we
> need to ensure that is_pci_tsm_pf0() will allow us to connect to CMA
> capable devices. These devices don't necessarily has DEVCAP_TEE or IDE
> support.
>
> As such for Root Complex Integrated Endpoint (PCI_EXP_TYPE_RC_END) we
> also check for the CMA DOE feature.

@Dan Williams this is the patch I really need your thoughts on.

The current upstream pci_tsm code only works if IDE or TDISP is
supported, which isn't true for CMA support.

This patch works around that, but the more I think about it the
hackier it is. I have a local change that reverts this and
updates`tsm.c` to work with a DSM (`->dsm_dev` is NULL), but that
doesn't feel right either. Do you have a better idea or how to enable
a CMA TSM driver?

Alistair

>
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  include/linux/pci-tsm.h | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/pci-tsm.h b/include/linux/pci-tsm.h
> index a6435aba03f9..5059954e4853 100644
> --- a/include/linux/pci-tsm.h
> +++ b/include/linux/pci-tsm.h
> @@ -3,6 +3,7 @@
>  #define __PCI_TSM_H
>  #include <linux/mutex.h>
>  #include <linux/pci.h>
> +#include <linux/pci-doe.h>
>  #include <linux/sockptr.h>
>
>  struct pci_tsm;
> @@ -129,6 +130,8 @@ struct pci_tsm_pf0 {
>  /* physical function0 and capable of 'connect' */
>  static inline bool is_pci_tsm_pf0(struct pci_dev *pdev)
>  {
> +       struct pci_doe_mb *doe;
> +
>         if (!pdev)
>                 return false;
>
> @@ -146,9 +149,15 @@ static inline bool is_pci_tsm_pf0(struct pci_dev *pdev)
>          * switch.
>          */
>         switch (pci_pcie_type(pdev)) {
> +       case PCI_EXP_TYPE_RC_END:
> +               doe = pci_find_doe_mailbox(pdev, PCI_VENDOR_ID_PCI_SIG,
> +                                          PCI_DOE_FEATURE_CMA);
> +
> +               if (doe)
> +                       break;
> +               fallthrough;
>         case PCI_EXP_TYPE_ENDPOINT:
>         case PCI_EXP_TYPE_UPSTREAM:
> -       case PCI_EXP_TYPE_RC_END:
>                 if (pdev->ide_cap || (pdev->devcap & PCI_EXP_DEVCAP_TEE))
>                         break;
>                 fallthrough;
> --
> 2.52.0
>

  reply	other threads:[~2026-05-20  5:56 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-08  3:16 [PATCH 00/18] lib: Rust implementation of SPDM alistair23
2026-05-08  3:16 ` [PATCH 01/18] rust: add untrusted data abstraction alistair23
2026-05-08  3:52   ` sashiko-bot
2026-05-08  5:17   ` Dirk Behme
2026-05-15  5:49     ` Alistair Francis
2026-05-08  3:16 ` [PATCH 02/18] X.509: Make certificate parser public alistair23
2026-05-08  3:45   ` sashiko-bot
2026-05-14  7:22     ` Lukas Wunner
2026-05-08  3:16 ` [PATCH 03/18] X.509: Parse Subject Alternative Name in certificates alistair23
2026-05-08  3:16 ` [PATCH 04/18] X.509: Move certificate length retrieval into new helper alistair23
2026-05-08  3:39   ` sashiko-bot
2026-05-14  6:59     ` Lukas Wunner
2026-05-08  3:16 ` [PATCH 05/18] rust: add bindings for hash.h alistair23
2026-05-08  3:43   ` sashiko-bot
2026-05-08  3:16 ` [PATCH 06/18] rust: error: impl From<FromBytesWithNulError> for Kernel Error alistair23
2026-05-08  3:51   ` sashiko-bot
2026-05-08  3:16 ` [PATCH 07/18] lib: rspdm: Initial commit of Rust SPDM alistair23
2026-05-08  3:41   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 08/18] PCI/TSM: Support connecting to PCIe CMA devices alistair23
2026-05-20  5:56   ` Alistair Francis [this message]
2026-06-18  2:04     ` Alistair Francis
2026-06-18 22:51       ` Dan Williams (nvidia)
2026-05-08  3:17 ` [PATCH 09/18] PCI/CMA: Add a PCI TSM CMA driver using SPDM alistair23
2026-05-08  5:02   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 10/18] PCI/CMA: Validate Subject Alternative Name in certificates alistair23
2026-05-08  3:58   ` sashiko-bot
2026-05-14  2:45     ` Alistair Francis
2026-05-14 13:14       ` Lukas Wunner
2026-05-08  3:17 ` [PATCH 11/18] lib: rspdm: Support SPDM get_version alistair23
2026-05-08  3:50   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 12/18] lib: rspdm: Support SPDM get_capabilities alistair23
2026-05-08  4:05   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 13/18] lib: rspdm: Support SPDM negotiate_algorithms alistair23
2026-05-08  4:05   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 14/18] lib: rspdm: Support SPDM get_digests alistair23
2026-05-08  4:06   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 15/18] lib: rspdm: Support SPDM get_certificate alistair23
2026-05-08  4:23   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 16/18] lib: rspdm: Support SPDM certificate validation alistair23
2026-05-08  4:25   ` sashiko-bot
2026-05-08  3:17 ` [PATCH 17/18] rust: allow extracting the buffer from a CString alistair23
2026-05-08  3:17 ` [PATCH 18/18] lib: rspdm: Support SPDM challenge alistair23
2026-05-08  4:19   ` sashiko-bot
2026-05-17  8:09   ` Dirk Behme

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='CAKmqyKO1L+sCHWMDJ-tH1WVc+=oMVidnVSMttr6ft0-ewSjMVA@mail.gmail.com' \
    --to=alistair23@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=a.hindborg@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=alistair.francis@wdc.com \
    --cc=alistair@alistair23.me \
    --cc=benno.lossin@proton.me \
    --cc=bhelgaas@google.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=djbw@kernel.org \
    --cc=gary@garyguo.net \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tmgross@umich.edu \
    --cc=wilfred.mallawa@wdc.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).