74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
|
# Copyright (c) 2019 Intel Corporation
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
menuconfig LOAPIC
|
||
|
bool "LOAPIC"
|
||
|
depends on X86
|
||
|
help
|
||
|
This option selects local APIC as the interrupt controller.
|
||
|
|
||
|
if LOAPIC
|
||
|
|
||
|
config LOAPIC_BASE_ADDRESS
|
||
|
hex "Local APIC Base Address"
|
||
|
default 0xFEE00000
|
||
|
help
|
||
|
This option specifies the base address of the Local APIC device.
|
||
|
|
||
|
config X2APIC
|
||
|
bool "Access local APIC in x2APIC mode"
|
||
|
help
|
||
|
If your local APIC supports x2APIC mode, turn this on.
|
||
|
|
||
|
config LOAPIC_SPURIOUS_VECTOR
|
||
|
bool "Handle LOAPIC spurious interrupts"
|
||
|
help
|
||
|
A special situation may occur when a processor raises its task
|
||
|
priority to be greater than or equal to the level of the
|
||
|
interrupt for which the processor INTR signal is currently being
|
||
|
asserted. If at the time the INTA cycle is issued, the
|
||
|
interrupt that was to be dispensed has become masked (programmed
|
||
|
by software), the local APIC will deliver a spurious-interrupt
|
||
|
vector. Dispensing the spurious-interrupt vector does not affect
|
||
|
the ISR, so the handler for this vector should return without an EOI.
|
||
|
From x86 manual Volume 3 Section 10.9.
|
||
|
|
||
|
config LOAPIC_SPURIOUS_VECTOR_ID
|
||
|
int "LOAPIC spurious vector ID"
|
||
|
default -1
|
||
|
depends on LOAPIC_SPURIOUS_VECTOR
|
||
|
help
|
||
|
IDT vector to use for spurious LOAPIC interrupts. Note that some
|
||
|
arches (P6, Pentium) ignore the low 4 bits and fix them at 0xF.
|
||
|
If this value is left at -1 the last entry in the IDT will be used.
|
||
|
|
||
|
config IOAPIC
|
||
|
bool "IO-APIC"
|
||
|
default y
|
||
|
help
|
||
|
This option signifies that the target has an IO-APIC device. This
|
||
|
capability allows IO-APIC-dependent code to be included.
|
||
|
|
||
|
config IOAPIC_NUM_RTES
|
||
|
int "Number of Redirection Table Entries available"
|
||
|
default 24
|
||
|
depends on IOAPIC
|
||
|
help
|
||
|
This option indicates the maximum number of Redirection Table Entries
|
||
|
(RTEs) (one per IRQ available to the IO-APIC) made available to the
|
||
|
kernel, regardless of the number provided by the hardware itself. For
|
||
|
most efficient usage of memory, it should match the number of IRQ lines
|
||
|
needed by devices connected to the IO-APIC.
|
||
|
|
||
|
config IOAPIC_MASK_RTE
|
||
|
bool "Mask out RTE entries on boot"
|
||
|
default y
|
||
|
depends on IOAPIC
|
||
|
help
|
||
|
At boot, mask all IOAPIC RTEs if they may be in an undefined state.
|
||
|
You don't need this if the RTEs are either all guaranteed to be masked
|
||
|
when the OS starts up, or a previous boot stage has done some IOAPIC
|
||
|
configuration that needs to be preserved.
|
||
|
|
||
|
endif # LOAPIC
|