Config.in.arm 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606
  1. # arm cpu features
  2. config BR2_ARM_CPU_HAS_NEON
  3. bool
  4. # for some cores, NEON support is optional
  5. config BR2_ARM_CPU_MAYBE_HAS_NEON
  6. bool
  7. # for some cores, VFPv2 is optional
  8. config BR2_ARM_CPU_MAYBE_HAS_VFPV2
  9. bool
  10. config BR2_ARM_CPU_HAS_VFPV2
  11. bool
  12. # for some cores, VFPv3 is optional
  13. config BR2_ARM_CPU_MAYBE_HAS_VFPV3
  14. bool
  15. select BR2_ARM_CPU_MAYBE_HAS_VFPV2
  16. config BR2_ARM_CPU_HAS_VFPV3
  17. bool
  18. select BR2_ARM_CPU_HAS_VFPV2
  19. # for some cores, VFPv4 is optional
  20. config BR2_ARM_CPU_MAYBE_HAS_VFPV4
  21. bool
  22. select BR2_ARM_CPU_MAYBE_HAS_VFPV3
  23. config BR2_ARM_CPU_HAS_VFPV4
  24. bool
  25. select BR2_ARM_CPU_HAS_VFPV3
  26. config BR2_ARM_CPU_HAS_FP_ARMV8
  27. bool
  28. select BR2_ARM_CPU_HAS_VFPV4
  29. config BR2_ARM_CPU_HAS_ARM
  30. bool
  31. config BR2_ARM_CPU_HAS_THUMB
  32. bool
  33. config BR2_ARM_CPU_HAS_THUMB2
  34. bool
  35. config BR2_ARM_CPU_ARMV4
  36. bool
  37. config BR2_ARM_CPU_ARMV5
  38. bool
  39. config BR2_ARM_CPU_ARMV6
  40. bool
  41. config BR2_ARM_CPU_ARMV7A
  42. bool
  43. config BR2_ARM_CPU_ARMV7M
  44. bool
  45. config BR2_ARM_CPU_ARMV8
  46. bool
  47. choice
  48. prompt "Target Architecture Variant"
  49. default BR2_arm926t
  50. help
  51. Specific CPU variant to use
  52. config BR2_arm920t
  53. bool "arm920t"
  54. select BR2_ARM_CPU_HAS_ARM
  55. select BR2_ARM_CPU_HAS_THUMB
  56. select BR2_ARM_CPU_ARMV4
  57. select BR2_ARCH_HAS_MMU_OPTIONAL
  58. depends on !BR2_ARCH_IS_64
  59. config BR2_arm922t
  60. bool "arm922t"
  61. select BR2_ARM_CPU_HAS_ARM
  62. select BR2_ARM_CPU_HAS_THUMB
  63. select BR2_ARM_CPU_ARMV4
  64. select BR2_ARCH_HAS_MMU_OPTIONAL
  65. depends on !BR2_ARCH_IS_64
  66. config BR2_arm926t
  67. bool "arm926t"
  68. select BR2_ARM_CPU_HAS_ARM
  69. select BR2_ARM_CPU_MAYBE_HAS_VFPV2
  70. select BR2_ARM_CPU_HAS_THUMB
  71. select BR2_ARM_CPU_ARMV5
  72. select BR2_ARCH_HAS_MMU_OPTIONAL
  73. depends on !BR2_ARCH_IS_64
  74. config BR2_arm1136j_s
  75. bool "arm1136j-s"
  76. select BR2_ARM_CPU_HAS_ARM
  77. select BR2_ARM_CPU_HAS_THUMB
  78. select BR2_ARM_CPU_ARMV6
  79. select BR2_ARCH_HAS_MMU_OPTIONAL
  80. depends on !BR2_ARCH_IS_64
  81. config BR2_arm1136jf_s
  82. bool "arm1136jf-s"
  83. select BR2_ARM_CPU_HAS_ARM
  84. select BR2_ARM_CPU_HAS_VFPV2
  85. select BR2_ARM_CPU_HAS_THUMB
  86. select BR2_ARM_CPU_ARMV6
  87. select BR2_ARCH_HAS_MMU_OPTIONAL
  88. depends on !BR2_ARCH_IS_64
  89. config BR2_arm1176jz_s
  90. bool "arm1176jz-s"
  91. select BR2_ARM_CPU_HAS_ARM
  92. select BR2_ARM_CPU_HAS_THUMB
  93. select BR2_ARM_CPU_ARMV6
  94. select BR2_ARCH_HAS_MMU_OPTIONAL
  95. depends on !BR2_ARCH_IS_64
  96. config BR2_arm1176jzf_s
  97. bool "arm1176jzf-s"
  98. select BR2_ARM_CPU_HAS_ARM
  99. select BR2_ARM_CPU_HAS_VFPV2
  100. select BR2_ARM_CPU_HAS_THUMB
  101. select BR2_ARM_CPU_ARMV6
  102. select BR2_ARCH_HAS_MMU_OPTIONAL
  103. depends on !BR2_ARCH_IS_64
  104. config BR2_arm11mpcore
  105. bool "mpcore"
  106. select BR2_ARM_CPU_HAS_ARM
  107. select BR2_ARM_CPU_MAYBE_HAS_VFPV2
  108. select BR2_ARM_CPU_HAS_THUMB
  109. select BR2_ARM_CPU_ARMV6
  110. select BR2_ARCH_HAS_MMU_OPTIONAL
  111. depends on !BR2_ARCH_IS_64
  112. config BR2_cortex_a5
  113. bool "cortex-A5"
  114. select BR2_ARM_CPU_HAS_ARM
  115. select BR2_ARM_CPU_MAYBE_HAS_NEON
  116. select BR2_ARM_CPU_MAYBE_HAS_VFPV4
  117. select BR2_ARM_CPU_HAS_THUMB2
  118. select BR2_ARM_CPU_ARMV7A
  119. select BR2_ARCH_HAS_MMU_OPTIONAL
  120. depends on !BR2_ARCH_IS_64
  121. config BR2_cortex_a7
  122. bool "cortex-A7"
  123. select BR2_ARM_CPU_HAS_ARM
  124. select BR2_ARM_CPU_HAS_NEON
  125. select BR2_ARM_CPU_HAS_VFPV4
  126. select BR2_ARM_CPU_HAS_THUMB2
  127. select BR2_ARM_CPU_ARMV7A
  128. select BR2_ARCH_HAS_MMU_OPTIONAL
  129. depends on !BR2_ARCH_IS_64
  130. config BR2_cortex_a8
  131. bool "cortex-A8"
  132. select BR2_ARM_CPU_HAS_ARM
  133. select BR2_ARM_CPU_HAS_NEON
  134. select BR2_ARM_CPU_HAS_VFPV3
  135. select BR2_ARM_CPU_HAS_THUMB2
  136. select BR2_ARM_CPU_ARMV7A
  137. select BR2_ARCH_HAS_MMU_OPTIONAL
  138. depends on !BR2_ARCH_IS_64
  139. config BR2_cortex_a9
  140. bool "cortex-A9"
  141. select BR2_ARM_CPU_HAS_ARM
  142. select BR2_ARM_CPU_MAYBE_HAS_NEON
  143. select BR2_ARM_CPU_MAYBE_HAS_VFPV3
  144. select BR2_ARM_CPU_HAS_THUMB2
  145. select BR2_ARM_CPU_ARMV7A
  146. select BR2_ARCH_HAS_MMU_OPTIONAL
  147. depends on !BR2_ARCH_IS_64
  148. config BR2_cortex_a12
  149. bool "cortex-A12"
  150. select BR2_ARM_CPU_HAS_ARM
  151. select BR2_ARM_CPU_HAS_NEON
  152. select BR2_ARM_CPU_HAS_VFPV4
  153. select BR2_ARM_CPU_HAS_THUMB2
  154. select BR2_ARM_CPU_ARMV7A
  155. select BR2_ARCH_HAS_MMU_OPTIONAL
  156. depends on !BR2_ARCH_IS_64
  157. config BR2_cortex_a15
  158. bool "cortex-A15"
  159. select BR2_ARM_CPU_HAS_ARM
  160. select BR2_ARM_CPU_HAS_NEON
  161. select BR2_ARM_CPU_HAS_VFPV4
  162. select BR2_ARM_CPU_HAS_THUMB2
  163. select BR2_ARM_CPU_ARMV7A
  164. select BR2_ARCH_HAS_MMU_OPTIONAL
  165. depends on !BR2_ARCH_IS_64
  166. config BR2_cortex_a15_a7
  167. bool "cortex-A15/A7 big.LITTLE"
  168. select BR2_ARM_CPU_HAS_ARM
  169. select BR2_ARM_CPU_HAS_NEON
  170. select BR2_ARM_CPU_HAS_VFPV4
  171. select BR2_ARM_CPU_HAS_THUMB2
  172. select BR2_ARM_CPU_ARMV7A
  173. select BR2_ARCH_HAS_MMU_OPTIONAL
  174. depends on !BR2_ARCH_IS_64
  175. config BR2_cortex_a17
  176. bool "cortex-A17"
  177. select BR2_ARM_CPU_HAS_ARM
  178. select BR2_ARM_CPU_HAS_NEON
  179. select BR2_ARM_CPU_HAS_VFPV4
  180. select BR2_ARM_CPU_HAS_THUMB2
  181. select BR2_ARM_CPU_ARMV7A
  182. select BR2_ARCH_HAS_MMU_OPTIONAL
  183. depends on !BR2_ARCH_IS_64
  184. config BR2_cortex_a17_a7
  185. bool "cortex-A17/A7 big.LITTLE"
  186. select BR2_ARM_CPU_HAS_ARM
  187. select BR2_ARM_CPU_HAS_NEON
  188. select BR2_ARM_CPU_HAS_VFPV4
  189. select BR2_ARM_CPU_HAS_THUMB2
  190. select BR2_ARM_CPU_ARMV7A
  191. select BR2_ARCH_HAS_MMU_OPTIONAL
  192. depends on !BR2_ARCH_IS_64
  193. config BR2_cortex_a53
  194. bool "cortex-A53"
  195. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  196. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  197. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  198. select BR2_ARM_CPU_HAS_FP_ARMV8
  199. select BR2_ARM_CPU_ARMV8
  200. select BR2_ARCH_HAS_MMU_OPTIONAL
  201. config BR2_cortex_a57
  202. bool "cortex-A57"
  203. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  204. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  205. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  206. select BR2_ARM_CPU_HAS_FP_ARMV8
  207. select BR2_ARM_CPU_ARMV8
  208. select BR2_ARCH_HAS_MMU_OPTIONAL
  209. config BR2_cortex_a57_a53
  210. bool "cortex-A57/A53 big.LITTLE"
  211. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  212. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  213. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  214. select BR2_ARM_CPU_HAS_FP_ARMV8
  215. select BR2_ARM_CPU_ARMV8
  216. select BR2_ARCH_HAS_MMU_OPTIONAL
  217. config BR2_cortex_a72
  218. bool "cortex-A72"
  219. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  220. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  221. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  222. select BR2_ARM_CPU_HAS_FP_ARMV8
  223. select BR2_ARM_CPU_ARMV8
  224. select BR2_ARCH_HAS_MMU_OPTIONAL
  225. config BR2_cortex_a72_a53
  226. bool "cortex-A72/A53 big.LITTLE"
  227. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  228. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  229. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  230. select BR2_ARM_CPU_HAS_FP_ARMV8
  231. select BR2_ARM_CPU_ARMV8
  232. select BR2_ARCH_HAS_MMU_OPTIONAL
  233. config BR2_cortex_m3
  234. bool "cortex-M3"
  235. select BR2_ARM_CPU_HAS_THUMB2
  236. select BR2_ARM_CPU_ARMV7M
  237. depends on !BR2_ARCH_IS_64
  238. config BR2_cortex_m4
  239. bool "cortex-M4"
  240. select BR2_ARM_CPU_HAS_THUMB2
  241. select BR2_ARM_CPU_ARMV7M
  242. depends on !BR2_ARCH_IS_64
  243. config BR2_fa526
  244. bool "fa526/626"
  245. select BR2_ARM_CPU_HAS_ARM
  246. select BR2_ARM_CPU_ARMV4
  247. select BR2_ARCH_HAS_MMU_OPTIONAL
  248. depends on !BR2_ARCH_IS_64
  249. config BR2_pj4
  250. bool "pj4"
  251. select BR2_ARM_CPU_HAS_ARM
  252. select BR2_ARM_CPU_HAS_VFPV3
  253. select BR2_ARM_CPU_ARMV7A
  254. select BR2_ARCH_HAS_MMU_OPTIONAL
  255. depends on !BR2_ARCH_IS_64
  256. config BR2_strongarm
  257. bool "strongarm sa110/sa1100"
  258. select BR2_ARM_CPU_HAS_ARM
  259. select BR2_ARM_CPU_ARMV4
  260. select BR2_ARCH_HAS_MMU_OPTIONAL
  261. depends on !BR2_ARCH_IS_64
  262. config BR2_xscale
  263. bool "xscale"
  264. select BR2_ARM_CPU_HAS_ARM
  265. select BR2_ARM_CPU_HAS_THUMB
  266. select BR2_ARM_CPU_ARMV5
  267. select BR2_ARCH_HAS_MMU_OPTIONAL
  268. depends on !BR2_ARCH_IS_64
  269. config BR2_iwmmxt
  270. bool "iwmmxt"
  271. select BR2_ARM_CPU_HAS_ARM
  272. select BR2_ARM_CPU_ARMV5
  273. select BR2_ARCH_HAS_MMU_OPTIONAL
  274. depends on !BR2_ARCH_IS_64
  275. endchoice
  276. config BR2_ARM_ENABLE_NEON
  277. bool "Enable NEON SIMD extension support"
  278. depends on BR2_ARM_CPU_MAYBE_HAS_NEON
  279. select BR2_ARM_CPU_HAS_NEON
  280. help
  281. For some CPU cores, the NEON SIMD extension is optional.
  282. Select this option if you are certain your particular
  283. implementation has NEON support and you want to use it.
  284. config BR2_ARM_ENABLE_VFP
  285. bool "Enable VFP extension support"
  286. depends on BR2_ARM_CPU_MAYBE_HAS_VFPV2
  287. select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
  288. select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
  289. select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2
  290. help
  291. For some CPU cores, the VFP extension is optional. Select
  292. this option if you are certain your particular
  293. implementation has VFP support and you want to use it.
  294. choice
  295. prompt "Target ABI"
  296. depends on BR2_arm || BR2_armeb
  297. default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_VFPV2
  298. default BR2_ARM_EABI
  299. help
  300. Application Binary Interface to use. The Application Binary
  301. Interface describes the calling conventions (how arguments
  302. are passed to functions, how the return value is passed, how
  303. system calls are made, etc.).
  304. config BR2_ARM_EABI
  305. bool "EABI"
  306. help
  307. The EABI is currently the standard ARM ABI, which is used in
  308. most projects. It supports both the 'soft' floating point
  309. model (in which floating point instructions are emulated in
  310. software) and the 'softfp' floating point model (in which
  311. floating point instructions are executed using an hardware
  312. floating point unit, but floating point arguments to
  313. functions are passed in integer registers).
  314. The 'softfp' floating point model is link-compatible with
  315. the 'soft' floating point model, i.e you can link a library
  316. built 'soft' with some other code built 'softfp'.
  317. However, passing the floating point arguments in integer
  318. registers is a bit inefficient, so if your ARM processor has
  319. a floating point unit, and you don't have pre-compiled
  320. 'soft' or 'softfp' code, using the EABIhf ABI will provide
  321. better floating point performances.
  322. If your processor does not have a floating point unit, then
  323. you must use this ABI.
  324. config BR2_ARM_EABIHF
  325. bool "EABIhf"
  326. depends on BR2_ARM_CPU_HAS_VFPV2
  327. help
  328. The EABIhf is an extension of EABI which supports the 'hard'
  329. floating point model. This model uses the floating point
  330. unit to execute floating point instructions, and passes
  331. floating point arguments in floating point registers.
  332. It is more efficient than EABI for floating point related
  333. workload. However, it does not allow to link against code
  334. that has been pre-built for the 'soft' or 'softfp' floating
  335. point models.
  336. If your processor has a floating point unit, and you don't
  337. depend on existing pre-compiled code, this option is most
  338. likely the best choice.
  339. endchoice
  340. choice
  341. prompt "Floating point strategy"
  342. default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
  343. default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
  344. default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
  345. default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
  346. default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_VFPV2
  347. config BR2_ARM_SOFT_FLOAT
  348. bool "Soft float"
  349. depends on BR2_ARM_EABI
  350. select BR2_SOFT_FLOAT
  351. help
  352. This option allows to use software emulated floating
  353. point. It should be used for ARM cores that do not include a
  354. Vector Floating Point unit, such as ARMv5 cores (ARM926 for
  355. example) or certain ARMv6 cores.
  356. config BR2_ARM_FPU_VFPV2
  357. bool "VFPv2"
  358. depends on BR2_ARM_CPU_HAS_VFPV2
  359. help
  360. This option allows to use the VFPv2 floating point unit, as
  361. available in some ARMv5 processors (ARM926EJ-S) and some
  362. ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11
  363. MPCore).
  364. Note that this option is also safe to use for newer cores
  365. such as Cortex-A, because the VFPv3 and VFPv4 units are
  366. backward compatible with VFPv2.
  367. config BR2_ARM_FPU_VFPV3
  368. bool "VFPv3"
  369. depends on BR2_ARM_CPU_HAS_VFPV3
  370. help
  371. This option allows to use the VFPv3 floating point unit, as
  372. available in some ARMv7 processors (Cortex-A{8, 9}). This
  373. option requires a VFPv3 unit that has 32 double-precision
  374. registers, which is not necessarily the case in all SOCs
  375. based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16
  376. instead, which is guaranteed to work on all Cortex-A{8, 9}.
  377. Note that this option is also safe to use for newer cores
  378. that have a VFPv4 unit, because VFPv4 is backward compatible
  379. with VFPv3. They must of course also have 32
  380. double-precision registers.
  381. config BR2_ARM_FPU_VFPV3D16
  382. bool "VFPv3-D16"
  383. depends on BR2_ARM_CPU_HAS_VFPV3
  384. help
  385. This option allows to use the VFPv3 floating point unit, as
  386. available in some ARMv7 processors (Cortex-A{8, 9}). This
  387. option requires a VFPv3 unit that has 16 double-precision
  388. registers, which is generally the case in all SOCs based on
  389. Cortex-A{8, 9}, even though VFPv3 is technically optional on
  390. Cortex-A9. This is the safest option for those cores.
  391. Note that this option is also safe to use for newer cores
  392. such that have a VFPv4 unit, because the VFPv4 is backward
  393. compatible with VFPv3.
  394. config BR2_ARM_FPU_VFPV4
  395. bool "VFPv4"
  396. depends on BR2_ARM_CPU_HAS_VFPV4
  397. help
  398. This option allows to use the VFPv4 floating point unit, as
  399. available in some ARMv7 processors (Cortex-A{5, 7, 12,
  400. 15}). This option requires a VFPv4 unit that has 32
  401. double-precision registers, which is not necessarily the
  402. case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're
  403. unsure, you should probably use VFPv4-D16 instead.
  404. Note that if you want binary code that works on all ARMv7
  405. cores, including the earlier Cortex-A{8, 9}, you should
  406. instead select VFPv3.
  407. config BR2_ARM_FPU_VFPV4D16
  408. bool "VFPv4-D16"
  409. depends on BR2_ARM_CPU_HAS_VFPV4
  410. help
  411. This option allows to use the VFPv4 floating point unit, as
  412. available in some ARMv7 processors (Cortex-A{5, 7, 12,
  413. 15}). This option requires a VFPv4 unit that has 16
  414. double-precision registers, which is always available on
  415. Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and
  416. Cortex-A7.
  417. Note that if you want binary code that works on all ARMv7
  418. cores, including the earlier Cortex-A{8, 9}, you should
  419. instead select VFPv3-D16.
  420. config BR2_ARM_FPU_NEON
  421. bool "NEON"
  422. depends on BR2_ARM_CPU_HAS_NEON
  423. help
  424. This option allows to use the NEON SIMD unit, as available
  425. in some ARMv7 processors, as a floating-point unit. It
  426. should however be noted that using NEON for floating point
  427. operations doesn't provide a complete compatibility with the
  428. IEEE 754.
  429. config BR2_ARM_FPU_NEON_VFPV4
  430. bool "NEON/VFPv4"
  431. depends on BR2_ARM_CPU_HAS_VFPV4
  432. depends on BR2_ARM_CPU_HAS_NEON
  433. help
  434. This option allows to use both the VFPv4 and the NEON SIMD
  435. units for floating point operations. Note that some ARMv7
  436. cores do not necessarily have VFPv4 and/or NEON support, for
  437. example on Cortex-A5 and Cortex-A7, support for VFPv4 and
  438. NEON is optional.
  439. config BR2_ARM_FPU_FP_ARMV8
  440. bool "FP-ARMv8"
  441. depends on BR2_ARM_CPU_HAS_FP_ARMV8
  442. help
  443. This option allows to use the ARMv8 floating point unit.
  444. config BR2_ARM_FPU_NEON_FP_ARMV8
  445. bool "NEON/FP-ARMv8"
  446. depends on BR2_ARM_CPU_HAS_FP_ARMV8
  447. depends on BR2_ARM_CPU_HAS_NEON
  448. help
  449. This option allows to use both the ARMv8 floating point unit
  450. and the NEON SIMD unit for floating point operations.
  451. endchoice
  452. choice
  453. prompt "ARM instruction set"
  454. depends on BR2_arm || BR2_armeb
  455. config BR2_ARM_INSTRUCTIONS_ARM
  456. bool "ARM"
  457. depends on BR2_ARM_CPU_HAS_ARM
  458. help
  459. This option instructs the compiler to generate regular ARM
  460. instructions, that are all 32 bits wide.
  461. config BR2_ARM_INSTRUCTIONS_THUMB
  462. bool "Thumb"
  463. depends on BR2_ARM_CPU_HAS_THUMB
  464. # Thumb-1 and VFP are not compatible
  465. depends on BR2_ARM_SOFT_FLOAT
  466. help
  467. This option instructions the compiler to generate Thumb
  468. instructions, which allows to mix 16 bits instructions and
  469. 32 bits instructions. This generally provides a much smaller
  470. compiled binary size.
  471. comment "Thumb1 is not compatible with VFP"
  472. depends on BR2_ARM_CPU_HAS_THUMB
  473. depends on !BR2_ARM_SOFT_FLOAT
  474. config BR2_ARM_INSTRUCTIONS_THUMB2
  475. bool "Thumb2"
  476. depends on BR2_ARM_CPU_HAS_THUMB2
  477. help
  478. This option instructions the compiler to generate Thumb2
  479. instructions, which allows to mix 16 bits instructions and
  480. 32 bits instructions. This generally provides a much smaller
  481. compiled binary size.
  482. endchoice
  483. config BR2_ARCH
  484. default "arm" if BR2_arm
  485. default "armeb" if BR2_armeb
  486. default "aarch64" if BR2_aarch64
  487. default "aarch64_be" if BR2_aarch64_be
  488. config BR2_ENDIAN
  489. default "LITTLE" if (BR2_arm || BR2_aarch64)
  490. default "BIG" if (BR2_armeb || BR2_aarch64_be)
  491. config BR2_GCC_TARGET_CPU
  492. default "arm920t" if BR2_arm920t
  493. default "arm922t" if BR2_arm922t
  494. default "arm926ej-s" if BR2_arm926t
  495. default "arm1136j-s" if BR2_arm1136j_s
  496. default "arm1136jf-s" if BR2_arm1136jf_s
  497. default "arm1176jz-s" if BR2_arm1176jz_s
  498. default "arm1176jzf-s" if BR2_arm1176jzf_s
  499. default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
  500. default "mpcorenovfp" if BR2_arm11mpcore
  501. default "cortex-a5" if BR2_cortex_a5
  502. default "cortex-a7" if BR2_cortex_a7
  503. default "cortex-a8" if BR2_cortex_a8
  504. default "cortex-a9" if BR2_cortex_a9
  505. default "cortex-a12" if BR2_cortex_a12
  506. default "cortex-a15" if BR2_cortex_a15
  507. default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
  508. default "cortex-a17" if BR2_cortex_a17
  509. default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
  510. default "cortex-m3" if BR2_cortex_m3
  511. default "cortex-m4" if BR2_cortex_m4
  512. default "fa526" if BR2_fa526
  513. default "marvell-pj4" if BR2_pj4
  514. default "strongarm" if BR2_strongarm
  515. default "xscale" if BR2_xscale
  516. default "iwmmxt" if BR2_iwmmxt
  517. default "cortex-a53" if BR2_cortex_a53
  518. default "cortex-a57" if BR2_cortex_a57
  519. default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
  520. default "cortex-a72" if BR2_cortex_a72
  521. default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
  522. config BR2_GCC_TARGET_ABI
  523. default "aapcs-linux" if BR2_arm || BR2_armeb
  524. default "lp64" if BR2_aarch64 || BR2_aarch64_be
  525. config BR2_GCC_TARGET_FPU
  526. depends on BR2_arm || BR2_armeb
  527. default "vfp" if BR2_ARM_FPU_VFPV2
  528. default "vfpv3" if BR2_ARM_FPU_VFPV3
  529. default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
  530. default "vfpv4" if BR2_ARM_FPU_VFPV4
  531. default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
  532. default "neon" if BR2_ARM_FPU_NEON
  533. default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
  534. default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
  535. default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
  536. config BR2_GCC_TARGET_FLOAT_ABI
  537. default "soft" if BR2_ARM_SOFT_FLOAT
  538. default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI
  539. default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF
  540. config BR2_GCC_TARGET_MODE
  541. default "arm" if BR2_ARM_INSTRUCTIONS_ARM
  542. default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
  543. config BR2_READELF_ARCH_NAME
  544. default "ARM" if BR2_arm || BR2_armeb
  545. default "AArch64" if BR2_aarch64 || BR2_aarch64_be