Hi, I am trying to figure out for a PCI host bridge how the address assignment is generated, and I have this question.
Let's say the host uses some other bus, bus foo, as the primary bus, then use foo_to_pci as PCI host bridge to connect PCI world. Then in assigning the system address map, the host may pre-allocate a big chunk of IO and memory space to PCI. Let's just say the PCI memory space is [0xA0000000:0xFFFFFFFF] and PCI IO space is [0x90000000:0x9FFFFFFF].
Then the PCI init code in system bootup should assign all the PCI device address map, IO and memory, to these 2 ranges respectively.
So far it sounds all natural. But in reading some Linux document it mentions that PCI IO address "always" starts at 0x0. Is it real? The foo_to_pci bridge does have address alias functionality, then do I have to alias IO space from [0x90000000:0x9FFFFFFF] to [0x0:0x0FFFFFFF]?
Thanks.