mainmenu "QEMU Virtualization"

choice
	prompt "Target Architecture"
	default @ARCH@

config QEMU_riscv64
	bool "risv64"
	select QEMU_ARCH_IS_64

config QEMU_x86_64
	bool "x86_64"
	select QEMU_ARCH_IS_64

config QEMU_aarch64
	bool "AArch64 (little endian)"
	select QEMU_ARCH_IS_64

endchoice

choice
	prompt "Loader"
	default QEMU_LOADER_KERNEL

config QEMU_LOADER_KERNEL
	bool "Kernel"

config QEMU_LOADER_UBOOT
	bool "U-Boot"
	depends on QEMU_aarch64

config QEMU_LOADER_OVMF
	bool "OVMF (UEFI)"
	depends on QEMU_x86_64

endchoice

choice
     prompt "Rootfs type"
     default QEMU_ROOTFS_INITRD

config QEMU_ROOTFS_MMC
     bool "MMC"
     depends on QEMU_aarch64

config QEMU_ROOTFS_INITRD
     bool "Initrd"
     depends on QEMU_LOADER_KERNEL

config QEMU_ROOTFS_VSCSI
     bool "Virtio SCSI"

endchoice

choice
     prompt "Console"
     default QEMU_CONSOLE_VIRTIO

config QEMU_CONSOLE_VIRTIO
     bool "Virtio (hvc0)"

config QEMU_CONSOLE_SERIAL
     bool "Serial (ttyS0/ttyAMA0)"
     depends on !QEMU_LOADER_OVMF
endchoice

config QEMU_MACHINE
	string "Select emulated machine"
	default "qemu-system-aarch64 -M virt,accel=kvm:tcg -cpu max,pauth-impdef=on" if QEMU_aarch64
	default "qemu-system-x86_64  -M pc,accel=kvm:tcg   -cpu max" if QEMU_x86_64
	help
	  You should not have to change this setting, although you may
	  want to tweak it, or change the acceleration.

	  The default is based on the Buildroot architecture, selected by
	  the defconfig you started with.  Currently Infix supports only
	  aarch64 (ARM64) and x86_64 (AMD64).

config QEMU_MACHINE_RAM
	string "RAM size (k/M/G)"
	default "448M"
	help
	  The default, 384 MiB, works for most configurations.  However,
	  if you get kernel panic with: "System is deadlocked on memory",
	  try increasing this one.

config QEMU_KERNEL
	string
	depends on QEMU_LOADER_KERNEL
	default "Image"   if QEMU_aarch64
	default "bzImage" if QEMU_x86_64

config QEMU_BIOS
	string
	depends on !QEMU_LOADER_KERNEL
	default "u-boot.bin" if QEMU_LOADER_UBOOT
	default "OVMF.fd"    if QEMU_LOADER_OVMF

config QEMU_ROOTFS
	string
	default "@DISK_IMG@" if !QEMU_ROOTFS_INITRD
	default "rootfs.squashfs" if QEMU_ROOTFS_INITRD

config QEMU_DTB_EXTEND
	bool
	depends on QEMU_LOADER_UBOOT
	default y if QEMU_aarch64

if QEMU_ROOTFS_INITRD

config QEMU_RW
	string "Writable /cfg layer"
	depends on QEMU_ROOTFS_INITRD
	default "cfg.ext4"

config QEMU_RW_VAR_OPT
	bool "Separate writable /var"

if QEMU_RW_VAR_OPT
config QEMU_RW_VAR_SIZE
	string "Size of /var"
	default "256M"
config QEMU_RW_VAR
	string "Writable /var layer"
	default "var.ext4"
endif

endif

config QEMU_VPD
	bool "Emulate a Vital Product Data (VPD) Memory"

config QEMU_HOST
	string "Export host filesystem path"
	default "/tmp"

config QEMU_APPEND
	string "Extra kernel options"
	depends on !QEMU_ROOTFS_MMC

config QEMU_EXTRA
	string "Extra QEMU options"


comment "RTC"

choice
	prompt "Mode"
	default QEMU_RTC_UTC

config QEMU_RTC_UTC
	bool "UTC"

config QEMU_RTC_LOCAL
	bool "Local time"

config QEMU_RTC_RANDOM
	bool "Random"

endchoice

choice
	prompt "Clock"
	default QEMU_CLOCK_HOST

config QEMU_CLOCK_HOST
	bool "Host clock"

config QEMU_CLOCK_RT
	bool "Independent (monotonic)"

config QEMU_CLOCK_VM
	bool "Virtual"

endchoice

config QEMU_RTC
	string
	default "utc"       if QEMU_RTC_UTC
	default "localtime" if QEMU_RTC_LOCAL
	default "random"    if QEMU_RTC_RANDOM

config QEMU_CLOCK
	string
	default "host"      if QEMU_CLOCK_HOST
	default "rt"        if QEMU_CLOCK_RT
	default "vm"        if QEMU_CLOCK_VM

comment "Networking"

choice
     prompt "Network Mode"
     default QEMU_NET_USER

config QEMU_NET_NONE
     bool "None"

config QEMU_NET_BRIDGE
     bool "Bridged"

config QEMU_NET_USER
     bool "User"

config QEMU_NET_TAP
     bool "TAP"

config QEMU_NET_ROCKER
     bool "Rocker"

endchoice

config QEMU_NET_MODEL
	string "Interface model"
	default "virtio-net-pci"
	help
	  The default, virtio-net-pci, NIC works for most use-cases, but
	  if you want to play with low-level stuff like ethtool, you
	  might want to test the Intel 82545EM driver, e1000.

config QEMU_NET_BRIDGE_DEV
	string "Bridge device"
	depends on QEMU_NET_BRIDGE
	default "virbr0"

config QEMU_NET_USER_OPTS
	string "User mode options"
	depends on QEMU_NET_USER
	help
	  Extra -nic user,<OPTIONS>

config QEMU_NET_TAP_N
	int "Number of TAPs"
	depends on QEMU_NET_TAP
	default 1

config QEMU_NET_PORTS
	int "Number of Rocker switch ports"
	depends on QEMU_NET_ROCKER
	default 10
