
Currently, the PCI subsystem selects the small "region 2" (which starts at 0x7000000) as bus_addr/phys_addr. As a consequence, the BAR0 on PCIe video card cannot be initialized, because it simply doesn't fit into 0x1000000 bytes size of "region 2".
U-Boot should use "region 1" instead (the one which starts at 0x60090000), because it has much bigger size (0xFF70000), and easily accomodates BAR0 of the video card. Linux kernel also uses 0x60090000 as bus_start/phys_start.
Signed-off-by: Yuri Zaporozhets yuriz@vodafonemail.de --- configs/sifive_unmatched_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/sifive_unmatched_defconfig b/configs/sifive_unmatched_defconfig index 058e5fab68..d5c7d5bfa3 100644 --- a/configs/sifive_unmatched_defconfig +++ b/configs/sifive_unmatched_defconfig @@ -36,6 +36,7 @@ CONFIG_DISPLAY_BOARDINFO=y CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_ID_EEPROM=y CONFIG_PCI_INIT_R=y +CONFIG_PCI_REGION_MULTI_ENTRY=y CONFIG_SPL_MAX_SIZE=0x100000 # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set CONFIG_SPL_SYS_MALLOC=y