On Tuesday 07 November 2006 18:11, Matthew Wilcox wrote: > On Wed, Nov 08, 2006 at 12:57:03AM +0800, Jeff Chua wrote: > > 2) this fails ... > > > > e0000000-efffffff : 0000:00:02.0 > > f0000000-ffffffff : PCI MMCONFIG 0 > > fed00000-fed003ff : HPET 0 > > Heh, no kidding ... > > num_buses = pci_mmcfg_config[i].end_bus_number - > pci_mmcfg_config[i].start_bus_number + 1; > res->start = pci_mmcfg_config[i].base_address; > res->end = res->start + (num_buses << 20) - 1; > res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; > insert_resource(&iomem_resource, res); > > So if we have 256 busses assigned, then we request 256MB and, well, > there's no room for anyone else. This code was added by Andi in commit > de09bddb9d6f96785be470c832b881e6d72d589f > > Hopefully he'll have a good idea how to restrict it. Given your "working" > resource map, it seems like it should be limited to 16MB (and thus 16 > busses). But how to figure that out? ACPI knows the number of busses. Just need to get the information there, which is a ordering issue (normally MCFG initialization is before this is known I think) Len, ACPI folks, any ideas how to fix this cleanly? -Andi