zephyr/arch/x86/core/Kconfig

129 lines
4.1 KiB
Plaintext

menu "x86 Core Options"
depends on ARCH="x86"
config NO_ISRS
bool
prompt "No Asynchronous Interrupts"
default n
help
This option disables asynchronous interrupts support.
menu "Memory Layout Options"
config IDT_NUM_VECTORS
int
prompt "Number of IDT vectors"
default 256
help
This option specifies the number of interrupt vector entries in the
Interrupt Descriptor Table (IDT). By default all 256 vectors are
supported in an IDT requiring 2048 bytes of memory.
config NUM_GDT_SPARE_ENTRIES
int
prompt "Number of spare GDT entries"
default 0
help
This option specifies the number of spare entries in the Global
Descriptor Table (GDT).
config PHYS_LOAD_ADDR
hex "Physical load address"
# Default value must be supplied by BSP
help
This option specifies the physical address where the kernel is loaded.
endmenu
menu "Board Capabilities"
config BOI_HANDLER_SUPPORTED
bool "BOI handler supported"
default n
help
This option signifies that the target has one or more devices whose
driver utilizes a "beginning of interrupt" handler that gets called
before the standard interrupt handling code. This capability
can be used by the driver to suppress spurious interrupts generated
by the device (or for other purposes).
config EOI_HANDLER_SUPPORTED
bool "EOI handler supported"
default n
help
This option signifies that the target has one or more devices whose
driver utilizes an "end of interrupt" handler that gets called
after the standard interrupt handling code. This capability
can be used by the driver to tell the device that an interrupt
has been handled (or for other purposes).
config UNALIGNED_WRITE_UNSUPPORTED
bool "Unaligned write Supported"
default n
help
This option signifies that the target may not properly decode the
IA-32 processor's byte enable (BE) lines, resulting in the inability
to read/write unaligned quantities.
config LOCK_INSTRUCTION_UNSUPPORTED
bool "Lock Instruction Unsupported"
default n
help
This option signifies that the target lacks support for the IA-32
LOCK prefix instruction. Code running on such targets cannot
use the LOCK prefix to perform read-modify-write operations in an
atomic manner; such targets must utilize other techniques to perform
atomic operations (such as locking interrupts).
endmenu
menu "Floating Point Options"
depends on !CPU_FLOAT_UNSUPPORTED
config FP_SHARING
bool
prompt "Floating point resource sharing" if !ENHANCED_SECURITY
depends on FLOAT
default n
select AUTOMATIC_FP_ENABLING if ENHANCED_SECURITY
help
This option allows multiple tasks and fibers to safely utilize
floating point hardware resources. Every task or fiber that wishes
to use floating point instructions (i.e. x87 FPU, MMX, or SSEx) must
be created with such support already enabled, or must enable this
support via task_float_enable() or fiber_float_enable() before
executing these instructions.
Enabling this option adds 108 bytes to the stack size requirement
of each task or fiber that utilizes x87 FPU or MMX instructions,
and adds 464 bytes to the stack size requirement of each task or
fiber that utilizes SSEx instructions. (The stack size requirement
of tasks and fibers that do not utilize floating point instructions
remains unchanged.)
Disabling this option means that only a single task or fiber may
utilize x87 FPU, MMX, or SSEx instructions. (The stack size
requirement of all tasks and fibers remains unchanged.)
config AUTOMATIC_FP_ENABLING
bool
prompt "Automatically enable floating point resource sharing" \
if !ENHANCED_SECURITY
depends on FP_SHARING
default n
help
This option allows tasks and fibers to safely utilize floating
point hardware resources without requiring them to first indicate
their intention to do so. The system automatically detects when
a task or fiber that does not currently have floating point support
enabled uses a floating point instruction, and automatically executes
task_float_enable() or fiber_float_enable() on its behalf. The
task or fiber is enabled for using x87 FPU, MMX, or SSEx instructions
if SSE is configured, otherwise it is enabled for using x87 FPU or
MMX instructions only.
endmenu
endmenu