move apic cluster before pci_domain in MB Config.lb

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1896 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Yinghai Lu 2005-01-21 22:02:09 +00:00
parent e324731152
commit b5d9af4105
3 changed files with 32 additions and 31 deletions

View File

@ -613,19 +613,6 @@ void dev_initialize(void)
struct device *dev;
printk_info("Initializing devices...\n");
#if CONFIG_CONSOLE_VGA == 1
for (dev = all_devices; dev; dev = dev->next) {
if (dev->enabled && !dev->initialized &&
dev->ops && dev->ops->init)
{
if( !dev->on_mainboard ) continue; // process addon card in second run
else if( dev->rom_address!=0 ) continue; // onboard and it is assigned via MB Config.lb, process it later
printk_debug("%s init\n", dev_path(dev));
dev->initialized = 1;
dev->ops->init(dev);
}
}
#endif
for (dev = all_devices; dev; dev = dev->next) {
if (dev->enabled && !dev->initialized &&
dev->ops && dev->ops->init)

View File

@ -127,6 +127,14 @@ end
# sample config for tyan/s2885
chip northbridge/amd/amdk8/root_complex
device apic_cluster 0 on
chip cpu/amd/socket_940
device apic 0 on end
end
# chip cpu/amd/socket_940
# device apic 1 on end
# end
end
device pci_domain 0 on
chip northbridge/amd/amdk8
device pci 18.0 on # LDT0
@ -237,22 +245,14 @@ chip northbridge/amd/amdk8/root_complex
device pci 18.3 on end
end
chip northbridge/amd/amdk8
device pci 19.0 on end
device pci 19.0 on end
device pci 19.0 on end
device pci 19.1 on end
device pci 19.2 on end
device pci 19.3 on end
end
end
device apic_cluster 0 on
chip cpu/amd/socket_940
device apic 0 on end
end
chip cpu/amd/socket_940
device apic 1 on end
end
# chip northbridge/amd/amdk8
# device pci 19.0 on end
# device pci 19.0 on end
# device pci 19.0 on end
# device pci 19.1 on end
# device pci 19.2 on end
# device pci 19.3 on end
# end
end
# chip drivers/generic/debug

View File

@ -741,8 +741,22 @@ static unsigned int cpu_bus_scan(device_t dev, unsigned int max)
device_t dev, cpu;
struct device_path cpu_path;
/* Find the cpu's memory controller */
dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 0));
/* Find the cpu's memory controller */
dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 3));
if(!dev) {
// in case in mb Config.lb we move apic cluster before pci_domain and not set that for second CPU
struct device dummy;
uint32_t id;
dummy.bus = dev_mc->bus;
dummy.path.type = DEVICE_PATH_PCI;
dummy.path.u.pci.devfn = PCI_DEVFN(0x18 + i, 3);
id = pci_read_config32(&dummy, PCI_VENDOR_ID);
if (id != 0xffffffff && id != 0x00000000 &&
id != 0x0000ffff && id != 0xffff0000) {
//create that for it
dev = alloc_dev(dev_mc->bus, &dummy.path);
}
}
/* Build the cpu device path */
cpu_path.type = DEVICE_PATH_APIC;