Config.in.arm 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  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_a17
  167. bool "cortex-A17"
  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_a53
  176. bool "cortex-A53"
  177. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  178. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  179. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  180. select BR2_ARM_CPU_HAS_FP_ARMV8
  181. select BR2_ARM_CPU_ARMV8
  182. select BR2_ARCH_HAS_MMU_OPTIONAL
  183. config BR2_cortex_a57
  184. bool "cortex-A57"
  185. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  186. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  187. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  188. select BR2_ARM_CPU_HAS_FP_ARMV8
  189. select BR2_ARM_CPU_ARMV8
  190. select BR2_ARCH_HAS_MMU_OPTIONAL
  191. config BR2_cortex_a72
  192. bool "cortex-A72"
  193. select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
  194. select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
  195. select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
  196. select BR2_ARM_CPU_HAS_FP_ARMV8
  197. select BR2_ARM_CPU_ARMV8
  198. select BR2_ARCH_HAS_MMU_OPTIONAL
  199. config BR2_cortex_m3
  200. bool "cortex-M3"
  201. select BR2_ARM_CPU_HAS_THUMB2
  202. select BR2_ARM_CPU_ARMV7M
  203. depends on !BR2_ARCH_IS_64
  204. config BR2_cortex_m4
  205. bool "cortex-M4"
  206. select BR2_ARM_CPU_HAS_THUMB2
  207. select BR2_ARM_CPU_ARMV7M
  208. depends on !BR2_ARCH_IS_64
  209. config BR2_fa526
  210. bool "fa526/626"
  211. select BR2_ARM_CPU_HAS_ARM
  212. select BR2_ARM_CPU_ARMV4
  213. select BR2_ARCH_HAS_MMU_OPTIONAL
  214. depends on !BR2_ARCH_IS_64
  215. config BR2_pj4
  216. bool "pj4"
  217. select BR2_ARM_CPU_HAS_ARM
  218. select BR2_ARM_CPU_HAS_VFPV3
  219. select BR2_ARM_CPU_ARMV7A
  220. select BR2_ARCH_HAS_MMU_OPTIONAL
  221. depends on !BR2_ARCH_IS_64
  222. config BR2_strongarm
  223. bool "strongarm sa110/sa1100"
  224. select BR2_ARM_CPU_HAS_ARM
  225. select BR2_ARM_CPU_ARMV4
  226. select BR2_ARCH_HAS_MMU_OPTIONAL
  227. depends on !BR2_ARCH_IS_64
  228. config BR2_xscale
  229. bool "xscale"
  230. select BR2_ARM_CPU_HAS_ARM
  231. select BR2_ARM_CPU_HAS_THUMB
  232. select BR2_ARM_CPU_ARMV5
  233. select BR2_ARCH_HAS_MMU_OPTIONAL
  234. depends on !BR2_ARCH_IS_64
  235. config BR2_iwmmxt
  236. bool "iwmmxt"
  237. select BR2_ARM_CPU_HAS_ARM
  238. select BR2_ARM_CPU_ARMV5
  239. select BR2_ARCH_HAS_MMU_OPTIONAL
  240. depends on !BR2_ARCH_IS_64
  241. endchoice
  242. config BR2_ARM_ENABLE_NEON
  243. bool "Enable NEON SIMD extension support"
  244. depends on BR2_ARM_CPU_MAYBE_HAS_NEON
  245. select BR2_ARM_CPU_HAS_NEON
  246. help
  247. For some CPU cores, the NEON SIMD extension is optional.
  248. Select this option if you are certain your particular
  249. implementation has NEON support and you want to use it.
  250. config BR2_ARM_ENABLE_VFP
  251. bool "Enable VFP extension support"
  252. depends on BR2_ARM_CPU_MAYBE_HAS_VFPV2
  253. select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
  254. select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
  255. select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2
  256. help
  257. For some CPU cores, the VFP extension is optional. Select
  258. this option if you are certain your particular
  259. implementation has VFP support and you want to use it.
  260. choice
  261. prompt "Target ABI"
  262. depends on BR2_arm || BR2_armeb
  263. default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_VFPV2
  264. default BR2_ARM_EABI
  265. help
  266. Application Binary Interface to use. The Application Binary
  267. Interface describes the calling conventions (how arguments
  268. are passed to functions, how the return value is passed, how
  269. system calls are made, etc.).
  270. config BR2_ARM_EABI
  271. bool "EABI"
  272. help
  273. The EABI is currently the standard ARM ABI, which is used in
  274. most projects. It supports both the 'soft' floating point
  275. model (in which floating point instructions are emulated in
  276. software) and the 'softfp' floating point model (in which
  277. floating point instructions are executed using an hardware
  278. floating point unit, but floating point arguments to
  279. functions are passed in integer registers).
  280. The 'softfp' floating point model is link-compatible with
  281. the 'soft' floating point model, i.e you can link a library
  282. built 'soft' with some other code built 'softfp'.
  283. However, passing the floating point arguments in integer
  284. registers is a bit inefficient, so if your ARM processor has
  285. a floating point unit, and you don't have pre-compiled
  286. 'soft' or 'softfp' code, using the EABIhf ABI will provide
  287. better floating point performances.
  288. If your processor does not have a floating point unit, then
  289. you must use this ABI.
  290. config BR2_ARM_EABIHF
  291. bool "EABIhf"
  292. depends on BR2_ARM_CPU_HAS_VFPV2
  293. help
  294. The EABIhf is an extension of EABI which supports the 'hard'
  295. floating point model. This model uses the floating point
  296. unit to execute floating point instructions, and passes
  297. floating point arguments in floating point registers.
  298. It is more efficient than EABI for floating point related
  299. workload. However, it does not allow to link against code
  300. that has been pre-built for the 'soft' or 'softfp' floating
  301. point models.
  302. If your processor has a floating point unit, and you don't
  303. depend on existing pre-compiled code, this option is most
  304. likely the best choice.
  305. endchoice
  306. choice
  307. prompt "Floating point strategy"
  308. default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
  309. default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
  310. default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
  311. default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
  312. default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_VFPV2
  313. config BR2_ARM_SOFT_FLOAT
  314. bool "Soft float"
  315. depends on BR2_ARM_EABI
  316. select BR2_SOFT_FLOAT
  317. help
  318. This option allows to use software emulated floating
  319. point. It should be used for ARM cores that do not include a
  320. Vector Floating Point unit, such as ARMv5 cores (ARM926 for
  321. example) or certain ARMv6 cores.
  322. config BR2_ARM_FPU_VFPV2
  323. bool "VFPv2"
  324. depends on BR2_ARM_CPU_HAS_VFPV2
  325. help
  326. This option allows to use the VFPv2 floating point unit, as
  327. available in some ARMv5 processors (ARM926EJ-S) and some
  328. ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11
  329. MPCore).
  330. Note that this option is also safe to use for newer cores
  331. such as Cortex-A, because the VFPv3 and VFPv4 units are
  332. backward compatible with VFPv2.
  333. config BR2_ARM_FPU_VFPV3
  334. bool "VFPv3"
  335. depends on BR2_ARM_CPU_HAS_VFPV3
  336. help
  337. This option allows to use the VFPv3 floating point unit, as
  338. available in some ARMv7 processors (Cortex-A{8, 9}). This
  339. option requires a VFPv3 unit that has 32 double-precision
  340. registers, which is not necessarily the case in all SOCs
  341. based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16
  342. instead, which is guaranteed to work on all Cortex-A{8, 9}.
  343. Note that this option is also safe to use for newer cores
  344. that have a VFPv4 unit, because VFPv4 is backward compatible
  345. with VFPv3. They must of course also have 32
  346. double-precision registers.
  347. config BR2_ARM_FPU_VFPV3D16
  348. bool "VFPv3-D16"
  349. depends on BR2_ARM_CPU_HAS_VFPV3
  350. help
  351. This option allows to use the VFPv3 floating point unit, as
  352. available in some ARMv7 processors (Cortex-A{8, 9}). This
  353. option requires a VFPv3 unit that has 16 double-precision
  354. registers, which is generally the case in all SOCs based on
  355. Cortex-A{8, 9}, even though VFPv3 is technically optional on
  356. Cortex-A9. This is the safest option for those cores.
  357. Note that this option is also safe to use for newer cores
  358. such that have a VFPv4 unit, because the VFPv4 is backward
  359. compatible with VFPv3.
  360. config BR2_ARM_FPU_VFPV4
  361. bool "VFPv4"
  362. depends on BR2_ARM_CPU_HAS_VFPV4
  363. help
  364. This option allows to use the VFPv4 floating point unit, as
  365. available in some ARMv7 processors (Cortex-A{5, 7, 12,
  366. 15}). This option requires a VFPv4 unit that has 32
  367. double-precision registers, which is not necessarily the
  368. case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're
  369. unsure, you should probably use VFPv4-D16 instead.
  370. Note that if you want binary code that works on all ARMv7
  371. cores, including the earlier Cortex-A{8, 9}, you should
  372. instead select VFPv3.
  373. config BR2_ARM_FPU_VFPV4D16
  374. bool "VFPv4-D16"
  375. depends on BR2_ARM_CPU_HAS_VFPV4
  376. help
  377. This option allows to use the VFPv4 floating point unit, as
  378. available in some ARMv7 processors (Cortex-A{5, 7, 12,
  379. 15}). This option requires a VFPv4 unit that has 16
  380. double-precision registers, which is always available on
  381. Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and
  382. Cortex-A7.
  383. Note that if you want binary code that works on all ARMv7
  384. cores, including the earlier Cortex-A{8, 9}, you should
  385. instead select VFPv3-D16.
  386. config BR2_ARM_FPU_NEON
  387. bool "NEON"
  388. depends on BR2_ARM_CPU_HAS_NEON
  389. help
  390. This option allows to use the NEON SIMD unit, as available
  391. in some ARMv7 processors, as a floating-point unit. It
  392. should however be noted that using NEON for floating point
  393. operations doesn't provide a complete compatibility with the
  394. IEEE 754.
  395. config BR2_ARM_FPU_NEON_VFPV4
  396. bool "NEON/VFPv4"
  397. depends on BR2_ARM_CPU_HAS_VFPV4
  398. depends on BR2_ARM_CPU_HAS_NEON
  399. help
  400. This option allows to use both the VFPv4 and the NEON SIMD
  401. units for floating point operations. Note that some ARMv7
  402. cores do not necessarily have VFPv4 and/or NEON support, for
  403. example on Cortex-A5 and Cortex-A7, support for VFPv4 and
  404. NEON is optional.
  405. config BR2_ARM_FPU_FP_ARMV8
  406. bool "FP-ARMv8"
  407. depends on BR2_ARM_CPU_HAS_FP_ARMV8
  408. help
  409. This option allows to use the ARMv8 floating point unit.
  410. config BR2_ARM_FPU_NEON_FP_ARMV8
  411. bool "NEON/FP-ARMv8"
  412. depends on BR2_ARM_CPU_HAS_FP_ARMV8
  413. depends on BR2_ARM_CPU_HAS_NEON
  414. help
  415. This option allows to use both the ARMv8 floating point unit
  416. and the NEON SIMD unit for floating point operations.
  417. endchoice
  418. choice
  419. prompt "ARM instruction set"
  420. depends on BR2_arm || BR2_armeb
  421. config BR2_ARM_INSTRUCTIONS_ARM
  422. bool "ARM"
  423. depends on BR2_ARM_CPU_HAS_ARM
  424. help
  425. This option instructs the compiler to generate regular ARM
  426. instructions, that are all 32 bits wide.
  427. config BR2_ARM_INSTRUCTIONS_THUMB
  428. bool "Thumb"
  429. depends on BR2_ARM_CPU_HAS_THUMB
  430. # Thumb-1 and VFP are not compatible
  431. depends on BR2_ARM_SOFT_FLOAT
  432. help
  433. This option instructions the compiler to generate Thumb
  434. instructions, which allows to mix 16 bits instructions and
  435. 32 bits instructions. This generally provides a much smaller
  436. compiled binary size.
  437. comment "Thumb1 is not compatible with VFP"
  438. depends on BR2_ARM_CPU_HAS_THUMB
  439. depends on !BR2_ARM_SOFT_FLOAT
  440. config BR2_ARM_INSTRUCTIONS_THUMB2
  441. bool "Thumb2"
  442. depends on BR2_ARM_CPU_HAS_THUMB2
  443. help
  444. This option instructions the compiler to generate Thumb2
  445. instructions, which allows to mix 16 bits instructions and
  446. 32 bits instructions. This generally provides a much smaller
  447. compiled binary size.
  448. endchoice
  449. config BR2_ARCH
  450. default "arm" if BR2_arm
  451. default "armeb" if BR2_armeb
  452. default "aarch64" if BR2_aarch64
  453. default "aarch64_be" if BR2_aarch64_be
  454. config BR2_ENDIAN
  455. default "LITTLE" if (BR2_arm || BR2_aarch64)
  456. default "BIG" if (BR2_armeb || BR2_aarch64_be)
  457. config BR2_GCC_TARGET_CPU
  458. default "arm920t" if BR2_arm920t
  459. default "arm922t" if BR2_arm922t
  460. default "arm926ej-s" if BR2_arm926t
  461. default "arm1136j-s" if BR2_arm1136j_s
  462. default "arm1136jf-s" if BR2_arm1136jf_s
  463. default "arm1176jz-s" if BR2_arm1176jz_s
  464. default "arm1176jzf-s" if BR2_arm1176jzf_s
  465. default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
  466. default "mpcorenovfp" if BR2_arm11mpcore
  467. default "cortex-a5" if BR2_cortex_a5
  468. default "cortex-a7" if BR2_cortex_a7
  469. default "cortex-a8" if BR2_cortex_a8
  470. default "cortex-a9" if BR2_cortex_a9
  471. default "cortex-a12" if BR2_cortex_a12
  472. default "cortex-a15" if BR2_cortex_a15
  473. default "cortex-a17" if BR2_cortex_a17
  474. default "cortex-m3" if BR2_cortex_m3
  475. default "cortex-m4" if BR2_cortex_m4
  476. default "fa526" if BR2_fa526
  477. default "marvell-pj4" if BR2_pj4
  478. default "strongarm" if BR2_strongarm
  479. default "xscale" if BR2_xscale
  480. default "iwmmxt" if BR2_iwmmxt
  481. default "cortex-a53" if BR2_cortex_a53
  482. default "cortex-a57" if BR2_cortex_a57
  483. default "cortex-a72" if BR2_cortex_a72
  484. config BR2_GCC_TARGET_ABI
  485. default "aapcs-linux" if BR2_arm || BR2_armeb
  486. default "lp64" if BR2_aarch64 || BR2_aarch64_be
  487. config BR2_GCC_TARGET_FPU
  488. depends on BR2_arm || BR2_armeb
  489. default "vfp" if BR2_ARM_FPU_VFPV2
  490. default "vfpv3" if BR2_ARM_FPU_VFPV3
  491. default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
  492. default "vfpv4" if BR2_ARM_FPU_VFPV4
  493. default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
  494. default "neon" if BR2_ARM_FPU_NEON
  495. default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
  496. default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
  497. default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
  498. config BR2_GCC_TARGET_FLOAT_ABI
  499. default "soft" if BR2_ARM_SOFT_FLOAT
  500. default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI
  501. default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF
  502. config BR2_GCC_TARGET_MODE
  503. default "arm" if BR2_ARM_INSTRUCTIONS_ARM
  504. default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
  505. config BR2_READELF_ARCH_NAME
  506. default "ARM" if BR2_arm || BR2_armeb
  507. default "AArch64" if BR2_aarch64 || BR2_aarch64_be