zephyr/arch/x86/Kconfig

257 lines
6.5 KiB
Plaintext

# 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"