Message ID | 20230911220920.1817033-1-Frank.Li@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | Add RC-to-EP doorbell with platform MSI controller | expand |
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 │ │ │ > │ │ │ │ │ │ > │ │ │ │ │ │ > └────────────┘ └───────────────────────────────────┘ └────────────────┘ @mani: Do you have chance to review this patch again? Frank > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > 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 >
On Wed, Sep 20, 2023 at 05:39:48PM -0400, Frank Li 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 │ │ │ > > │ │ │ │ │ │ > > │ │ │ │ │ │ > > └────────────┘ └───────────────────────────────────┘ └────────────────┘ > > @mani: > Do you have chance to review this patch again? I was on vacation for past few weeks. Will take a look in the coming week. - Mani > > Frank > > > > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > > > 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 > >
On Sat, Sep 30, 2023 at 11:02:49AM +0200, Manivannan Sadhasivam wrote: > On Wed, Sep 20, 2023 at 05:39:48PM -0400, Frank Li 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 │ │ │ > > > │ │ │ │ │ │ > > > │ │ │ │ │ │ > > > └────────────┘ └───────────────────────────────────┘ └────────────────┘ > > > > @mani: > > Do you have chance to review this patch again? > > I was on vacation for past few weeks. Will take a look in the coming week. Ping? Frank > > - Mani > > > > > Frank > > > > > > > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > > > > > 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 > > > > > -- > மணிவண்ணன் சதாசிவம்
On Tue, Oct 10, 2023 at 10:21:24AM -0400, Frank Li wrote: > On Sat, Sep 30, 2023 at 11:02:49AM +0200, Manivannan Sadhasivam wrote: > > On Wed, Sep 20, 2023 at 05:39:48PM -0400, Frank Li 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 │ │ │ > > > > │ │ │ │ │ │ > > > > │ │ │ │ │ │ > > > > └────────────┘ └───────────────────────────────────┘ └────────────────┘ > > > > > > @mani: > > > Do you have chance to review this patch again? > > > > I was on vacation for past few weeks. Will take a look in the coming week. > > Ping? > > Frank @mani: did you have chance to look at this? > > > > > - Mani > > > > > > > > Frank > > > > > > > > > > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > > > > > > > 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 > > > > > > > > -- > > மணிவண்ணன் சதாசிவம்
On Mon, Oct 16, 2023 at 10:50:58AM -0400, Frank Li wrote: > On Tue, Oct 10, 2023 at 10:21:24AM -0400, Frank Li wrote: > > On Sat, Sep 30, 2023 at 11:02:49AM +0200, Manivannan Sadhasivam wrote: > > > On Wed, Sep 20, 2023 at 05:39:48PM -0400, Frank Li 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 │ │ │ > > > > > │ │ │ │ │ │ > > > > > │ │ │ │ │ │ > > > > > └────────────┘ └───────────────────────────────────┘ └────────────────┘ > > > > > > > > @mani: > > > > Do you have chance to review this patch again? > > > > > > I was on vacation for past few weeks. Will take a look in the coming week. > > > > Ping? > > > > Frank > > @mani: did you have chance to look at this? > Sorry for the long delay. I will take a look tomorrow. - Mani > > > > > > > > - Mani > > > > > > > > > > > Frank > > > > > > > > > > > > > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > > > > > > > > > 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 > > > > > > > > > > > -- > > > மணிவண்ணன் சதாசிவம்
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@nxp.com/ > > 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? Kind regards, Niklas
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@nxp.com/ > > > > 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