PCI resource allocation code uses the PCI-PCI bridge positive decode memory and
I/O window registers to choose resources for a newly-allocated device. For
PCI-PCI bridges that run in subtractive-decode mode, any address that's passed
to the primary side can be passed to the secondary side after the positive-decode
time period passes, so really any address valid on the parent side is valid
on the secondary side for a subtractive bridge.
The allocation code needs to recognize subtractive bridges and allow such
allocations, maybe preferring the positive-decode window where possible, but
allowing the subtractive behavior if not.
I think the code to do all this is in add_ppb_props().