# SPDX-License-Identifier: Apache-2.0

config BOARD_DEPRECATED_RELEASE
	string
	help
	  This hidden option is set in the board configuration and indicates
	  the Zephyr release that the board configuration will be removed.
	  When set, any build for that board will generate a clearly visible
	  deprecation warning.

config QEMU_TARGET
	bool
	help
	  Mark all QEMU targets with this variable for checking whether we are
	  running in an emulated environment.

config NET_DRIVERS
	bool
	default y if QEMU_TARGET && NETWORKING
	help
	  When building for a qemu target then NET_DRIVERS will be default
	  enabled to allow for easy use of SLIP or PPP

# Note: $BOARD_DIR might be a glob pattern

choice
	prompt "Board Selection"

source "$(BOARD_DIR)/Kconfig.board"

endchoice

# Parse shields references
# Don't do it as a menuconfig, as shield selection is a CMake feature.
# This loads custom shields Kconfig (from BOARD_ROOT)
osource "$(KCONFIG_BINARY_DIR)/Kconfig.shield"
# This loads Zephyr base shield defconfigs
rsource "shields/*/Kconfig.shield"

menu "Board Options"
config QEMU_ICOUNT
	bool "QEMU icount mode"
	depends on QEMU_TARGET
	default y if !NETWORKING && !BT
	help
	  Enable QEMU virtual instruction counter. The virtual cpu will
	  execute one instruction every 2^N ns of virtual time. This will
	  give deterministic execution times from the guest point of view.

config QEMU_ICOUNT_SHIFT
	int "QEMU icount shift value"
	depends on QEMU_ICOUNT
	help
	  The virtual CPU will execute one instruction every 2^N nanoseconds
	  of virtual time, where N is the value provided here.

config QEMU_IVSHMEM_PLAIN_MEM_SIZE
	int "QEMU ivshmem-plain shared memory size in mega-bytes"
	default 1
	depends on QEMU_TARGET && IVSHMEM && !IVSHMEM_DOORBELL
	help
	  This sets the size of the shared memory when using ivshmem-plain
	  device in Qemu. Note that it's in mega-bytes, so 1 means 1M for Qemu
	  etc..

config QEMU_UEFI_BOOT
	bool "QEMU uses UEFI to boot up"
	default n
	depends on BUILD_OUTPUT_EFI && QEMU_TARGET && X86_64
	help
	  This option indicates that QEMU will use UEFI bootable method
	  to boot up.

# There might not be any board options, hence the optional source
osource "$(BOARD_DIR)/Kconfig"
endmenu

config BOARD_HAS_TIMING_FUNCTIONS
	bool
	help
	  Should be selected if board provides custom method for retrieving
	  timestamps and cycle count.

config BOARD_NANDBOOT
	bool "Board support NAND BOOT"
	default n
	help
	  If you say yes here will get the support of nand boot.

config BOARD_EMMCBOOT
	bool "Board support EMMC BOOT"
	default n
	help
	  If you say yes here will get the support of emmc boot.
