Config.in 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. menu "Target options"
  2. config BR2_ARCH_IS_64
  3. bool
  4. config BR2_KERNEL_64_USERLAND_32
  5. bool
  6. config BR2_SOFT_FLOAT
  7. bool
  8. config BR2_USE_MMU
  9. bool
  10. choice
  11. prompt "Target Architecture"
  12. default BR2_i386
  13. help
  14. Select the target architecture family to build for.
  15. config BR2_arcle
  16. bool "ARC (little endian)"
  17. select BR2_USE_MMU
  18. help
  19. Synopsys' DesignWare ARC Processor Cores are a family of
  20. 32-bit CPUs that can be used from deeply embedded to high
  21. performance host applications. Little endian.
  22. config BR2_arceb
  23. bool "ARC (big endian)"
  24. select BR2_USE_MMU
  25. help
  26. Synopsys' DesignWare ARC Processor Cores are a family of
  27. 32-bit CPUs that can be used from deeply embedded to high
  28. performance host applications. Big endian.
  29. config BR2_arm
  30. bool "ARM (little endian)"
  31. # MMU support is set by the subarchitecture file, arch/Config.in.arm
  32. help
  33. ARM is a 32-bit reduced instruction set computer (RISC)
  34. instruction set architecture (ISA) developed by ARM Holdings.
  35. Little endian.
  36. http://www.arm.com/
  37. http://en.wikipedia.org/wiki/ARM
  38. config BR2_armeb
  39. bool "ARM (big endian)"
  40. select BR2_USE_MMU
  41. help
  42. ARM is a 32-bit reduced instruction set computer (RISC)
  43. instruction set architecture (ISA) developed by ARM Holdings.
  44. Big endian.
  45. http://www.arm.com/
  46. http://en.wikipedia.org/wiki/ARM
  47. config BR2_aarch64
  48. bool "AArch64 (little endian)"
  49. select BR2_ARCH_IS_64
  50. help
  51. Aarch64 is a 64-bit architecture developed by ARM Holdings.
  52. http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
  53. http://en.wikipedia.org/wiki/ARM
  54. config BR2_aarch64_be
  55. bool "AArch64 (big endian)"
  56. select BR2_ARCH_IS_64
  57. help
  58. Aarch64 is a 64-bit architecture developed by ARM Holdings.
  59. http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
  60. http://en.wikipedia.org/wiki/ARM
  61. config BR2_i386
  62. bool "i386"
  63. select BR2_USE_MMU
  64. help
  65. Intel i386 architecture compatible microprocessor
  66. http://en.wikipedia.org/wiki/I386
  67. config BR2_m68k
  68. bool "m68k"
  69. # MMU support is set by the subarchitecture file, arch/Config.in.m68k
  70. help
  71. Motorola 68000 family microprocessor
  72. http://en.wikipedia.org/wiki/M68k
  73. config BR2_microblazeel
  74. bool "Microblaze AXI (little endian)"
  75. select BR2_USE_MMU
  76. help
  77. Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
  78. bus based architecture (little endian)
  79. http://www.xilinx.com
  80. http://en.wikipedia.org/wiki/Microblaze
  81. config BR2_microblazebe
  82. bool "Microblaze non-AXI (big endian)"
  83. select BR2_USE_MMU
  84. help
  85. Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
  86. bus based architecture (non-AXI, big endian)
  87. http://www.xilinx.com
  88. http://en.wikipedia.org/wiki/Microblaze
  89. config BR2_mips
  90. bool "MIPS (big endian)"
  91. select BR2_USE_MMU
  92. help
  93. MIPS is a RISC microprocessor from MIPS Technologies. Big
  94. endian.
  95. http://www.mips.com/
  96. http://en.wikipedia.org/wiki/MIPS_Technologies
  97. config BR2_mipsel
  98. bool "MIPS (little endian)"
  99. select BR2_USE_MMU
  100. help
  101. MIPS is a RISC microprocessor from MIPS Technologies. Little
  102. endian.
  103. http://www.mips.com/
  104. http://en.wikipedia.org/wiki/MIPS_Technologies
  105. config BR2_mips64
  106. bool "MIPS64 (big endian)"
  107. select BR2_ARCH_IS_64
  108. select BR2_USE_MMU
  109. help
  110. MIPS is a RISC microprocessor from MIPS Technologies. Big
  111. endian.
  112. http://www.mips.com/
  113. http://en.wikipedia.org/wiki/MIPS_Technologies
  114. config BR2_mips64el
  115. bool "MIPS64 (little endian)"
  116. select BR2_ARCH_IS_64
  117. select BR2_USE_MMU
  118. help
  119. MIPS is a RISC microprocessor from MIPS Technologies. Little
  120. endian.
  121. http://www.mips.com/
  122. http://en.wikipedia.org/wiki/MIPS_Technologies
  123. config BR2_nios2
  124. bool "Nios II"
  125. select BR2_USE_MMU
  126. help
  127. Nios II is a soft core processor from Altera Corporation.
  128. http://www.altera.com/
  129. http://en.wikipedia.org/wiki/Nios_II
  130. config BR2_or1k
  131. bool "OpenRISC"
  132. select BR2_USE_MMU
  133. help
  134. OpenRISC is a free and open processor for embedded system.
  135. http://openrisc.io
  136. config BR2_powerpc
  137. bool "PowerPC"
  138. select BR2_USE_MMU
  139. help
  140. PowerPC is a RISC architecture created by Apple-IBM-Motorola
  141. alliance. Big endian.
  142. http://www.power.org/
  143. http://en.wikipedia.org/wiki/Powerpc
  144. config BR2_powerpc64
  145. bool "PowerPC64 (big endian)"
  146. select BR2_ARCH_IS_64
  147. select BR2_USE_MMU
  148. help
  149. PowerPC is a RISC architecture created by Apple-IBM-Motorola
  150. alliance. Big endian.
  151. http://www.power.org/
  152. http://en.wikipedia.org/wiki/Powerpc
  153. config BR2_powerpc64le
  154. bool "PowerPC64 (little endian)"
  155. select BR2_ARCH_IS_64
  156. select BR2_USE_MMU
  157. help
  158. PowerPC is a RISC architecture created by Apple-IBM-Motorola
  159. alliance. Little endian.
  160. http://www.power.org/
  161. http://en.wikipedia.org/wiki/Powerpc
  162. config BR2_riscv
  163. bool "RISCV"
  164. select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
  165. help
  166. RISC-V is an open, free Instruction Set Architecture created
  167. by the UC Berkeley Architecture Research group and supported
  168. and promoted by RISC-V Foundation.
  169. https://riscv.org/
  170. https://en.wikipedia.org/wiki/RISC-V
  171. config BR2_s390x
  172. bool "s390x"
  173. select BR2_ARCH_IS_64
  174. select BR2_USE_MMU
  175. help
  176. s390x is a big-endian architecture made by IBM.
  177. http://www.ibm.com/
  178. http://en.wikipedia.org/wiki/IBM_System/390
  179. config BR2_sh
  180. bool "SuperH"
  181. select BR2_USE_MMU
  182. help
  183. SuperH (or SH) is a 32-bit reduced instruction set computer
  184. (RISC) instruction set architecture (ISA) developed by
  185. Hitachi.
  186. http://www.hitachi.com/
  187. http://en.wikipedia.org/wiki/SuperH
  188. config BR2_sparc
  189. bool "SPARC"
  190. select BR2_USE_MMU
  191. # uClibc-ng broken on sparc due to recent gcc changes
  192. # that need to be reverted since gcc 8.4, 9.3 and 10.1.
  193. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784
  194. # gcc <= 10.x has been removed from Buildroot.
  195. select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
  196. help
  197. SPARC (from Scalable Processor Architecture) is a RISC
  198. instruction set architecture (ISA) developed by Sun
  199. Microsystems.
  200. http://www.oracle.com/sun
  201. http://en.wikipedia.org/wiki/Sparc
  202. config BR2_sparc64
  203. bool "SPARC64"
  204. select BR2_ARCH_IS_64
  205. select BR2_USE_MMU
  206. help
  207. SPARC (from Scalable Processor Architecture) is a RISC
  208. instruction set architecture (ISA) developed by Sun
  209. Microsystems.
  210. http://www.oracle.com/sun
  211. http://en.wikipedia.org/wiki/Sparc
  212. config BR2_x86_64
  213. bool "x86_64"
  214. select BR2_ARCH_IS_64
  215. select BR2_USE_MMU
  216. help
  217. x86-64 is an extension of the x86 instruction set (Intel i386
  218. architecture compatible microprocessor).
  219. http://en.wikipedia.org/wiki/X86_64
  220. config BR2_xtensa
  221. bool "Xtensa"
  222. # MMU support is set by the subarchitecture file, arch/Config.in.xtensa
  223. help
  224. Xtensa is a Tensilica processor IP architecture.
  225. http://en.wikipedia.org/wiki/Xtensa
  226. http://www.tensilica.com/
  227. endchoice
  228. # For some architectures or specific cores, our internal toolchain
  229. # backend is not suitable (like, missing support in upstream gcc, or
  230. # no ChipCo fork exists...)
  231. config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
  232. bool
  233. config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
  234. bool
  235. default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
  236. # The following symbols are selected by the individual
  237. # Config.in.$ARCH files
  238. config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
  239. bool
  240. config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
  241. bool
  242. select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
  243. config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  244. bool
  245. select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
  246. config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
  247. bool
  248. select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
  249. config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
  250. bool
  251. select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
  252. config BR2_ARCH_NEEDS_GCC_AT_LEAST_8
  253. bool
  254. select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
  255. config BR2_ARCH_NEEDS_GCC_AT_LEAST_9
  256. bool
  257. select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
  258. config BR2_ARCH_NEEDS_GCC_AT_LEAST_10
  259. bool
  260. select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
  261. config BR2_ARCH_NEEDS_GCC_AT_LEAST_11
  262. bool
  263. select BR2_ARCH_NEEDS_GCC_AT_LEAST_10
  264. config BR2_ARCH_NEEDS_GCC_AT_LEAST_12
  265. bool
  266. select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
  267. config BR2_ARCH_NEEDS_GCC_AT_LEAST_13
  268. bool
  269. select BR2_ARCH_NEEDS_GCC_AT_LEAST_12
  270. # The following string values are defined by the individual
  271. # Config.in.$ARCH files
  272. config BR2_ARCH
  273. string
  274. config BR2_NORMALIZED_ARCH
  275. string
  276. config BR2_ENDIAN
  277. string
  278. config BR2_GCC_TARGET_ARCH
  279. string
  280. config BR2_GCC_TARGET_ABI
  281. string
  282. config BR2_GCC_TARGET_NAN
  283. string
  284. config BR2_GCC_TARGET_FP32_MODE
  285. string
  286. config BR2_GCC_TARGET_CPU
  287. string
  288. # The value of this option will be passed as --with-fpu=<value> when
  289. # building gcc (internal backend) or -mfpu=<value> in the toolchain
  290. # wrapper (external toolchain)
  291. config BR2_GCC_TARGET_FPU
  292. string
  293. # The value of this option will be passed as --with-float=<value> when
  294. # building gcc (internal backend) or -mfloat-abi=<value> in the toolchain
  295. # wrapper (external toolchain)
  296. config BR2_GCC_TARGET_FLOAT_ABI
  297. string
  298. # The value of this option will be passed as --with-mode=<value> when
  299. # building gcc (internal backend) or -m<value> in the toolchain
  300. # wrapper (external toolchain)
  301. config BR2_GCC_TARGET_MODE
  302. string
  303. # Must be selected by binary formats that support shared libraries.
  304. config BR2_BINFMT_SUPPORTS_SHARED
  305. bool
  306. # Must match the name of the architecture from readelf point of view,
  307. # i.e the "Machine:" field of readelf output. See get_machine_name()
  308. # in binutils/readelf.c for the list of possible values.
  309. config BR2_READELF_ARCH_NAME
  310. string
  311. if BR2_arcle || BR2_arceb
  312. source "arch/Config.in.arc"
  313. endif
  314. if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
  315. source "arch/Config.in.arm"
  316. endif
  317. if BR2_m68k
  318. source "arch/Config.in.m68k"
  319. endif
  320. if BR2_microblazeel || BR2_microblazebe
  321. source "arch/Config.in.microblaze"
  322. endif
  323. if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
  324. source "arch/Config.in.mips"
  325. endif
  326. if BR2_nios2
  327. source "arch/Config.in.nios2"
  328. endif
  329. if BR2_or1k
  330. source "arch/Config.in.or1k"
  331. endif
  332. if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
  333. source "arch/Config.in.powerpc"
  334. endif
  335. if BR2_riscv
  336. source "arch/Config.in.riscv"
  337. endif
  338. if BR2_s390x
  339. source "arch/Config.in.s390x"
  340. endif
  341. if BR2_sh
  342. source "arch/Config.in.sh"
  343. endif
  344. if BR2_sparc || BR2_sparc64
  345. source "arch/Config.in.sparc"
  346. endif
  347. if BR2_i386 || BR2_x86_64
  348. source "arch/Config.in.x86"
  349. endif
  350. if BR2_xtensa
  351. source "arch/Config.in.xtensa"
  352. endif
  353. # Set up target binary format
  354. choice
  355. prompt "Target Binary Format"
  356. default BR2_BINFMT_ELF if BR2_USE_MMU
  357. default BR2_BINFMT_FLAT
  358. config BR2_BINFMT_ELF
  359. bool "ELF"
  360. depends on BR2_USE_MMU
  361. select BR2_BINFMT_SUPPORTS_SHARED
  362. help
  363. ELF (Executable and Linkable Format) is a format for libraries
  364. and executables used across different architectures and
  365. operating systems.
  366. config BR2_BINFMT_FLAT
  367. bool "FLAT"
  368. depends on !BR2_USE_MMU
  369. help
  370. FLAT binary is a relatively simple and lightweight executable
  371. format based on the original a.out format. It is widely used
  372. in environment where no MMU is available.
  373. endchoice
  374. # Set up flat binary type
  375. choice
  376. prompt "FLAT Binary type"
  377. default BR2_BINFMT_FLAT_ONE
  378. depends on BR2_BINFMT_FLAT
  379. config BR2_BINFMT_FLAT_ONE
  380. bool "One memory region"
  381. help
  382. All segments are linked into one memory region.
  383. config BR2_BINFMT_FLAT_SHARED
  384. bool "Shared binary"
  385. depends on BR2_m68k
  386. # Even though this really generates shared binaries, there is no libdl
  387. # and dlopen() cannot be used. So packages that require shared
  388. # libraries cannot be built. Therefore, we don't select
  389. # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
  390. # Although this adds -static to the compilation, that's not a problem
  391. # because the -mid-shared-library option overrides it.
  392. help
  393. Allow to load and link indiviual FLAT binaries at run time.
  394. endchoice
  395. endmenu # Target options