# Kconfig - x86 general configuration options # # Copyright (c) 2014-2015 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # config X86_32 def_bool y config ARCH_DEFCONFIG string default "arch/x86/defconfig" source "kernel/Kconfig" menu "X86 Platform Configuration options" choice prompt "Platform Selection" default PLATFORM_IA32_PCI config PLATFORM_GALILEO bool "Galileo Gen2" select HPET_TIMER select EOI_HANDLER_SUPPORTED select BOOTLOADER_UNKNOWN select PCI help The Intel® Galileo Gen 2 development board is a microcontroller board based on the Intel® Quark™ SoC X1000 application processor, a 32-bit Intel® Pentium® brand system on a chip (SoC). It is the first board based on Intel® architecture designed to be hardware and software pin-compatible with shields designed for the Arduino Uno* R3. config PLATFORM_IA32_PCI bool "IA32 with PCI" select HPET_TIMER select EOI_HANDLER_SUPPORTED select BOOTLOADER_UNKNOWN select PCI config PLATFORM_IA32 bool "IA32" select EOI_HANDLER_SUPPORTED select BOOTLOADER_UNKNOWN endchoice choice prompt "Intel Processor" default CPU_MINUTEIA config CPU_ATOM bool "Atom" select CMOV help This option signifies the use of a CPU from the Atom family. config CPU_MINUTEIA bool "Minute IA" help This option signifies the use of a CPU from the Minute IA family. endchoice config CPU_MIGHT_SUPPORT_CLFLUSH bool default n help If a platform uses a processor that possibly implements CLFLUSH, change the default in that platform's config file. #FIXME This option is not being used in the current code base. config CLFLUSH_INSTRUCTION_SUPPORTED bool prompt "CLFLUSH instruction supported" if CPU_MIGHT_SUPPORT_CLFLUSH depends on CPU_MIGHT_SUPPORT_CLFLUSH default n help Only enable this if the CLFLUSH instruction is supported, so that an implementation of sys_cache_flush() that uses CLFLUSH is made available, instead of the one using WBINVD. menu "Platform Capabilities" config ADVANCED_IDLE_SUPPORTED bool "Advanced Idle Supported" default n help This option signifies that the target supports the ADVANCED_IDLE configuration option. 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 Unsupported" 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). config NUM_DYNAMIC_STUBS int "Number of dynamic int stubs" default 0 help This option specifies the number of interrupt handlers that can be installed dynamically using irq_connect(). config PIC_DISABLE bool "Disable PIC" default n help This option disables all interrupts on the PIC endmenu menu "Processor Capabilities" config ISA_IA32 bool default y help This option signifies the use of a CPU based on the Intel IA-32 instruction set architecture. config IA32_LEGACY_IO_PORTS bool prompt "Support IA32 legacy IO ports" default n depends on ISA_IA32 help This option enables IA32 legacy IO ports. Note these are much slower than memory access, so they should be used in last resort. config CMOV def_bool n help This option signifies the use of an Intel CPU that supports the CMOV instruction. config CACHE_LINE_SIZE int "Cache line size" default 64 if CPU_ATOM default 0 help Size in bytes of a CPU cache line. endmenu menu "Floating Point Options" config FLOAT bool prompt "Floating point registers" default n help This option allows tasks and fibers to use the floating point registers. By default, only a single task or fiber may use the registers, and only the x87 FPU/MMX registers may be used. Disabling this option means that any task or fiber that uses a floating point register will get a fatal exception. config FP_SHARING bool prompt "Floating point register sharing" depends on FLOAT default n help This option allows multiple tasks and fibers to use the floating point registers. Any task that uses the floating point registers must provide stack space where the kernel can save these registers during context switches; a task that uses only the x87 FPU/MMX registers must provide 108 bytes of added stack space, while a task the uses the SSE registers must provide 464 bytes of added stack space. config SSE bool prompt "SSE registers" depends on FLOAT default n help This option enables the use of SSE registers by tasks and fibers. config SSE_FP_MATH bool prompt "Compiler-generated SSEx instructions" depends on SSE default n 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 XIP default n endmenu source "arch/x86/core/Kconfig" endmenu if PLATFORM_IA32 source "arch/x86/platforms/ia32/Kconfig" endif if PLATFORM_IA32_PCI source "arch/x86/platforms/ia32_pci/Kconfig" endif if PLATFORM_GALILEO source "arch/x86/platforms/galileo/Kconfig" endif source "drivers/Kconfig" source "net/Kconfig" source "misc/Kconfig"