Config.in 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  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_PIXMAN
  27. select BR2_PACKAGE_ZLIB
  28. select BR2_PACKAGE_QEMU_SYSTEM if !BR2_PACKAGE_QEMU_LINUX_USER
  29. help
  30. QEMU is a generic and open source machine emulator and
  31. virtualizer.
  32. When used as a machine emulator, QEMU can run OSes and
  33. programs made for one machine (e.g. an ARM board) on a
  34. different machine (e.g. your own PC). By using dynamic
  35. translation, it achieves very good performance.
  36. When used as a virtualizer, QEMU achieves near native
  37. performances by executing the guest code directly on the
  38. host CPU. QEMU supports virtualization when executing under
  39. the Xen hypervisor or using the KVM kernel module in
  40. Linux. When using KVM, QEMU can virtualize x86, server and
  41. embedded PowerPC, and S390 guests.
  42. http://qemu.org/
  43. if BR2_PACKAGE_QEMU
  44. comment "Emulators selection"
  45. config BR2_PACKAGE_QEMU_SYSTEM
  46. bool "Enable systems emulation"
  47. depends on !BR2_STATIC_LIBS # dtc
  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. help
  97. By default, all targets (system and/or user, subject to the
  98. corresponding options, above) are built. If you only need a
  99. subset of the emulated targets, say 'y' here and enable at
  100. least one target, below.
  101. if BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  102. config BR2_PACKAGE_QEMU_TARGET_AARCH64
  103. bool "aarch64"
  104. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  105. help
  106. ARM 64-bit architecture.
  107. config BR2_PACKAGE_QEMU_TARGET_AARCH64_BE
  108. bool "aarch64_be (linux-user, only)"
  109. depends on BR2_PACKAGE_QEMU_LINUX_USER
  110. help
  111. ARM 64-bit architecture, big-endian.
  112. config BR2_PACKAGE_QEMU_TARGET_ALPHA
  113. bool "alpha"
  114. help
  115. DEC Alpha 64-bit RISC architecture.
  116. config BR2_PACKAGE_QEMU_TARGET_ARM
  117. bool "arm"
  118. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  119. help
  120. ARM EABI architecture, little-endian.
  121. config BR2_PACKAGE_QEMU_TARGET_ARMEB
  122. bool "armeb (linux-user, only)"
  123. depends on BR2_PACKAGE_QEMU_LINUX_USER
  124. help
  125. ARM EABI architecture, big-endian.
  126. config BR2_PACKAGE_QEMU_TARGET_AVR
  127. bool "avr (system, only)"
  128. depends on BR2_PACKAGE_QEMU_SYSTEM
  129. help
  130. AVR 8-bit microcontroller architecture.
  131. config BR2_PACKAGE_QEMU_TARGET_CRIS
  132. bool "cris"
  133. help
  134. ETRAX CRIS microcontroller architecture.
  135. config BR2_PACKAGE_QEMU_TARGET_HEXAGON
  136. bool "hexagon (linux-user, only)"
  137. depends on BR2_PACKAGE_QEMU_LINUX_USER
  138. help
  139. Qualcomm's Hexagon VLSI DSP architecture.
  140. config BR2_PACKAGE_QEMU_TARGET_HPPA
  141. bool "hppa"
  142. help
  143. HP PA-RISC architecture.
  144. config BR2_PACKAGE_QEMU_TARGET_I386
  145. bool "i386"
  146. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  147. help
  148. Intel i386 32-bit architecture.
  149. config BR2_PACKAGE_QEMU_TARGET_LOONGARCH64
  150. bool "loongarch64"
  151. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  152. help
  153. Loongson 64-bit RISC architecture.
  154. config BR2_PACKAGE_QEMU_TARGET_M68K
  155. bool "m68k"
  156. help
  157. Motorola 68000 architecture.
  158. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZE
  159. bool "microblaze"
  160. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  161. help
  162. Xilinix MicroBlaze soft processor.
  163. config BR2_PACKAGE_QEMU_TARGET_MICROBLAZEEL
  164. bool "microblazeel"
  165. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  166. help
  167. Xilinix MicroBlaze EL soft processor.
  168. config BR2_PACKAGE_QEMU_TARGET_MIPS
  169. bool "mips"
  170. help
  171. MIPS 32-bit architecture.
  172. config BR2_PACKAGE_QEMU_TARGET_MIPSEL
  173. bool "mipsel"
  174. help
  175. MIPS 32-bit architecture, little-endian.
  176. config BR2_PACKAGE_QEMU_TARGET_MIPS64
  177. bool "mips64"
  178. help
  179. MIPS 64-bit architecture.
  180. config BR2_PACKAGE_QEMU_TARGET_MIPS64EL
  181. bool "mips64el"
  182. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  183. help
  184. MIPS 64-bit architecture, little-endian.
  185. config BR2_PACKAGE_QEMU_TARGET_MIPSN32
  186. bool "mipsn32 (linux-user, only)"
  187. depends on BR2_PACKAGE_QEMU_LINUX_USER
  188. help
  189. MIPS N32 architecture.
  190. config BR2_PACKAGE_QEMU_TARGET_MIPSN32EL
  191. bool "mipsn32el (linux-user, only)"
  192. depends on BR2_PACKAGE_QEMU_LINUX_USER
  193. help
  194. MIPS N32 architecture, little-endian.
  195. config BR2_PACKAGE_QEMU_TARGET_NIOS2
  196. bool "nios2"
  197. help
  198. Nios II architecture.
  199. config BR2_PACKAGE_QEMU_TARGET_OR1K
  200. bool "or1k"
  201. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  202. help
  203. OpenRISC 1000 architecture.
  204. config BR2_PACKAGE_QEMU_TARGET_PPC
  205. bool "ppc"
  206. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  207. help
  208. PoewerPC 32-bit architecture.
  209. config BR2_PACKAGE_QEMU_TARGET_PPC64
  210. bool "ppc64"
  211. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  212. help
  213. PoewerPC 64-bit architecture.
  214. config BR2_PACKAGE_QEMU_TARGET_PPC64LE
  215. bool "ppc64le (linux-user, only)"
  216. depends on BR2_PACKAGE_QEMU_LINUX_USER
  217. help
  218. PoewerPC 64-bit architecture, little-endian.
  219. config BR2_PACKAGE_QEMU_TARGET_RISCV32
  220. bool "riscv32"
  221. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  222. help
  223. RISC-V 33-bit architecture.
  224. config BR2_PACKAGE_QEMU_TARGET_RISCV64
  225. bool "riscv64"
  226. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  227. help
  228. RISC-V 64-bit architecture.
  229. config BR2_PACKAGE_QEMU_TARGET_RX
  230. bool "rx (system-only)"
  231. depends on BR2_PACKAGE_QEMU_SYSTEM
  232. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  233. help
  234. Renesas Electronics RX 32-bit architecture.
  235. config BR2_PACKAGE_QEMU_TARGET_S390X
  236. bool "s390x"
  237. help
  238. IBM z/Architecture 64-bit mainframe (s390x)
  239. config BR2_PACKAGE_QEMU_TARGET_SH4
  240. bool "sh4"
  241. help
  242. Super-H 32-bit RISC architecture.
  243. config BR2_PACKAGE_QEMU_TARGET_SH4EB
  244. bool "sh4eb"
  245. help
  246. Super-H EB 32-bit RISC architecture.
  247. config BR2_PACKAGE_QEMU_TARGET_SPARC
  248. bool "sparc"
  249. help
  250. SPARC 32-bit RISC architecture.
  251. config BR2_PACKAGE_QEMU_TARGET_SPARC32PLUS
  252. bool "sparc32plus (linux-user, only)"
  253. depends on BR2_PACKAGE_QEMU_LINUX_USER
  254. help
  255. SPARC 32-bit RISC architecture (Sun's v8plus).
  256. config BR2_PACKAGE_QEMU_TARGET_SPARC64
  257. bool "sparc64"
  258. help
  259. SPARC 64-bit RISC architecture.
  260. config BR2_PACKAGE_QEMU_TARGET_TRICORE
  261. bool "tricore (system, only)"
  262. depends on BR2_PACKAGE_QEMU_SYSTEM
  263. help
  264. Infineon TriCore 32-bit RISC architecture.
  265. config BR2_PACKAGE_QEMU_TARGET_X86_64
  266. bool "x86_64"
  267. select BR2_PACKAGE_QEMU_FDT if BR2_PACKAGE_QEMU_SYSTEM
  268. help
  269. Intel x86 64-bit architecture.
  270. config BR2_PACKAGE_QEMU_TARGET_XTENSA
  271. bool "xtensa"
  272. help
  273. Xtensa 32-bit RISC architecture.
  274. config BR2_PACKAGE_QEMU_TARGET_XTENSAEB
  275. bool "xtensaeb"
  276. help
  277. Xtensa 32-bit RISC architecture, big-endian.
  278. endif # BR2_PACKAGE_QEMU_CHOOSE_TARGETS
  279. comment "Tools selection"
  280. config BR2_PACKAGE_QEMU_TOOLS
  281. bool "Enable tools"
  282. help
  283. Say 'y' here to include tools packaged with QEMU
  284. (e.g. qemu-img).
  285. endif # BR2_PACKAGE_QEMU