[PATCH 0/2] PCI: dwc: Support large BARs on UltraRISC DP1000

From: Xincheng Zhang

Date: Thu Aug 27 2026 - 01:55:50 EST


This series lets DWC host drivers skip generic outbound iATU programming
for host bridge MEM ranges, which is useful for some compute cards' very
large BAR size demand (>100GB).

DP1000 has 16 outbound iATU windows, and each window can map up to
4GB. This limits its allocatable MEM64 BAR size to 4GB*(16-3)=52GB
(-3 for CFG, I/O and MEM32).

But some EPs like compute cards demand large BAR size that exceeds the
mapping limit of the 13 iATUs. DWC IP spec allows RC to skip MEM iATU setup
and simply uses a direct mapping. By introducing a `bypass_ob_mem_iatu`
flag at the RC level, this patch enables large BARs on UR-DP1000
RISC-V CPU.

Tested on UltraRISC DP1000 EVB and Titan board. The system booted
successfully with PCIe links up on all three controllers and NVMe rootfs
mounted. MMIO read/write speed test within the large BAR space goes well.

Xincheng Zhang (2):
PCI: dwc: Allow drivers to skip MEM outbound iATU setup
PCI: ultrarisc: Skip MEM outbound iATU setup on DP1000

drivers/pci/controller/dwc/pcie-designware-host.c | 6 +++---
drivers/pci/controller/dwc/pcie-designware.h | 1 +
drivers/pci/controller/dwc/pcie-ultrarisc.c | 6 ++++++
3 files changed, 10 insertions(+), 3 deletions(-)

--
2.34.1