linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] PCI: endpoint: space allocation fixups
@ 2025-04-07 14:39 Jerome Brunet
  2025-04-07 14:39 ` [PATCH v3 1/3] PCI: endpoint: add epc_feature argument for pci_epf_free_space() Jerome Brunet
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Jerome Brunet @ 2025-04-07 14:39 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Krzysztof Wilczyński,
	Kishon Vijay Abraham I, Bjorn Helgaas, Lorenzo Pieralisi,
	Jon Mason, Dave Jiang, Allen Hubbe, Christoph Hellwig,
	Sagi Grimberg, Chaitanya Kulkarni
  Cc: Marek Vasut, Yoshihiro Shimoda, Yuya Hamamachi, linux-pci,
	linux-kernel, ntb, linux-nvme, Jerome Brunet

This patchset fixes problems while trying to allocate space for PCI
endpoint function.

The problems, and related fixups, have been found while trying to link two
renesas rcar-gen4 r8a779f0-spider devices with the vNTB endpoint
function. This platform has 2 configurable BAR0 and BAR2, with an alignment
of 1MB, and fairly small fixed BAR4 of 256B.

This was tested with
 * BAR0 (1MB):  CTRL+SPAD
 * BAR2 (1MB):  MW0
 * BAR4 (256B): Doorbell

This setup is currently not supported by the vNTB EP driver and requires a
small hack. I'm working on that too.

Changes in v3:
- Rebased on v6.15-rc1
- Fix build issue with newly introduced nvme endpoint function
- Link to v2: https://lore.kernel.org/r/20250404-pci-ep-size-alignment-v2-0-c3a0db4cfc57@baylibre.com

Changes in v2:
- Allocate space that match the iATU alignment requirement, as previously
  done.
- Chose not to add a new member in struct pci_epf_bar, as initially
  discussed. After reworking the code, that did not seem necessary.
- Make sure SPAD registers are 4 bytes aligned in the vNTB endpoint function
- Link to v1: https://lore.kernel.org/r/20250328-pci-ep-size-alignment-v1-0-ee5b78b15a9a@baylibre.com

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
Jerome Brunet (3):
      PCI: endpoint: add epc_feature argument for pci_epf_free_space()
      PCI: endpoint: improve fixed_size bar handling when allocating space
      PCI: endpoint: pci-epf-vntb: simplify ctrl/spad space allocation

 drivers/nvme/target/pci-epf.c                 |  3 +-
 drivers/pci/endpoint/functions/pci-epf-ntb.c  |  3 +-
 drivers/pci/endpoint/functions/pci-epf-test.c |  2 ++
 drivers/pci/endpoint/functions/pci-epf-vntb.c | 42 ++++++++++-----------------
 drivers/pci/endpoint/pci-epf-core.c           | 27 ++++++++++++-----
 include/linux/pci-epf.h                       |  1 +
 6 files changed, 42 insertions(+), 36 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250328-pci-ep-size-alignment-9d85b28b8050

Best regards,
-- 
Jerome


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-04-19  4:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-07 14:39 [PATCH v3 0/3] PCI: endpoint: space allocation fixups Jerome Brunet
2025-04-07 14:39 ` [PATCH v3 1/3] PCI: endpoint: add epc_feature argument for pci_epf_free_space() Jerome Brunet
2025-04-07 14:39 ` [PATCH v3 2/3] PCI: endpoint: improve fixed_size bar handling when allocating space Jerome Brunet
2025-04-07 15:35   ` Niklas Cassel
2025-04-07 15:43     ` Jerome Brunet
2025-04-08  9:36       ` Niklas Cassel
2025-04-19  4:34         ` Manivannan Sadhasivam
2025-04-07 14:39 ` [PATCH v3 3/3] PCI: endpoint: pci-epf-vntb: simplify ctrl/spad space allocation Jerome Brunet

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 NNTP newsgroup(s).