[PATCH v3 5/9] pci: pcie_dw_rockchip: Hide BARs of the root complex

Jonas Karlman jonas at kwiboo.se
Wed Jul 19 23:32:48 CEST 2023


Hi Kever,

On 2023-07-19 10:20, Kever Yang wrote:
> Hi Jonas,
> 
>      Pls check if below patch available for you:
> 
> https://patchwork.ozlabs.org/project/uboot/patch/20230719081749.976334-1-kever.yang@rock-chips.com/

That works great and is much cleaner, thanks!

I had to rework the patch a little bit for it to apply with other
changes in this series.
See https://github.com/Kwiboo/u-boot-rockchip/commit/0e0bbc8edecff356e6b0ae33912393b26de3dad1

Should I send a v4 series with above patch included?

Regards,
Jonas

> 
> 
> Thanks,
> 
> - Kever
> 
> On 2023/7/18 15:55, Jonas Karlman wrote:
>> PCI Autoconfig read the Root Complex BARs and try to claim the entire
>> 1 GiB memory region on RK3568, leaving no space for any attached device.
>>
>> With a memory region less than 1 GiB this was not a real issue:
>>
>>    PCI Autoconfig: Bus Memory region: [0-3eefffff],
>>    PCI Autoconfig: Bus I/O region: [3ef00000-3effffff],
>>    PCI Autoconfig: Found P2P bridge, device 0
>>    PCI Autoconfig: BAR 0, Mem, size=0x40000000, No room in resource, avail start=1000 / size=3ef00000, need=40000000
>>    PCI: Failed autoconfig bar 10
>>    PCI Autoconfig: BAR 1, Mem, size=0x40000000, No room in resource, avail start=1000 / size=3ef00000, need=40000000
>>    PCI: Failed autoconfig bar 14
>>    PCI Autoconfig: ROM, size=0x10000, address=0x10000 bus_lower=0x20000
>>
>>    PCI Autoconfig: BAR 0, Mem64, size=0x4000, address=0x100000 bus_lower=0x104000
>>
>> With a memory region of the entire 1 GiB this leads to:
>>
>>    PCI Autoconfig: Bus Memory region: [40000000-7fffffff],
>>    PCI Autoconfig: Bus I/O region: [f0100000-f01fffff],
>>    PCI Autoconfig: Found P2P bridge, device 0
>>    PCI Autoconfig: BAR 0, Mem, size=0x40000000, address=0x40000000 bus_lower=0x80000000
>>    PCI Autoconfig: BAR 1, Mem, size=0x40000000, No room in resource, avail start=80000000 / size=40000000, need=40000000
>>    PCI: Failed autoconfig bar 14
>>    PCI Autoconfig: ROM, size=0x10000, No room in resource, avail start=80000000 / size=40000000, need=10000
>>
>>    PCI Autoconfig: BAR 0, Mem64, size=0x4000, No room in resource, avail start=80000000 / size=40000000, need=4000
>>    PCI: Failed autoconfig bar 10
>>
>> After this change with a memory region of the entire 1 GiB:
>>
>>    PCI Autoconfig: Bus Memory region: [40000000-7fffffff],
>>    PCI Autoconfig: Bus I/O region: [f0100000-f01fffff],
>>    PCI Autoconfig: Found P2P bridge, device 0
>>    PCI Autoconfig: ROM, size=0x10000, address=0x40000000 bus_lower=0x40010000
>>
>>    PCI Autoconfig: BAR 0, Mem64, size=0x4000, address=0x40100000 bus_lower=0x40104000
>>
>> Return an invalid value during config read of Root Complex BARs during
>> autoconfig to work around such issue.
>>
>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>

[...]


More information about the U-Boot mailing list