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;
|
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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue