diff options
author | Eric Biederman <ebiederm@xmission.com> | 2004-10-16 06:20:29 +0000 |
---|---|---|
committer | Eric Biederman <ebiederm@xmission.com> | 2004-10-16 06:20:29 +0000 |
commit | 7003ba4a88a847707c55d593e517eaa70fc8c63d (patch) | |
tree | ad29fcd2fde474cb9bdd32835a76101edabe1ef9 /src/arch/i386/smp/mpspec.c | |
parent | 216525d1fd86c13e0f1ebe85ba518cdc1da06fcb (diff) |
- First stab at running linuxbios without the old static device tree.
Things are close but not quite there yet.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1681 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386/smp/mpspec.c')
-rw-r--r-- | src/arch/i386/smp/mpspec.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/i386/smp/mpspec.c b/src/arch/i386/smp/mpspec.c index babfcbdca2..c674cf58f5 100644 --- a/src/arch/i386/smp/mpspec.c +++ b/src/arch/i386/smp/mpspec.c @@ -1,4 +1,6 @@ #include <console/console.h> +#include <device/device.h> +#include <device/path.h> #include <cpu/cpu.h> #include <arch/smp/mpspec.h> #include <string.h> @@ -101,14 +103,17 @@ void smp_write_processors(struct mp_config_table *mc) unsigned cpu_feature_flags; struct cpuid_result result; device_t cpu; + boot_apic_id = lapicid(); apic_version = lapic_read(LAPIC_LVR) & 0xff; result = cpuid(1); cpu_features = result.eax; cpu_feature_flags = result.edx; - for(cpu = dev_root.link[1].children; cpu; cpu = cpu->sibling) { + for(cpu = all_devices; cpu; cpu = cpu->next) { unsigned long cpu_flag; - if (cpu->path.type != DEVICE_PATH_APIC) { + if ((cpu->path.type != DEVICE_PATH_APIC) || + (cpu->bus->dev->path.type != DEVICE_PATH_APIC_CLUSTER)) + { continue; } if (!cpu->enabled) { |