kumquat-buildroot/package/qemu/Config.in
Alistair Francis 10fc3fa81d package/qemu: add support for RISC-V
QEMU is supported on both 32-bit and 64-bit RISC-V hosts, so let's
enable support for it in buildroot.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-09-23 23:54:52 +02:00

161 lines
4.7 KiB
Plaintext

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_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
config 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_PIXMAN
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.
http://qemu.org/
if BR2_PACKAGE_QEMU
comment "Emulators selection"
config BR2_PACKAGE_QEMU_CUSTOM_TARGETS
string "Enable specific targets"
help
Enter here the list of QEMU targets you want to build. For
example:
System emulation | User-land emulation
----------------------+-----------------------
i386-softmmu | i386-linux-user
arm-softmmu | ppc-linux-user
x86_64-softmmu | sparc-bsd-user
... | ...
comment "Networking options"
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.
if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = ""
comment "... or you can select emulator families to enable, below:"
config BR2_PACKAGE_QEMU_SYSTEM
bool "Enable all systems emulation"
depends on !BR2_STATIC_LIBS # dtc
select BR2_PACKAGE_QEMU_FDT
help
Say 'y' to build all system emulators/virtualisers that QEMU
supports.
comment "systems emulation needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_QEMU_LINUX_USER
bool "Enable all Linux user-land emulation"
# Incompatible "struct sigevent" definition on musl
depends on !BR2_TOOLCHAIN_USES_MUSL
help
Say 'y' to build all Linux user-land emulators that QEMU
supports.
# Note: bsd-user can not be build on Linux
comment "Linux user-land emulation needs a glibc or uClibc toolchain"
depends on BR2_TOOLCHAIN_USES_MUSL
endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
config BR2_PACKAGE_QEMU_HAS_EMULS
def_bool y
depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER || BR2_PACKAGE_QEMU_CUSTOM_TARGETS != ""
if BR2_PACKAGE_QEMU_HAS_EMULS
comment "Frontends"
config BR2_PACKAGE_QEMU_SDL
bool "Enable SDL frontend"
depends on !BR2_STATIC_LIBS # sdl2
select BR2_PACKAGE_SDL2
help
Say 'y' to enable the SDL frontend, that is, a graphical
window presenting the VM's display.
comment "SDL frontend needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
comment "Misc. features"
config BR2_PACKAGE_QEMU_FDT
bool "Enable FDT"
depends on !BR2_STATIC_LIBS # dtc
select BR2_PACKAGE_DTC
help
Say 'y' here to have QEMU capable of constructing Device
Trees, and passing them to the VMs.
comment "FDT support needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
endif # BR2_PACKAGE_QEMU_HAS_EMULS
config BR2_PACKAGE_QEMU_TOOLS
bool "Enable tools"
help
Say 'y' here to include tools packaged with QEMU
(e.g. qemu-img).
endif # BR2_PACKAGE_QEMU