public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Koichiro Den <den@valinux.co.jp>
Cc: "Frank Li" <Frank.li@nxp.com>,
	"Jingoo Han" <jingoohan1@gmail.com>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Jon Mason" <jdmason@kudzu.us>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"Allen Hubbe" <allenbh@gmail.com>,
	"Bhanu Seshu Kumar Valluri" <bhanuseshukumar@gmail.com>,
	"Marco Crivellari" <marco.crivellari@suse.com>,
	"Shin'ichiro Kawasaki" <shinichiro.kawasaki@wdc.com>,
	"Manikanta Maddireddy" <mmaddireddy@nvidia.com>,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	ntb@lists.linux.dev
Subject: Re: [PATCH v10 7/7] PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback
Date: Wed, 25 Mar 2026 08:06:24 +0100	[thread overview]
Message-ID: <acOJcMt7E8PLHAD6@ryzen> (raw)
In-Reply-To: <ksr6hlcwmrkrgrql5jqhtpkaihsugtsztfhxxjbq3au6kz3ksu@mk7hhmwabgsi>

On Tue, Mar 24, 2026 at 10:40:24AM +0900, Koichiro Den wrote:
> On Mon, Mar 23, 2026 at 02:48:10PM -0400, Frank Li wrote:
> > On Mon, Mar 02, 2026 at 04:14:27PM +0900, Koichiro Den wrote:
> > > Some endpoint platforms cannot use platform MSI / GIC ITS to implement
> > > EP-side doorbells. In those cases, EPF drivers cannot provide an
> > > interrupt-driven doorbell and often fall back to polling.
> > >
> > > Add an "embedded" doorbell backend that uses a controller-integrated
> > > doorbell target (e.g. DesignWare integrated eDMA interrupt-emulation
> > > doorbell).
> > >
> > > The backend locates the doorbell register and a corresponding Linux IRQ
> > > via the EPC aux-resource API. If the doorbell register is already
> > > exposed via a fixed BAR mapping, provide BAR+offset. Otherwise provide
> > > the DMA address returned by dma_map_resource() (which may be an IOVA
> > > when an IOMMU is enabled) so EPF drivers can map it into BAR space.
> > >
> > > When MSI doorbell allocation fails with -ENODEV,
> > > pci_epf_alloc_doorbell() falls back to this embedded backend.
> > >
> > > Signed-off-by: Koichiro Den <den@valinux.co.jp>
> > > ---
> > ...
> > > +	 */
> > > +	if (doorbell->bar == NO_BAR) {
> > > +		phys_base = addr & PAGE_MASK;
> > > +		off = addr - phys_base;
> > > +		map_size = PAGE_ALIGN(off + sizeof(u32));
> > > +
> > > +		iova_base = dma_map_resource(epc->dev.parent, phys_base,
> > > +					     map_size, DMA_FROM_DEVICE, 0);
> > 
> > DB should write. Is it DMA_TO_DEVICE?
> 
> Thanks for reviewing.
> 
> The write is initiated by the peer (RC) and lands in this EP-side doorbell
> target, so from the EP side this is a DMA_FROM_DEVICE mapping.

I don't understand.

If the RC side does a PCI TLP write, the iATU on the EP side should translate
that to an AXI write, no?

If the target address (doorbell register in this case) is only mapped as a
DMA_FROM_DEVICE (read), I would have expected that AXI write to result in an
IOMMU fault.

Is the IOMMU really running in strict mode and not in passthrough mode on
your platform?

Do you get an IOMMU fault if you change this code to DMA_TO_DEVICE ?


Kind regards,
Niklas

  reply	other threads:[~2026-03-25  7:06 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-02  7:14 [PATCH v10 0/7] PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback Koichiro Den
2026-03-02  7:14 ` [PATCH v10 1/7] PCI: endpoint: Add auxiliary resource query API Koichiro Den
2026-03-21 14:17   ` Manivannan Sadhasivam
2026-03-23  1:34     ` Koichiro Den
2026-03-02  7:14 ` [PATCH v10 2/7] PCI: dwc: Record integrated eDMA register window Koichiro Den
2026-03-21 14:21   ` Manivannan Sadhasivam
2026-03-23  1:46     ` Koichiro Den
2026-03-24  8:06       ` Koichiro Den
2026-03-02  7:14 ` [PATCH v10 3/7] PCI: dwc: ep: Expose integrated eDMA resources via EPC aux-resource API Koichiro Den
2026-03-23 18:36   ` Frank Li
2026-03-24  8:45     ` Koichiro Den
2026-03-02  7:14 ` [PATCH v10 4/7] PCI: endpoint: pci-ep-msi: Refactor doorbell allocation for new backends Koichiro Den
2026-03-02  7:14 ` [PATCH v10 5/7] PCI: endpoint: pci-epf-vntb: Reuse pre-exposed doorbells and IRQ flags Koichiro Den
2026-03-23 18:39   ` Frank Li
2026-03-02  7:14 ` [PATCH v10 6/7] PCI: endpoint: pci-epf-test: Reuse pre-exposed doorbell targets Koichiro Den
2026-03-23 18:41   ` Frank Li
2026-03-02  7:14 ` [PATCH v10 7/7] PCI: endpoint: pci-ep-msi: Add embedded doorbell fallback Koichiro Den
2026-03-02 10:07   ` Niklas Cassel
2026-03-23 18:48   ` Frank Li
2026-03-24  1:40     ` Koichiro Den
2026-03-25  7:06       ` Niklas Cassel [this message]
2026-03-25  8:43         ` Koichiro Den
2026-03-25 16:56           ` Niklas Cassel
2026-03-26  8:49             ` Koichiro Den
2026-03-26  9:59               ` Niklas Cassel
2026-03-26 10:25                 ` Niklas Cassel
2026-03-26 12:12                   ` Robin Murphy
2026-03-26 14:38                     ` Koichiro Den

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=acOJcMt7E8PLHAD6@ryzen \
    --to=cassel@kernel.org \
    --cc=Frank.li@nxp.com \
    --cc=allenbh@gmail.com \
    --cc=bhanuseshukumar@gmail.com \
    --cc=bhelgaas@google.com \
    --cc=dave.jiang@intel.com \
    --cc=den@valinux.co.jp \
    --cc=jdmason@kudzu.us \
    --cc=jingoohan1@gmail.com \
    --cc=kishon@kernel.org \
    --cc=kwilczynski@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mani@kernel.org \
    --cc=marco.crivellari@suse.com \
    --cc=mmaddireddy@nvidia.com \
    --cc=ntb@lists.linux.dev \
    --cc=robh@kernel.org \
    --cc=shinichiro.kawasaki@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