The generic PCI core can do this but this feature is kind of disabled by
low level PCI code in x86. The low level code tries to reserve resource
according to configuration from BIOS. If the BIOS is wrong, the
allocation would fail and the generic PCI core couldn't repair it
because the bridge resources may have been allocated by the PCI low
level and the PCI core can't expand them to find enough resource for the
subordinates.
The proposal is to disable x86 PCI low level to allocation resources
according to BIOS so PCI core can fully control the resource allocation.
The PCI core takes all resources from BARs it knows into account and
configure the resource windows on the bridges according to its own
calculation.
Regards,
Yu
--