u-boot/drivers/pci
Patrick Rudolph 699baa63dd pci_auto: Downgrade prefetch if necessary
Legacy PCI devices, like qemu's Bochs VGA device, are allowed to have
prefetchable 32-bit BARs, while PCIe devices are not allowed to have
32-bit prefetchable BARs. Typically prefetchable BARs are 64-bit and
typically the prefetch MMIO window is also 64-bit and placed above
4GiB, as it's the case on qemu sbsa-ref.

Currently the U-Boot code assumes that prefetchable BARs are
64-bit BARs and always tries to assign them into the prefetch
MMIO window.

When a 32-bit BAR is marked as prefetch, but the prefetch area is
not within the first 4GiB of the address space, then downgrade the
BAR and place it in the non-prefetch MMIO window.

For prefetch BARs there's no downside on being placed in non prefetch
MMIO areas, besides the possible slower performance when a driver tries
to map it Write-Combine.

TEST: Fixes pci_auto on QEMU sbsa-ref fails to autoconfigure BAR0.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-03-12 10:23:59 -06:00
..
Kconfig pci: Add support for Qualcomm PCIe controller 2025-01-22 16:43:54 +01:00
Makefile pci: Add support for Qualcomm PCIe controller 2025-01-22 16:43:54 +01:00
pci-aardvark.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci-emul-uclass.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci-rcar-gen2.c pci: renesas: Fix R-Car spelling 2024-12-11 08:36:24 +01:00
pci-rcar-gen3.c pci: renesas: Fix R-Car spelling 2024-12-11 08:36:24 +01:00
pci-uclass.c xpl: Rename spl_phase() to xpl_phase() 2024-10-11 11:44:47 -06:00
pci_auto.c pci_auto: Downgrade prefetch if necessary 2025-03-12 10:23:59 -06:00
pci_auto_common.c drivers: pci: Remove duplicate newlines 2024-07-22 10:53:05 -06:00
pci_common.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_compat.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_ftpci100.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_gt64120.c pci: gt64120: Use PCI_CONF1_ADDRESS() macro 2022-01-12 14:21:24 -05:00
pci_internal.h doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
pci_mpc85xx.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_msc01.c pci: msc01: Use PCI_CONF1_ADDRESS() macro 2022-01-12 14:21:24 -05:00
pci_mvebu.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_octeontx.c pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro 2022-01-12 14:21:24 -05:00
pci_rom.c pci: video: Set up the pixel-format field 2025-01-22 17:08:23 -06:00
pci_sandbox.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_sh7751.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_tegra.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pci_x86.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie-xilinx-nwl.c PCI: zynqmp: Add ZynqMP NWL PCIe root port driver 2023-06-12 13:25:02 +02:00
pcie_apple.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_brcmstb.c arm: mach-bcm283x: Bring in some header files from tianocore 2024-10-27 17:24:13 -06:00
pcie_cdns_ti.c pci: Add TI K3 Cadence PCIe Controller 2024-10-21 17:51:51 -06:00
pcie_dw_common.c pci: pcie_dw_common: introduce pcie_dw_find_capability() 2025-01-22 16:43:53 +01:00
pcie_dw_common.h pci: pcie_dw_common: introduce pcie_dw_find_capability() 2025-01-22 16:43:53 +01:00
pcie_dw_imx.c pci: dw_imx: add support for IMX8MM 2024-04-20 00:37:51 -03:00
pcie_dw_meson.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_dw_mvebu.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_dw_qcom.c pci: Add support for Qualcomm PCIe controller 2025-01-22 16:43:54 +01:00
pcie_dw_rockchip.c drivers: pci: Remove duplicate newlines 2024-07-22 10:53:05 -06:00
pcie_dw_sifive.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_dw_ti.c drivers: pci: Remove duplicate newlines 2024-07-22 10:53:05 -06:00
pcie_ecam_generic.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_ecam_synquacer.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_fsl.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_fsl.h global: Move remaining CONFIG_SYS_PCI* to CFG_SYS_PCI* 2022-12-05 16:06:07 -05:00
pcie_fsl_fixup.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_imx.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_intel_fpga.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_iproc.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape.h global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
pcie_layerscape_ep.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape_fixup.c drivers: pci: Remove duplicate newlines 2024-07-22 10:53:05 -06:00
pcie_layerscape_fixup_common.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape_fixup_common.h global: Drop common.h inclusion 2023-12-21 08:54:37 -05:00
pcie_layerscape_gen4.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape_gen4.h global: Move remaining CONFIG_SYS_PCI* to CFG_SYS_PCI* 2022-12-05 16:06:07 -05:00
pcie_layerscape_gen4_fixup.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_layerscape_rc.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_mediatek.c pci: mediatek: add support for upstream split PCIe node 2024-08-27 11:17:39 -06:00
pcie_mediatek_gen3.c pci: mediatek: add support for multiple ports in mediatek pcie gen3 driver 2025-01-23 12:11:49 -06:00
pcie_octeon.c mips: octeon: Add Octeon PCIe host controller driver 2021-04-28 10:05:12 +02:00
pcie_phytium.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_plda_common.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_plda_common.h starfive: pci: Add StarFive JH7110 pcie driver 2023-08-02 11:02:32 +08:00
pcie_rockchip.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_starfive_jh7110.c pcie: starfive: Make the driver compatible with upstream DT 2024-12-18 13:19:15 +08:00
pcie_uniphier.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
pcie_xilinx.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00