config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
	bool
	# Only tested on these architectures
	default y if BR2_aarch64
	default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
	default y if BR2_i386
	default y if BR2_mips
	default y if BR2_mipsel
	default y if BR2_powerpc64
	default y if BR2_powerpc64le
	default y if BR2_riscv
	default y if BR2_s390x
	default y if BR2_x86_64

comment "QEMU requires a toolchain with wchar, threads, gcc >= 8"
	depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
	depends on BR2_USE_MMU
	depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

menuconfig BR2_PACKAGE_QEMU
	bool "QEMU"
	depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_WCHAR # gettext
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_LIBGLIB2
	select BR2_PACKAGE_ZLIB
	help
	  QEMU is a generic and open source machine emulator and
	  virtualizer.

	  When used as a machine emulator, QEMU can run OSes and
	  programs made for one machine (e.g. an ARM board) on a
	  different machine (e.g.  your own PC). By using dynamic
	  translation, it achieves very good performance.

	  When used as a virtualizer, QEMU achieves near native
	  performances by executing the guest code directly on the
	  host CPU. QEMU supports virtualization when executing under
	  the Xen hypervisor or using the KVM kernel module in
	  Linux. When using KVM, QEMU can virtualize x86, server and
	  embedded PowerPC, and S390 guests.

	  https://www.qemu.org/

if BR2_PACKAGE_QEMU

comment "Emulators selection"

config BR2_PACKAGE_QEMU_SYSTEM
	bool "Enable systems emulation"
	depends on !BR2_STATIC_LIBS # dtc
	select BR2_PACKAGE_PIXMAN
	select BR2_PACKAGE_QEMU_FDT if !BR2_PACKAGE_QEMU_CHOOSE_TARGETS
	help
	  Say 'y' to build system emulators/virtualisers.

if BR2_PACKAGE_QEMU_SYSTEM

config BR2_PACKAGE_QEMU_BLOBS
	bool "Install binary blobs"
	default y
	help
	  Say 'y' here (the default) to install binary blobs (such as
	  BIOS or firmwares for the different machines simulated by
	  QEMU). Say 'n' to not install those blobs.

	  Note: Some machines may be unbootable without those blobs.
	  If unsure, say 'y'.

