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; struct device *dev;
printk_info("Initializing devices...\n"); 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) { for (dev = all_devices; dev; dev = dev->next) {
if (dev->enabled && !dev->initialized && if (dev->enabled && !dev->initialized &&
dev->ops && dev->ops->init) dev->ops && dev->ops->init)

View File

@ -127,6 +127,14 @@ end
# sample config for tyan/s2885 # sample config for tyan/s2885
chip northbridge/amd/amdk8/root_complex 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 device pci_domain 0 on
chip northbridge/amd/amdk8 chip northbridge/amd/amdk8
device pci 18.0 on # LDT0 device pci 18.0 on # LDT0
@ -237,23 +245,15 @@ chip northbridge/amd/amdk8/root_complex
device pci 18.3 on end device pci 18.3 on end
end end
chip northbridge/amd/amdk8 # 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.0 on end
device pci 19.0 on end # device pci 19.0 on end
device pci 19.1 on end # device pci 19.1 on end
device pci 19.2 on end # device pci 19.2 on end
device pci 19.3 on end # device pci 19.3 on end
end # 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
end
# chip drivers/generic/debug # chip drivers/generic/debug
# device pnp 0.0 on end # device pnp 0.0 on end

View File

@ -741,8 +741,22 @@ static unsigned int cpu_bus_scan(device_t dev, unsigned int max)
device_t dev, cpu; device_t dev, cpu;
struct device_path cpu_path; struct device_path cpu_path;
/* Find the cpu's memory controller */ /* Find the cpu's memory controller */
dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 0)); 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 */ /* Build the cpu device path */
cpu_path.type = DEVICE_PATH_APIC; cpu_path.type = DEVICE_PATH_APIC;