1# Copyright (c) 2019 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig LOAPIC
5	bool "LOAPIC"
6	depends on X86
7	help
8	  This option selects local APIC as the interrupt controller.
9
10if LOAPIC
11
12config LOAPIC_BASE_ADDRESS
13	hex "Local APIC Base Address"
14	default 0xFEE00000
15	help
16	  This option specifies the base address of the Local APIC device.
17
18config X2APIC
19	bool "Access local APIC in x2APIC mode"
20	help
21	  If your local APIC supports x2APIC mode, turn this on.
22
23config LOAPIC_SPURIOUS_VECTOR
24	bool "Handle LOAPIC spurious interrupts"
25	help
26	  A special situation may occur when a processor raises its task
27	  priority to be greater than or equal to the level of the
28	  interrupt for which the processor INTR signal is currently being
29	  asserted. If at the time the INTA cycle is issued, the
30	  interrupt that was to be dispensed has become masked (programmed
31	  by software), the local APIC will deliver a spurious-interrupt
32	  vector. Dispensing the spurious-interrupt vector does not affect
33	  the ISR, so the handler for this vector should return without an EOI.
34	  From x86 manual Volume 3 Section 10.9.
35
36config LOAPIC_SPURIOUS_VECTOR_ID
37	int "LOAPIC spurious vector ID"
38	default -1
39	depends on LOAPIC_SPURIOUS_VECTOR
40	help
41	  IDT vector to use for spurious LOAPIC interrupts. Note that some
42	  arches (P6, Pentium) ignore the low 4 bits and fix them at 0xF.
43	  If this value is left at -1 the last entry in the IDT will be used.
44
45config IOAPIC
46	bool "IO-APIC"
47	default y
48	help
49	  This option signifies that the target has an IO-APIC device. This
50	  capability allows IO-APIC-dependent code to be included.
51
52config IOAPIC_MASK_RTE
53	bool "Mask out RTE entries on boot"
54	default y
55	depends on IOAPIC
56	help
57	  At boot, mask all IOAPIC RTEs if they may be in an undefined state.
58	  You don't need this if the RTEs are either all guaranteed to be masked
59	  when the OS starts up, or a previous boot stage has done some IOAPIC
60	  configuration that needs to be preserved.
61
62endif # LOAPIC
63