zephyr/arch/x86/Kconfig

112 lines
3.6 KiB
Plaintext

source "arch/x86/core/Kconfig"
source "arch/x86/bsp/Kconfig"
menu "Floating Point Options"
depends on !CPU_FLOAT_UNSUPPORTED
config FLOAT
bool
prompt "Floating point instructions"
default n
select FP_SHARING if ENHANCED_SECURITY
help
This option enables the use of x87 FPU and MMX instructions by
a task or fiber.
Disabling this option means that any task or fiber that uses a
floating point instruction will get a fatal exception.
config SSE
bool
prompt "SSEx instructions"
depends on FLOAT && !CPU_SSE_UNSUPPORTED
default n
help
This option enables the use of SSEx instructions by a task or fiber.
Disabling this option means that no task or fiber may use SSEx
instructions; any such use will result in undefined behavior.
config SSE_FP_MATH
bool
prompt "Compiler-generated SSEx instructions" if FP_SHARING
depends on SSE && ISA_IA32
default n if FP_SHARING
default y if !FP_SHARING
help
This option allows the compiler to generate SSEx instructions for
performing floating point math. This can greatly improve performance
when exactly the same operations are to be performed on multiple
data objects; however, it can also significantly reduce performance
when pre-emptive task switches occur because of the larger register
set that must be saved and restored.
Disabling this option means that the compiler utilizes only the
x87 instruction set for floating point operations.
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.
config XIP
default n
endmenu
#FIXME This symbols is not being used.
config CUSTOM_RANDOM_GENERATOR
bool "Custom randmon generator"
default n
help
This option signifies that the target uses custom random number
generator.
if BSP_GENERIC_PC
source "arch/x86/generic_pc/Kconfig"
endif
if BSP_QUARK
source "arch/x86/quark/Kconfig"
endif
source "arch/x86/timer/Kconfig"
source "arch/x86/interrupt_controller/Kconfig"