2015-05-21 00:40:39 +08:00
|
|
|
# Kconfig - x86 general configuration options
|
|
|
|
#
|
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
2017-01-19 09:01:01 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2019-06-26 00:36:17 +08:00
|
|
|
|
2017-09-09 09:14:06 +08:00
|
|
|
menu "X86 Architecture Options"
|
2015-10-09 18:20:52 +08:00
|
|
|
depends on X86
|
2015-05-26 22:31:43 +08:00
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
config ARCH
|
2016-05-25 07:17:13 +08:00
|
|
|
default "x86"
|
2015-05-26 22:31:43 +08:00
|
|
|
|
2016-03-16 00:02:42 +08:00
|
|
|
#
|
2019-06-13 05:03:45 +08:00
|
|
|
# CPU Families - the SoC configuration should select the right one.
|
2016-03-16 00:02:42 +08:00
|
|
|
#
|
2019-06-13 05:03:45 +08:00
|
|
|
|
2015-06-12 05:05:13 +08:00
|
|
|
config CPU_ATOM
|
2019-06-13 05:03:45 +08:00
|
|
|
bool # hidden
|
2016-03-16 00:24:49 +08:00
|
|
|
select CPU_HAS_FPU
|
2017-09-09 09:14:06 +08:00
|
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
2017-08-31 05:06:30 +08:00
|
|
|
select ARCH_HAS_USERSPACE if X86_MMU
|
2015-06-12 05:05:13 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option signifies the use of a CPU from the Atom family.
|
2015-06-12 05:05:13 +08:00
|
|
|
|
2015-06-10 22:25:07 +08:00
|
|
|
config CPU_MINUTEIA
|
2019-06-13 05:03:45 +08:00
|
|
|
bool # hidden
|
2017-09-09 09:14:06 +08:00
|
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
2017-08-31 05:06:30 +08:00
|
|
|
select ARCH_HAS_USERSPACE if X86_MMU
|
2015-06-10 22:25:07 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option signifies the use of a CPU from the Minute IA family.
|
2016-03-16 00:24:49 +08:00
|
|
|
|
2018-07-17 09:37:14 +08:00
|
|
|
config CPU_APOLLO_LAKE
|
2019-06-13 05:03:45 +08:00
|
|
|
bool # hidden
|
2018-07-17 09:37:14 +08:00
|
|
|
select CPU_HAS_FPU
|
|
|
|
select ARCH_HAS_STACK_PROTECTION if X86_MMU
|
|
|
|
select ARCH_HAS_USERSPACE if X86_MMU
|
|
|
|
help
|
|
|
|
This option signifies the use of a CPU from the Apollo Lake family.
|
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
#
|
2019-06-26 00:36:17 +08:00
|
|
|
# Configuration common to both IA32 and Intel64 sub-architectures.
|
2019-06-13 05:03:45 +08:00
|
|
|
#
|
2019-03-03 05:15:16 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_LONGMODE
|
2019-03-03 05:15:16 +08:00
|
|
|
bool
|
2019-06-13 05:03:45 +08:00
|
|
|
prompt "Run in long (64-bit) mode"
|
|
|
|
default n
|
2019-07-24 01:13:38 +08:00
|
|
|
select 64BIT
|
2019-09-24 01:57:12 +08:00
|
|
|
select USE_SWITCH_SUPPORTED
|
|
|
|
select USE_SWITCH
|
2019-03-03 05:15:16 +08:00
|
|
|
|
2019-07-05 11:17:14 +08:00
|
|
|
config MAX_IRQ_LINES
|
|
|
|
int "Number of IRQ lines"
|
|
|
|
default 128
|
|
|
|
range 0 256
|
|
|
|
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.
|
|
|
|
|
2019-07-10 08:34:52 +08:00
|
|
|
config IRQ_OFFLOAD_VECTOR
|
|
|
|
int "IDT vector to use for IRQ offload"
|
|
|
|
default 32
|
|
|
|
range 32 255
|
|
|
|
depends on IRQ_OFFLOAD
|
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config XIP
|
|
|
|
default n
|
2019-03-03 05:15:16 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config PIC_DISABLE
|
|
|
|
bool "Disable PIC"
|
2019-03-03 05:15:16 +08:00
|
|
|
help
|
2019-06-13 05:03:45 +08:00
|
|
|
This option disables all interrupts on the legacy i8259 PICs at boot.
|
2015-06-10 22:25:07 +08:00
|
|
|
|
2016-01-19 06:36:00 +08:00
|
|
|
choice
|
2019-06-13 05:03:45 +08:00
|
|
|
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.
|
2016-01-19 06:36:00 +08:00
|
|
|
endchoice
|
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_MULTIBOOT
|
|
|
|
bool "Generate multiboot header"
|
2015-09-19 04:36:57 +08:00
|
|
|
default y
|
2015-11-30 09:20:42 +08:00
|
|
|
help
|
2019-06-13 05:03:45 +08:00
|
|
|
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.
|
2015-06-10 22:25:07 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_MULTIBOOT_INFO
|
|
|
|
bool "Preserve multiboot information structure"
|
|
|
|
depends on X86_MULTIBOOT
|
|
|
|
default n
|
2015-08-01 04:52:22 +08:00
|
|
|
help
|
2019-06-13 05:03:45 +08:00
|
|
|
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.
|
2015-08-01 04:52:22 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
if X86_MULTIBOOT
|
2015-12-10 02:18:30 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_MULTIBOOT_FRAMEBUF
|
|
|
|
bool "Multiboot framebuffer support"
|
|
|
|
default n
|
|
|
|
select DISPLAY
|
|
|
|
select FRAMEBUF_DISPLAY
|
|
|
|
select X86_MULTIBOOT_INFO
|
2017-04-19 06:22:54 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
if X86_MULTIBOOT_FRAMEBUF
|
2017-04-19 06:22:54 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_MULTIBOOT_FRAMEBUF_X
|
|
|
|
int "Multiboot framebuffer X pixels"
|
|
|
|
default 640
|
2017-11-24 01:05:55 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
config X86_MULTIBOOT_FRAMEBUF_Y
|
|
|
|
int "Multiboot framebuffer Y pixels"
|
|
|
|
default 480
|
2017-11-24 01:05:55 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
endif # X86_MULTIBOOT_FRAMEBUF
|
2016-08-03 03:05:08 +08:00
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
endif # X86_MULTIBOOT
|
2016-08-03 03:05:08 +08:00
|
|
|
|
2019-08-02 04:04:53 +08:00
|
|
|
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 kernel_arch_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.
|
|
|
|
|
2019-06-13 05:03:45 +08:00
|
|
|
source "arch/x86/core/Kconfig.ia32"
|
2019-06-26 00:36:17 +08:00
|
|
|
source "arch/x86/core/Kconfig.intel64"
|
2015-03-13 06:15:28 +08:00
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
endmenu
|