Hi,
Is there any reason why there is a fixed split, other than making the code simpler (i.e. need only one instead of two passes over all pci devices)?
Because pci-to-pci bridge handles memory access and preferchable memory access differently.
Sure. The reason for the two regions is clear. But we could still calculate the size at runtime I think. i.e. do one pass, figure how much bars with which sizes we have for each type, calculate the window sizes we'll need, then do a second pass and map the pci regions. That would also allow to pack the regions better.
cheers, Gerd