Config.in 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  2. bool
  3. # Only tested on these architectures
  4. default y if BR2_aarch64
  5. default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
  6. default y if BR2_i386
  7. default y if BR2_mips
  8. default y if BR2_mipsel
  9. default y if BR2_powerpc64
  10. default y if BR2_powerpc64le
  11. default y if BR2_riscv
  12. default y if BR2_x86_64
  13. comment "QEMU requires a toolchain with wchar, threads, gcc >= 8"
  14. depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  15. depends on BR2_USE_MMU
  16. depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \
  17. !BR2_TOOLCHAIN_GCC_AT_LEAST_8
  18. menuconfig BR2_PACKAGE_QEMU
  19. bool "QEMU"
  20. depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
  21. depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
  22. depends on BR2_TOOLCHAIN_HAS_THREADS
  23. depends on BR2_USE_WCHAR # gettext
  24. depends on BR2_USE_MMU # fork()
  25. select BR2_PACKAGE_LIBGLIB2
  26. select BR2_PACKAGE_ZLIB
  27. select BR2_PACKAGE_QEMU_TOOLS if !BR2_PACKAGE_QEMU_SYSTEM && !BR2_PACKAGE_QEMU_LINUX_USER
  28. help
  29. QEMU is a generic and open source machine emulator and
  30. virtualizer.
  31. When used as a machine emulator, QEMU can run OSes and
  32. programs made for one machine (e.g. an ARM board) on a
  33. different machine (e.g. your own PC). By using dynamic
  34. translation, it achieves very good performance.
  35. When used as a virtualizer, QEMU achieves near native
  36. performances by executing the guest code directly on the
  37. host CPU. QEMU supports virtualization when executing under
  38. the Xen hypervisor or using the KVM kernel module in
  39. Linux. When using KVM, QEMU can virtualize x86, server and
  40. embedded PowerPC, and S390 guests.
  41. http://qemu.org/
  42. if BR2_PACKAGE_QEMU
  43. comment "Emulators selection"
  44. config BR2_PACKAGE_QEMU_SYSTEM
  45. bool "Enable systems emulation"
  46. depends on !BR2_STATIC_LIBS # dtc
  47. select BR2_PACKAGE_PIXMAN
  48. help
  49. Say 'y' to build system emulators/virtualisers.
  50. if BR2_PACKAGE_QEMU_SYSTEM
  51. config BR2_PACKAGE_QEMU_SLIRP
  52. bool "Enable user mode networking (SLIRP)"
  53. select BR2_PACKAGE_SLIRP
  54. help
  55. Enable user mode network stack, which is the default
  56. networking backend. It requires no administrator privileges
  57. and generally is the easiest to use but has some
  58. limitations:
  59. - there is a lot of overhead so the performance is poor;
  60. - in general ICMP does not work (can't ping from/to a guest)
  61. - on Linux hosts, ping does work from within the guest, but it
  62. needs initial setup by root (once per host)
  63. - the guest is not directly accessible from the host or the
  64. external network
  65. User Networking is implemented using "slirp", which provides a
  66. full TCP/IP stack within QEMU and uses that stack to implement
  67. a virtual NAT'd network.
  68. Notice that this option does not disable other networking
  69. modes.
  70. config BR2_PACKAGE_QEMU_SDL
  71. bool "Enable SDL frontend"
  72. select BR2_PACKAGE_SDL2
  73. help
  74. Say 'y' to enable the SDL frontend, that is, a graphical
  75. window presenting the VM's display.
  76. config BR2_PACKAGE_QEMU_FDT
  77. bool "Enable FDT"
  78. select BR2_PACKAGE_DTC
  79. help
  80. Say 'y' here to have QEMU capable of constructing Device
  81. Trees, and passing them to the VMs.
  82. endif # BR2_PACKAGE_QEMU_SYSTEM
  83. comment "systems emulation needs a toolchain w/ dynamic library"
  84. depends on BR2_STATIC_LIBS
  85. config BR2_PACKAGE_QEMU_LINUX_USER
  86. bool "Enable Linux user-land emulation"
  87. # Incompatible "struct sigevent" definition on musl
  88. depends on !BR2_TOOLCHAIN_USES_MUSL
  89. help
  90. Say 'y' to build Linux user-land emulators.
  91. # Note: bsd-user can not be build on Linux
  92. comment "Linux user-land emulation needs a glibc or uClibc toolchain"
  93. depends on BR2_TOOLCHAIN_USES_MUSL
  94. config BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  95. bool "Select individual emulator targets"
  96. depends on BR2_PACKAGE_QEMU_SYSTEM || BR2_PACKAGE_QEMU_LINUX_USER
  97. help
  98. By default, all targets (system and/or user, subject to the
  99. corresponding options, above) are built. If you only need a
  100. subset of the emulated targets, say 'y' here and enable at
  101. least one target, below.
  102. if BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  103. config BR2_PACKAGE_QEMU_TARGET_AARCH64
  104. bool "aarch64"
  105. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  106. help
  107. ARM 64-bit architecture.
  108. config BR2_PACKAGE_QEMU_TARGET_AARCH64_BE
  109. bool "aarch64_be (linux-user, only)"
  110. depends on BR2_PACKAGE_QEMU_LINUX_USER
  111. help
  112. ARM 64-bit architecture, big-endian.
  113. config BR2_PACKAGE_QEMU_TARGET_ALPHA
  114. bool "alpha"
  115. help
  116. DEC Alpha 64-bit RISC architecture.
  117. config BR2_PACKAGE_QEMU_TARGET_ARM
  118. bool "arm"
  119. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  120. help
  121. ARM EABI architecture, little-endian.
  122. config BR2_PACKAGE_QEMU_TARGET_ARMEB
  123. bool "armeb (linux-user, only)"
  124. depends on BR2_PACKAGE_QEMU_LINUX_USER
  125. help
  126. ARM EABI architecture, big-endian.
  127. config BR2_PACKAGE_QEMU_TARGET_AVR
  128. bool "avr (system, only)"
  129. depends on BR2_PACKAGE_QEMU_SYSTEM
  130. help
  131. AVR 8-bit microcontroller architecture.
  132. config BR2_PACKAGE_QEMU_TARGET_CRIS
  133. bool "cris"
  134. help
  135. ETRAX CRIS microcontroller architecture.
  136. config BR2_PACKAGE_QEMU_TARGET_HEXAGON
  137. bool "hexagon (linux-user, only)"
  138. depends on BR2_PACKAGE_QEMU_LINUX_USER
  139. help
  140. Qualcomm's Hexagon VLSI DSP architecture.
  141. config BR2_PACKAGE_QEMU_TARGET_HPPA
  142. bool "hppa"
  143. help
  144. HP PA-RISC architecture.
  145. config BR2_PACKAGE_QEMU_TARGET_I386
  146. bool "i386"
  147. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  148. help
  149. Intel i386 32-bit architecture.
  150. config BR2_PACKAGE_QEMU_TARGET_LOONGARCH64
  151. bool "loongarch64"
  152. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  153. help
  154. Loongson 64-bit RISC architecture.
  155. config BR2_PACKAGE_QEMU_TARGET_M68K
  156. bool "m68k"
  157. help
  158. Motorola 68000 architecture.
  159. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZE
  160. bool "microblaze"
  161. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  162. help
  163. Xilinix MicroBlaze soft processor.
  164. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL
  165. bool "microblazeel"
  166. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  167. help
  168. Xilinix MicroBlaze EL soft processor.
  169. config BR2_PACKAGE_QEMU_TARGET_MIPS
  170. bool "mips"
  171. help
  172. MIPS 32-bit architecture.
  173. config BR2_PACKAGE_QEMU_TARGET_MIPSEL
  174. bool "mipsel"
  175. help
  176. MIPS 32-bit architecture, little-endian.
  177. config BR2_PACKAGE_QEMU_TARGET_MIPS64
  178. bool "mips64"
  179. help
  180. MIPS 64-bit architecture.
  181. config BR2_PACKAGE_QEMU_TARGET_MIPS64EL
  182. bool "mips64el"
  183. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  184. help
  185. MIPS 64-bit architecture, little-endian.
  186. config BR2_PACKAGE_QEMU_TARGET_MIPSN32
  187. bool "mipsn32 (linux-user, only)"
  188. depends on BR2_PACKAGE_QEMU_LINUX_USER
  189. help
  190. MIPS N32 architecture.
  191. config BR2_PACKAGE_QEMU_TARGET_MIPSN32EL
  192. bool "mipsn32el (linux-user, only)"
  193. depends on BR2_PACKAGE_QEMU_LINUX_USER
  194. help
  195. MIPS N32 architecture, little-endian.
  196. config BR2_PACKAGE_QEMU_TARGET_NIOS2
  197. bool "nios2"
  198. help
  199. Nios II architecture.
  200. config BR2_PACKAGE_QEMU_TARGET_OR1K
  201. bool "or1k"
  202. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  203. help
  204. OpenRISC 1000 architecture.
  205. config BR2_PACKAGE_QEMU_TARGET_PPC
  206. bool "ppc"
  207. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  208. help
  209. PoewerPC 32-bit architecture.
  210. config BR2_PACKAGE_QEMU_TARGET_PPC64
  211. bool "ppc64"
  212. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  213. help
  214. PoewerPC 64-bit architecture.
  215. config BR2_PACKAGE_QEMU_TARGET_PPC64LE
  216. bool "ppc64le (linux-user, only)"
  217. depends on BR2_PACKAGE_QEMU_LINUX_USER
  218. help
  219. PoewerPC 64-bit architecture, little-endian.
  220. config BR2_PACKAGE_QEMU_TARGET_RISCV32
  221. bool "riscv32"
  222. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  223. help
  224. RISC-V 33-bit architecture.
  225. config BR2_PACKAGE_QEMU_TARGET_RISCV64
  226. bool "riscv64"
  227. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  228. help
  229. RISC-V 64-bit architecture.
  230. config BR2_PACKAGE_QEMU_TARGET_RX
  231. bool "rx (system-only)"
  232. depends on BR2_PACKAGE_QEMU_SYSTEM
  233. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  234. help
  235. Renesas Electronics RX 32-bit architecture.
  236. config BR2_PACKAGE_QEMU_TARGET_S390X
  237. bool "s390x"
  238. help
  239. IBM z/Architecture 64-bit mainframe (s390x)
  240. config BR2_PACKAGE_QEMU_TARGET_SH4
  241. bool "sh4"
  242. help
  243. Super-H 32-bit RISC architecture.
  244. config BR2_PACKAGE_QEMU_TARGET_SH4EB
  245. bool "sh4eb"
  246. help
  247. Super-H EB 32-bit RISC architecture.
  248. config BR2_PACKAGE_QEMU_TARGET_SPARC
  249. bool "sparc"
  250. help
  251. SPARC 32-bit RISC architecture.
  252. config BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS
  253. bool "sparc32plus (linux-user, only)"
  254. depends on BR2_PACKAGE_QEMU_LINUX_USER
  255. help
  256. SPARC 32-bit RISC architecture (Sun's v8plus).
  257. config BR2_PACKAGE_QEMU_TARGET_SPARC64
  258. bool "sparc64"
  259. help
  260. SPARC 64-bit RISC architecture.
  261. config BR2_PACKAGE_QEMU_TARGET_TRICORE
  262. bool "tricore (system, only)"
  263. depends on BR2_PACKAGE_QEMU_SYSTEM
  264. help
  265. Infineon TriCore 32-bit RISC architecture.
  266. config BR2_PACKAGE_QEMU_TARGET_X86_64
  267. bool "x86_64"
  268. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  269. help
  270. Intel x86 64-bit architecture.
  271. config BR2_PACKAGE_QEMU_TARGET_XTENSA
  272. bool "xtensa"
  273. help
  274. Xtensa 32-bit RISC architecture.
  275. config BR2_PACKAGE_QEMU_TARGET_XTENSAEB
  276. bool "xtensaeb"
  277. help
  278. Xtensa 32-bit RISC architecture, big-endian.
  279. endif # BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  280. comment "Tools selection"
  281. config BR2_PACKAGE_QEMU_TOOLS
  282. bool "Enable tools"
  283. help
  284. Say 'y' here to include tools packaged with QEMU
  285. (e.g. qemu-img).
  286. endif # BR2_PACKAGE_QEMU