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:
parent
e324731152
commit
b5d9af4105
|
@ -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)
|
||||
|
|
|
@ -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,23 +245,15 @@ 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
|
||||
# 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
|
||||
end
|
||||
|
||||
# chip drivers/generic/debug
|
||||
# device pnp 0.0 on end
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue