Lines Matching full:apic
51 /* These two arrays are indexed by APIC IDs. */
72 static int madt_find_interrupt(int intr, void **apic, u_int *pin);
100 * Look for an ACPI Multiple APIC Description Table ("APIC")
200 * Initialize the local APIC on the BSP.
224 TUNABLE_INT_FETCH("hw.apic.x2apic_mode", &user_x2apic); in madt_setup_local()
248 printf("ACPI APIC Table: <%.*s %.*s>\n", in madt_setup_local()
253 * We ignore 64-bit local APIC override entries. Should we in madt_setup_local()
276 printf("Try disabling either ACPI or apic support.\n"); in madt_setup_io()
283 /* First, we run through adding I/O APIC's. */ in madt_setup_io()
296 printf("MADT: Could not find APIC for SCI IRQ %u\n", in madt_setup_io()
306 /* Third, we register all the I/O APIC's. */ in madt_setup_io()
311 /* Finally, we throw the switch to enable the I/O APIC's. */ in madt_setup_io()
371 printf("MADT: Found CPU APIC ID %d ACPI ID %u: %s\n", in madt_add_cpu()
377 printf("MADT: Ignoring local APIC ID %u (too high)\n", in madt_add_cpu()
383 KASSERT(la->la_enabled == 0, ("Duplicate local APIC ID %u", apic_id)); in madt_add_cpu()
427 * Add an I/O APIC from an entry in the table.
432 ACPI_MADT_IO_APIC *apic; in madt_parse_apics() local
436 apic = (ACPI_MADT_IO_APIC *)entry; in madt_parse_apics()
439 "MADT: Found IO APIC ID %u, Interrupt %u at %p\n", in madt_parse_apics()
440 apic->Id, apic->GlobalIrqBase, in madt_parse_apics()
441 (void *)(uintptr_t)apic->Address); in madt_parse_apics()
442 if (apic->Id > IOAPIC_MAX_ID) in madt_parse_apics()
443 panic("%s: I/O APIC ID %u too high", __func__, in madt_parse_apics()
444 apic->Id); in madt_parse_apics()
445 if (ioapics[apic->Id].io_apic != NULL) in madt_parse_apics()
446 panic("%s: Double APIC ID %u", __func__, apic->Id); in madt_parse_apics()
447 ioapics[apic->Id].io_apic = ioapic_create(apic->Address, in madt_parse_apics()
448 apic->Id, apic->GlobalIrqBase); in madt_parse_apics()
449 ioapics[apic->Id].io_vector = apic->GlobalIrqBase; in madt_parse_apics()
503 * Find the local APIC ID associated with a given ACPI Processor ID.
522 * Find the IO APIC and pin on that APIC associated with a given global
526 madt_find_interrupt(int intr, void **apic, u_int *pin) in madt_find_interrupt() argument
541 *apic = ioapics[best].io_apic; in madt_find_interrupt()
623 printf("MADT: Could not find APIC for vector %u (IRQ %u)\n", in madt_parse_interrupt_override()
645 printf("MADT: Could not find APIC for source IRQ %u\n", in madt_parse_interrupt_override()
658 * Parse an entry for an NMI routed to an IO APIC.
667 printf("MADT: Could not find APIC for vector %u\n", in madt_parse_nmi()
682 * Parse an entry for an NMI routed to a local APIC LVT pin.
770 panic("APIC: CPU with APIC ID %u is not enabled", in madt_set_ids()
774 printf("APIC: CPU %u has ACPI ID %u\n", i, in madt_set_ids()