summaryrefslogtreecommitdiffstats
path: root/sys/i386/acpica/madt.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-12-03 20:33:18 +0000
committerjhb <jhb@FreeBSD.org>2003-12-03 20:33:18 +0000
commitbfe6af52a8c3f63d1484add5df3ed9a5fea972b1 (patch)
tree63c30bf62ddaa3c198751b40668c2afdc27c6baa /sys/i386/acpica/madt.c
parent60c6b104ef24df5d0b2934e5d6b0781a62bdab81 (diff)
downloadFreeBSD-src-bfe6af52a8c3f63d1484add5df3ed9a5fea972b1.zip
FreeBSD-src-bfe6af52a8c3f63d1484add5df3ed9a5fea972b1.tar.gz
- Reorder the APIC enumerator SYSINIT's to register enumeators at
SI_SUB_CPU - 1 and probe enumerators, probe CPUs, and setup the local APIC programming all at SI_SUB_CPU / SI_ORDER_FIRST. This is needed to help get the ACPI module working again as it moves the APIC enumeration code after SI_SUB_KLD. - In the MADT parser, use mp_maxid rather than MAXCPU to terminate a loop when assigning per-cpu ACPI IDs to avoid a dependency on 'options SMP'. - Allow the apic device to be disabled via 'hint.apic.0.disabled' from the loader. Note that since this is done in the local APIC code, it works for both the ACPI and non-ACPI cases. Approved by: re (scott / blanket)
Diffstat (limited to 'sys/i386/acpica/madt.c')
-rw-r--r--sys/i386/acpica/madt.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/i386/acpica/madt.c b/sys/i386/acpica/madt.c
index 71be5ba..cddf9ff 100644
--- a/sys/i386/acpica/madt.c
+++ b/sys/i386/acpica/madt.c
@@ -351,8 +351,7 @@ madt_register(void *dummy __unused)
apic_register_enumerator(&madt_enumerator);
}
-SYSINIT(madt_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST,
- madt_register, NULL)
+SYSINIT(madt_register, SI_SUB_CPU - 1, SI_ORDER_FIRST, madt_register, NULL)
/*
* Call the handler routine for each entry in the MADT table.
@@ -644,7 +643,7 @@ madt_set_ids(void *dummy)
if (madt == NULL)
return;
- for (i = 0; i < MAXCPU; i++) {
+ for (i = 0; i <= mp_maxid; i++) {
if (CPU_ABSENT(i))
continue;
pc = pcpu_find(i);
OpenPOWER on IntegriCloud