Ignore disabled local APICs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23118 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
d5f56f7d69
commit
fd0986401e
@ -9,6 +9,8 @@
|
||||
#define ACPI_RSDT_SIGNATURE "RSDT"
|
||||
#define ACPI_MADT_SIGNATURE "APIC"
|
||||
|
||||
#define ACPI_LOCAL_APIC_ENABLED 0x01
|
||||
|
||||
struct acpi_rsdp {
|
||||
char signature[8]; /* "RSD PTR " including blank */
|
||||
uint8 checksum; /* checksum of bytes 0-19 (per ACPI 1.0) */
|
||||
|
@ -280,6 +280,11 @@ smp_do_acpi_config(acpi_rsdp *rsdp)
|
||||
|
||||
acpi_local_apic *localApic = (acpi_local_apic *)apic;
|
||||
TRACE(("smp: found local APIC with id %u\n", localApic->apic_id));
|
||||
if ((localApic->flags & ACPI_LOCAL_APIC_ENABLED) == 0) {
|
||||
TRACE(("smp: APIC is disabled and will not be used\n"));
|
||||
break;
|
||||
}
|
||||
|
||||
gKernelArgs.arch_args.cpu_apic_id[gKernelArgs.num_cpus] = localApic->apic_id;
|
||||
gKernelArgs.arch_args.cpu_os_id[localApic->apic_id] = gKernelArgs.num_cpus;
|
||||
// ToDo: how to find out? putting 0x10 in to indicate a local apic
|
||||
|
Loading…
Reference in New Issue
Block a user