Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Kconfig - 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
	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
	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
	help
	  This option signifies the use of a CPU from the Apollo Lake family.

#
# Configuration common to both IA32 and X64 sub-architectures.
#

config X86_LONGMODE
	bool
	prompt "Run in long (64-bit) mode"
	default n

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 X86_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.

config X86_MULTIBOOT_INFO
	bool "Preserve multiboot information structure"
	depends on X86_MULTIBOOT
	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.

if X86_MULTIBOOT

config X86_MULTIBOOT_FRAMEBUF
	bool "Multiboot framebuffer support"
	default n
	select DISPLAY
	select FRAMEBUF_DISPLAY
	select X86_MULTIBOOT_INFO

if X86_MULTIBOOT_FRAMEBUF

config X86_MULTIBOOT_FRAMEBUF_X
	int "Multiboot framebuffer X pixels"
	default 640

config X86_MULTIBOOT_FRAMEBUF_Y
	int "Multiboot framebuffer Y pixels"
	default 480

endif # X86_MULTIBOOT_FRAMEBUF

endif # X86_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 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.

source "arch/x86/core/Kconfig.ia32"
source "arch/x86/core/Kconfig.x64"

endmenu