All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/3] PCI: rockchip-host: Handle unavailable downstream config space
@ 2026-11-14  0:28 ` Matt Thompson via B4 Relay
  0 siblings, 0 replies; 15+ messages in thread
From: Matt Thompson @ 2026-11-14  0:28 UTC (permalink / raw)
  To: Shawn Lin, Bjorn Helgaas, Lorenzo Pieralisi,
	Krzysztof Wilczyński, Manivannan Sadhasivam, Heiko Stuebner,
	Catalin Marinas, Will Deacon
  Cc: Rob Herring, Mark Rutland, linux-pci, linux-rockchip,
	linux-arm-kernel, linux-kernel

On a RockPro64 v2.1 with a Kintex-7 FPGA endpoint, a downstream
vendor-ID read during a PCI rescan raised a synchronous external
abort (ESR 0x96000210) in rockchip_pcie_rd_conf(). The rescan task
exited with IRQs disabled and a watchdog lockup followed.

The first patch skips downstream config accesses while the controller
reports the link unavailable. The remaining patches handle synchronous
external aborts on explicitly annotated arm64 config reads, including
when the link changes after the status check. The final patch also
clears the AXI link-down latch before downstream config accesses
once the controller reports the link ready.

The arm64 change is limited to marked load instructions. Asynchronous
SError, BAR accesses, and config writes that race a link change are
outside that recovery path. Feedback on the exception-table interface
and whether the controller can handle absent completions directly is
welcome.

A related discussion covers an RK3399 endpoint that trains but fails
to answer config requests:
https://lore.kernel.org/linux-pci/20261024-rockchip-pcie-resume-v1-0-58e54a5cf5f1@iav.lv/

Validation: applied these three RFC patches to upstream commit
97d73c8251226cf27cc6656b4c542869bb8c69fa and booted the resulting
7.4.0-rc2 kernel on a RockPro64 v2.1. The test config enabled Rust
and built in the required board drivers.

Three test cycles completed on that kernel. Each removed the FPGA
from Linux, disabled the link and rescanned, then re-enabled the link,
requested retraining and rescanned. The FPGA stayed absent in each
disabled scan and returned at 01:00.0 after each retrain without a host
driver rebind. The log showed no synchronous external abort or
watchdog lockup. The test did not establish whether the arm64 fixup ran.

---
Matt Thompson (3):
      PCI: rockchip-host: Skip downstream config access while link is down
      arm64: Allow synchronous abort fixups for guarded MMIO reads
      PCI: rockchip-host: Recover downstream configuration access

 arch/arm64/include/asm/asm-extable.h        |  9 ++++
 arch/arm64/mm/extable.c                     |  1 +
 arch/arm64/mm/fault.c                       | 11 +++++
 drivers/pci/controller/pcie-rockchip-host.c | 69 +++++++++++++++++++++++++++++
 drivers/pci/controller/pcie-rockchip.h      |  1 +
 5 files changed, 91 insertions(+)
---
base-commit: a72c40386d63746568fb027900faaa8ec0054127
change-id: 20261113-rfc-b4-6b795b536d9a

Best regards,
--  
Matt Thompson <matt@boondocker.io>


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

end of thread, other threads:[~2026-11-14  0:41 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-14  0:28 [PATCH RFC 0/3] PCI: rockchip-host: Handle unavailable downstream config space Matt Thompson
2026-11-14  0:28 ` Matt Thompson via B4 Relay
2026-11-14  0:28 ` Matt Thompson via B4 Relay
2026-11-14  0:28 ` [PATCH RFC 1/3] PCI: rockchip-host: Skip downstream config access while link is down Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson
2026-11-14  0:38   ` sashiko-bot
2026-11-14  0:28 ` [PATCH RFC 2/3] arm64: Allow synchronous abort fixups for guarded MMIO reads Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson
2026-11-14  0:41   ` sashiko-bot
2026-11-14  0:28 ` [PATCH RFC 3/3] PCI: rockchip-host: Recover downstream configuration access Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson via B4 Relay
2026-11-14  0:28   ` Matt Thompson
2026-11-14  0:36   ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.