# SPDX-License-Identifier: Apache-2.0

if BOARD_QEMU_X86

config BUILD_OUTPUT_BIN
	default n

config BOARD
	default "qemu_x86"

config FLASH_SIMULATOR
	default y
	depends on FLASH

config KERNEL_VM_SIZE
	default 0x10000000 if ACPI

config MULTIBOOT
	default y

config MULTIBOOT_INFO
	default y if MULTIBOOT

config MULTIBOOT_MEMMAP
	default y if MULTIBOOT

config QEMU_ICOUNT
	default n if HPET_TIMER && SHELL

config QEMU_ICOUNT_SHIFT
	default 5

endif # BOARD_QEMU_X86

if BOARD_QEMU_X86_64

config BOARD
	default "qemu_x86_64"

config KERNEL_VM_SIZE
	default 0x10000000 if ACPI

endif # BOARD_QEMU_X86_64

if BOARD_QEMU_X86_LAKEMONT

config BUILD_OUTPUT_BIN
	default n

config BOARD
	default "qemu_x86_lakemont"

config KERNEL_VM_SIZE
	default 0x400000

config MULTIBOOT
	# This is needed for QEMU to load the ELF image
	default y

config X86_PC_COMPATIBLE
	# QEMU presents a PC-compatible machine
	default y

config QEMU_ICOUNT
	default n if HPET_TIMER && SHELL

config QEMU_ICOUNT_SHIFT
	default 5

endif # BOARD_QEMU_X86_LAKEMONT

if BOARD_QEMU_X86_TINY

config BUILD_OUTPUT_BIN
	default n

config BOARD
	default "qemu_x86_tiny"

config KERNEL_VM_SIZE
	default 0x400000

config MULTIBOOT
	# This is needed for QEMU to load the ELF image
	default y

config X86_PC_COMPATIBLE
	# QEMU presents a PC-compatible machine
	default y

config QEMU_ICOUNT
	default n if HPET_TIMER && SHELL

config QEMU_ICOUNT_SHIFT
	default 5

config HAVE_CUSTOM_LINKER_SCRIPT
	default y

config CUSTOM_LINKER_SCRIPT
	default "${ZEPHYR_BASE}/boards/x86/qemu_x86/qemu_x86_tiny.ld"

config X86_EXTRA_PAGE_TABLE_PAGES
	# This is needed for gen_mmu.py to map the flash into memory
	default 2 if DEMAND_PAGING && !LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT

config DEMAND_PAGING_PAGE_FRAMES_RESERVE
	# Need to accommodate the heap for newlib in libc-hook.c
	default 6 if NEWLIB_LIBC

endif # BOARD_QEMU_X86_TINY
