# Kconfig - x86 general configuration options # # Copyright (c) 2014-2015 Wind River Systems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1) Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # 2) Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # 3) Neither the name of Wind River Systems nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # config X86_32 def_bool y config ARCH_DEFCONFIG string default "arch/x86/defconfig" if X86_32 source "kernel/Kconfig" source "misc/Kconfig" 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 config PCI bool # omit prompt to signify a "hidden" option default n help This options enables support of PCI bus enumeration for device drivers. config PCI_DEBUG bool prompt "Enable PCI debugging" depends on PCI default n help This options enables PCI debigging functions 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" source "drivers/Kconfig" source "net/Kconfig"