Re: [PATCH v2 0/5] Add RC-to-EP doorbell with platform MSI controller
From: Frank Li
Date: Wed Oct 09 2024 - 12:28:40 EST
On Wed, Oct 09, 2024 at 06:01:27PM +0200, Niklas Cassel wrote:
> On Mon, Sep 11, 2023 at 06:09:15PM -0400, Frank Li wrote:
> > ┌────────────┐ ┌───────────────────────────────────┐ ┌────────────────┐
> > │ │ │ │ │ │
> > │ │ │ PCI Endpoint │ │ PCI Host │
> > │ │ │ │ │ │
> > │ │◄──┤ 1.platform_msi_domain_alloc_irqs()│ │ │
> > │ │ │ │ │ │
> > │ MSI ├──►│ 2.write_msi_msg() ├──►├─BAR<n> │
> > │ Controller │ │ update doorbell register address│ │ │
> > │ │ │ for BAR │ │ │
> > │ │ │ │ │ 3. Write BAR<n>│
> > │ │◄──┼───────────────────────────────────┼───┤ │
> > │ │ │ │ │ │
> > │ ├──►│ 4.Irq Handle │ │ │
> > │ │ │ │ │ │
> > │ │ │ │ │ │
> > └────────────┘ └───────────────────────────────────┘ └────────────────┘
> >
> > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@xxxxxxx/
> >
> > Original patch only target to vntb driver. But actually it is common
> > method.
> >
> > This patches add new API to pci-epf-core, so any EP driver can use it.
> >
> > The key point is comments from Thomas Gleixner, who suggest use new
> > PCI/IMS. But arm platform change still not be merged yet.
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git devmsi-v2-arm
> >
> > So I still use existed method implement RC to EP doorbell.
> >
> > If Thomas Gleixner want to continue work on devmsi-v2-arm, I can help test
> > and update this patch.
> >
> > Change from v1 to v2
> > - Add missed patch for endpont/pci-epf-test.c
> > - Move alloc and free to epc driver from epf.
> > - Provide general help function for EPC driver to alloc platform msi irq.
> > - Fixed manivannan's comments.
> >
> > Frank Li (5):
> > PCI: endpoint: Add RC-to-EP doorbell support using platform MSI
> > controller
> > PCI: dwc: add doorbell support by use MSI controller
> > PCI: endpoint: pci-epf-test: add doorbell test
> > misc: pci_endpoint_test: Add doorbell test case
> > tools: PCI: Add 'B' option for test doorbell
> >
> > drivers/misc/pci_endpoint_test.c | 48 +++++
> > .../pci/controller/dwc/pcie-designware-ep.c | 2 +
> > drivers/pci/endpoint/functions/pci-epf-test.c | 59 +++++-
> > drivers/pci/endpoint/pci-epc-core.c | 192 ++++++++++++++++++
> > drivers/pci/endpoint/pci-epf-core.c | 44 ++++
> > include/linux/pci-epc.h | 6 +
> > include/linux/pci-epf.h | 7 +
> > include/uapi/linux/pcitest.h | 1 +
> > tools/pci/pcitest.c | 16 +-
> > 9 files changed, 373 insertions(+), 2 deletions(-)
> >
> > --
> > 2.34.1
> >
>
> Hello Frank,
>
> Thank you for your work on this.
> This series is very interesting.
>
> As you probably know, IMS support was ripped out of the kernel a few
> months ago:
> b966b1102871 ("Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support"")
>
> So this series seems as relevant as ever.
>
> Are you considering continuing work on this series any time soon?
Thank you reminder it. I forget it totally. I can respin it. I remember
there are issue that how to provent pcitest to test door bell bar.
Frank
>
>
> Kind regards,
> Niklas