CONFIG_HW_STACK_PROTECTION is now available. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
228 lines
6.2 KiB
Text
228 lines
6.2 KiB
Text
# x86 general configuration options
|
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "X86 Architecture Options"
|
|
depends on X86
|
|
|
|
config ARCH
|
|
default "x86"
|
|
|
|
#
|
|
# CPU Families - the SoC configuration should select the right one.
|
|
#
|
|
|
|
config CPU_ATOM
|
|
bool # hidden
|
|
select CPU_HAS_FPU
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
|
select ARCH_HAS_USERSPACE if X86_MMU && !X86_64
|
|
help
|
|
This option signifies the use of a CPU from the Atom family.
|
|
|
|
config CPU_MINUTEIA
|
|
bool # hidden
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
|
select ARCH_HAS_USERSPACE if X86_MMU && !X86_64
|
|
help
|
|
This option signifies the use of a CPU from the Minute IA family.
|
|
|
|
config CPU_APOLLO_LAKE
|
|
bool # hidden
|
|
select CPU_HAS_FPU
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
|
select ARCH_HAS_USERSPACE if X86_MMU && !X86_64
|
|
help
|
|
This option signifies the use of a CPU from the Apollo Lake family.
|
|
|
|
#
|
|
# Configuration common to both IA32 and Intel64 sub-architectures.
|
|
#
|
|
|
|
config X86_64
|
|
bool
|
|
prompt "Run in 64-bit mode"
|
|
default n
|
|
select 64BIT
|
|
select USE_SWITCH
|
|
select USE_SWITCH_SUPPORTED
|
|
select SCHED_IPI_SUPPORTED
|
|
|
|
config MAX_IRQ_LINES
|
|
int "Number of IRQ lines"
|
|
default 128
|
|
range 0 224
|
|
help
|
|
This option specifies the number of IRQ lines in the system. It
|
|
determines the size of the _irq_to_interrupt_vector_table, which
|
|
is used to track the association between vectors and IRQ numbers.
|
|
|
|
config IRQ_OFFLOAD_VECTOR
|
|
int "IDT vector to use for IRQ offload"
|
|
default 32
|
|
range 32 255
|
|
depends on IRQ_OFFLOAD
|
|
|
|
config XIP
|
|
default n
|
|
|
|
config PIC_DISABLE
|
|
bool "Disable PIC"
|
|
help
|
|
This option disables all interrupts on the legacy i8259 PICs at boot.
|
|
|
|
choice
|
|
prompt "Reboot implementation"
|
|
depends on REBOOT
|
|
default REBOOT_RST_CNT
|
|
|
|
config REBOOT_RST_CNT
|
|
bool "Reboot via RST_CNT register"
|
|
help
|
|
Reboot via the RST_CNT register, going back to BIOS.
|
|
endchoice
|
|
|
|
config ACPI
|
|
bool "ACPI (Advanced Configuration and Power Interface) support"
|
|
default n
|
|
help
|
|
Allow retrieval of platform configuration at runtime.
|
|
|
|
config X86_MEMMAP_ENTRIES
|
|
int "Number of memory map entries"
|
|
range 1 256
|
|
default 1 if !MULTIBOOT_MEMMAP
|
|
default 64 if MULTIBOOT_MEMMAP
|
|
help
|
|
Maximum number of memory regions to hold in the memory map.
|
|
|
|
config MULTIBOOT
|
|
bool "Generate multiboot header"
|
|
default y
|
|
help
|
|
Embed a multiboot header in the output executable. This is used
|
|
by some boot loaders (e.g., GRUB) when loading Zephyr. It is safe
|
|
to leave this option on if you're not sure. It only expands the
|
|
text segment by 12-16 bytes and is typically ignored if not needed.
|
|
|
|
if MULTIBOOT
|
|
|
|
config MULTIBOOT_INFO
|
|
bool "Preserve multiboot information structure"
|
|
default n
|
|
help
|
|
Multiboot passes a pointer to an information structure to the
|
|
kernel entry point. Some drivers (e.g., the multiboot framebuffer
|
|
display driver) need to refer to information in this structure,
|
|
and so set this option to preserve the data in a permanent location.
|
|
|
|
config MULTIBOOT_MEMMAP
|
|
bool "Use multiboot memory map if provided"
|
|
default n
|
|
select MULTIBOOT_INFO
|
|
help
|
|
Use the multiboot memory map if the loader provides one.
|
|
|
|
config MULTIBOOT_FRAMEBUF
|
|
bool "Multiboot framebuffer support"
|
|
default n
|
|
select DISPLAY
|
|
select FRAMEBUF_DISPLAY
|
|
select MULTIBOOT_INFO
|
|
|
|
if MULTIBOOT_FRAMEBUF
|
|
|
|
config MULTIBOOT_FRAMEBUF_X
|
|
int "Multiboot framebuffer X pixels"
|
|
default 640
|
|
|
|
config MULTIBOOT_FRAMEBUF_Y
|
|
int "Multiboot framebuffer Y pixels"
|
|
default 480
|
|
|
|
endif # MULTIBOOT_FRAMEBUF
|
|
|
|
endif # MULTIBOOT
|
|
|
|
config X86_VERY_EARLY_CONSOLE
|
|
bool "Support very early boot printk"
|
|
depends on PRINTK
|
|
help
|
|
Non-emulated X86 devices often require special hardware to attach
|
|
a debugger, which may not be easily available. This option adds a
|
|
very minimal serial driver which gets initialized at the very
|
|
beginning of z_cstart(), via z_arch_kernel_init(). This driver enables
|
|
printk to emit messages to the 16550 UART port 0 instance in device
|
|
tree. This mini-driver assumes I/O to the UART is done via ports.
|
|
|
|
config X86_MMU
|
|
bool "Enable Memory Management Unit"
|
|
select MEMORY_PROTECTION
|
|
depends on MP_NUM_CPUS = 1 # FIXME: Working through SMP issues
|
|
help
|
|
This options enables the memory management unit present in x86
|
|
and creates a set of page tables at boot time that is runtime-
|
|
mutable.
|
|
|
|
config X86_MMU_PAGE_POOL_PAGES
|
|
int "Number of pages to reserve for building page tables"
|
|
default 16
|
|
depends on X86_MMU
|
|
help
|
|
Building page tables at boot requires a pool of free memory pages
|
|
to construct it. This can't be derived at build time, tune this
|
|
to your SoC's specific memory map.
|
|
|
|
config X86_NO_MELTDOWN
|
|
bool
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate that
|
|
a particular SOC is not vulnerable to the Meltdown CPU vulnerability,
|
|
as described in CVE-2017-5754.
|
|
|
|
config X86_NO_SPECTRE_V1
|
|
bool
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate that
|
|
a particular SOC is not vulnerable to the Spectre V1, V1.1, and V1.2
|
|
CPU vulnerabilities as described in CVE-2017-5753 and CVE-2018-3693.
|
|
|
|
config X86_NO_SPECTRE_V2
|
|
bool
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate that
|
|
a particular SOC is not vulnerable to the Spectre V2 CPU
|
|
vulnerability, as described in CVE-2017-5715.
|
|
|
|
config X86_NO_SPECTRE_V4
|
|
bool
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate that
|
|
a particular SOC is not vulnerable to the Spectre V4 CPU
|
|
vulnerability, as described in CVE-2018-3639.
|
|
|
|
config X86_NO_LAZY_FP
|
|
bool
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate
|
|
that a particular SOC is not vulnerable to the Lazy FP CPU
|
|
vulnerability, as described in CVE-2018-3665.
|
|
|
|
config X86_NO_SPECULATIVE_VULNERABILITIES
|
|
bool
|
|
select X86_NO_MELTDOWN
|
|
select X86_NO_SPECTRE_V1
|
|
select X86_NO_SPECTRE_V2
|
|
select X86_NO_SPECTRE_V4
|
|
select X86_NO_LAZY_FP
|
|
help
|
|
This hidden option should be set on a per-SOC basis to indicate that
|
|
a particular SOC does not perform any kind of speculative execution,
|
|
or is a newer chip which is immune to the class of vulnerabilities
|
|
which exploit speculative execution side channel attacks.
|
|
|
|
source "arch/x86/core/Kconfig.ia32"
|
|
source "arch/x86/core/Kconfig.intel64"
|
|
|
|
endmenu
|