config BR2_PACKAGE_QEMU_SLIRP
	bool "Enable user mode networking (SLIRP)"
	select BR2_PACKAGE_SLIRP
	help
	  Enable user mode network stack, which is the default
	  networking backend. It requires no administrator privileges
	  and generally is the easiest to use but has some
	  limitations:

	  - there is a lot of overhead so the performance is poor;
	  - in general ICMP does not work (can't ping from/to a guest)
	  - on Linux hosts, ping does work from within the guest, but it
	    needs initial setup by root (once per host)
	  - the guest is not directly accessible from the host or the
	    external network

	  User Networking is implemented using "slirp", which provides a
	  full TCP/IP stack within QEMU and uses that stack to implement
	  a virtual NAT'd network.

	  Notice that this option does not disable other networking
	  modes.

config BR2_PACKAGE_QEMU_SDL
	bool "Enable SDL frontend"
	select BR2_PACKAGE_SDL2
	help
	  Say 'y' to enable the SDL frontend, that is, a graphical
	  window presenting the VM's display.

config BR2_PACKAGE_QEMU_FDT
	bool "Enable FDT"
	select BR2_PACKAGE_DTC
	help
	  Say 'y' here to have QEMU capable of constructing Device
	  Trees, and passing them to the VMs.

config BR2_PACKAGE_QEMU_TRACING
	bool "Enable tracing"
	help
	  Say 'y' to enable the "log" tracing infrastructure in QEMU,
	  used for debugging, profiling, and observing execution. For
	  detailed documentation, see

	  https://www.qemu.org/docs/master/devel/tracing.html

endif # BR2_PACKAGE_QEMU_SYSTEM

comment "systems emulation needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_QEMU_LINUX_USER
	bool "Enable Linux user-land emulation"
	help
	  Say 'y' to build Linux user-land emulators.

# Note: bsd-user can not be build on Linux

config BR2_PACKAGE_QEMU_CHOOSE_TARGETS
	bool "Select individual emulator targets"
	depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER
	help
	  By default, all targets (system and/or user, subject to the
	  corresponding options, above) are built. If you only need a
	  subset of the emulated targets, say 'y' here and enable at
	  least one target, below.

if BR2_PACKAGE_QEMU_CHOOSE_TARGETS

config BR2_PACKAGE_QEMU_TARGET_AARCH64
	bool "aarch64"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  ARM 64-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_AARCH64_BE
	bool "aarch64_be (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  ARM 64-bit architecture, big-endian.

config BR2_PACKAGE_QEMU_TARGET_ALPHA
	bool "alpha"
	help
	  DEC Alpha 64-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_ARM
	bool "arm"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  ARM EABI architecture, little-endian.

config BR2_PACKAGE_QEMU_TARGET_ARMEB
	bool "armeb (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  ARM EABI architecture, big-endian.

config BR2_PACKAGE_QEMU_TARGET_AVR
	bool "avr (system, only)"
	depends on BR2_PACKAGE_QEMU_SYSTEM
	help
	  AVR 8-bit microcontroller architecture.

config BR2_PACKAGE_QEMU_TARGET_CRIS
	bool "cris"
	help
	  ETRAX CRIS microcontroller architecture.

config BR2_PACKAGE_QEMU_TARGET_HEXAGON
	bool "hexagon (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  Qualcomm's Hexagon VLSI DSP architecture.

config BR2_PACKAGE_QEMU_TARGET_HPPA
	bool "hppa"
	help
	  HP PA-RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_I386
	bool "i386"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Intel i386 32-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_LOONGARCH64
	bool "loongarch64"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Loongson 64-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_M68K
	bool "m68k"
	help
	  Motorola 68000 architecture.

config BR2_PACKAGE_QEMU_TARGET_MICROBLAZE
	bool "microblaze"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Xilinix MicroBlaze soft processor.

config BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL
	bool "microblazeel"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Xilinix MicroBlaze EL soft processor.

config BR2_PACKAGE_QEMU_TARGET_MIPS
	bool "mips"
	help
	  MIPS 32-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_MIPSEL
	bool "mipsel"
	help
	  MIPS 32-bit architecture, little-endian.

config BR2_PACKAGE_QEMU_TARGET_MIPS64
	bool "mips64"
	help
	  MIPS 64-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_MIPS64EL
	bool "mips64el"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  MIPS 64-bit architecture, little-endian.

config BR2_PACKAGE_QEMU_TARGET_MIPSN32
	bool "mipsn32 (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  MIPS N32 architecture.

config BR2_PACKAGE_QEMU_TARGET_MIPSN32EL
	bool "mipsn32el (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  MIPS N32 architecture, little-endian.

config BR2_PACKAGE_QEMU_TARGET_NIOS2
	bool "nios2"
	help
	  Nios II architecture.

config BR2_PACKAGE_QEMU_TARGET_OR1K
	bool "or1k"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  OpenRISC 1000 architecture.

config BR2_PACKAGE_QEMU_TARGET_PPC
	bool "ppc"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  PoewerPC 32-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_PPC64
	bool "ppc64"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  PoewerPC 64-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_PPC64LE
	bool "ppc64le (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  PoewerPC 64-bit architecture, little-endian.

config BR2_PACKAGE_QEMU_TARGET_RISCV32
	bool "riscv32"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  RISC-V 32-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_RISCV64
	bool "riscv64"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  RISC-V 64-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_RX
	bool "rx (system-only)"
	depends on BR2_PACKAGE_QEMU_SYSTEM
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Renesas Electronics RX 32-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_S390X
	bool "s390x"
	help
	  IBM z/Architecture 64-bit mainframe (s390x)

config BR2_PACKAGE_QEMU_TARGET_SH4
	bool "sh4"
	help
	  Super-H 32-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_SH4EB
	bool "sh4eb"
	help
	  Super-H EB 32-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_SPARC
	bool "sparc"
	help
	  SPARC 32-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS
	bool "sparc32plus (linux-user, only)"
	depends on BR2_PACKAGE_QEMU_LINUX_USER
	help
	  SPARC 32-bit RISC architecture (Sun's v8plus).

config BR2_PACKAGE_QEMU_TARGET_SPARC64
	bool "sparc64"
	help
	  SPARC 64-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_TRICORE
	bool "tricore (system, only)"
	depends on BR2_PACKAGE_QEMU_SYSTEM
	help
	  Infineon TriCore 32-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_X86_64
	bool "x86_64"
	select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
	help
	  Intel x86 64-bit architecture.

config BR2_PACKAGE_QEMU_TARGET_XTENSA
	bool "xtensa"
	help
	  Xtensa 32-bit RISC architecture.

config BR2_PACKAGE_QEMU_TARGET_XTENSAEB
	bool "xtensaeb"
	help
	  Xtensa 32-bit RISC architecture, big-endian.

endif # BR2_PACKAGE_QEMU_CHOOSE_TARGETS

comment "Tools selection"

config BR2_PACKAGE_QEMU_TOOLS
	bool "Enable tools"
	help
	  Say 'y' here to include tools packaged with QEMU
	  (e.g. qemu-img).

config BR2_PACKAGE_QEMU_GUEST_AGENT
	bool "Enable guest agent"
	help
	  Say 'y' here to include an agent to run on guests, which
	  communicates with the host over a virtio-serial channel
	  named "org.qemu.guest_agent.0".

endif # BR2_PACKAGE_QEMU
