Config.in.x86 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. # i386/x86_64 cpu features
  2. config BR2_X86_CPU_HAS_MMX
  3. bool
  4. config BR2_X86_CPU_HAS_3DNOW
  5. bool
  6. config BR2_X86_CPU_HAS_SSE
  7. bool
  8. config BR2_X86_CPU_HAS_SSE2
  9. bool
  10. config BR2_X86_CPU_HAS_SSE3
  11. bool
  12. config BR2_X86_CPU_HAS_SSSE3
  13. bool
  14. config BR2_X86_CPU_HAS_SSE4
  15. bool
  16. config BR2_X86_CPU_HAS_SSE42
  17. bool
  18. config BR2_X86_CPU_HAS_AVX
  19. bool
  20. config BR2_X86_CPU_HAS_AVX2
  21. bool
  22. choice
  23. prompt "Target Architecture Variant"
  24. default BR2_x86_i586 if BR2_i386
  25. depends on BR2_i386 || BR2_x86_64
  26. help
  27. Specific CPU variant to use
  28. config BR2_x86_i486
  29. bool "i486"
  30. depends on !BR2_x86_64
  31. config BR2_x86_i586
  32. bool "i586"
  33. depends on !BR2_x86_64
  34. config BR2_x86_x1000
  35. bool "x1000"
  36. depends on !BR2_x86_64
  37. help
  38. The Intel X1000 is a Pentium class microprocessor in the
  39. Quark (sub-Atom) Product Line. The X1000 has a bug on the
  40. lock prefix requiring that prefix must be stripped at build
  41. time.
  42. See https://en.wikipedia.org/wiki/Intel_Quark
  43. config BR2_x86_i686
  44. bool "i686"
  45. depends on !BR2_x86_64
  46. config BR2_x86_pentiumpro
  47. bool "pentium pro"
  48. depends on !BR2_x86_64
  49. config BR2_x86_pentium_mmx
  50. bool "pentium MMX"
  51. depends on !BR2_x86_64
  52. select BR2_X86_CPU_HAS_MMX
  53. config BR2_x86_pentium_m
  54. bool "pentium mobile"
  55. depends on !BR2_x86_64
  56. select BR2_X86_CPU_HAS_MMX
  57. select BR2_X86_CPU_HAS_SSE
  58. config BR2_x86_pentium2
  59. bool "pentium2"
  60. depends on !BR2_x86_64
  61. select BR2_X86_CPU_HAS_MMX
  62. config BR2_x86_pentium3
  63. bool "pentium3"
  64. depends on !BR2_x86_64
  65. select BR2_X86_CPU_HAS_MMX
  66. select BR2_X86_CPU_HAS_SSE
  67. config BR2_x86_pentium4
  68. bool "pentium4"
  69. depends on !BR2_x86_64
  70. select BR2_X86_CPU_HAS_MMX
  71. select BR2_X86_CPU_HAS_SSE
  72. select BR2_X86_CPU_HAS_SSE2
  73. config BR2_x86_prescott
  74. bool "prescott"
  75. depends on !BR2_x86_64
  76. select BR2_X86_CPU_HAS_MMX
  77. select BR2_X86_CPU_HAS_SSE
  78. select BR2_X86_CPU_HAS_SSE2
  79. select BR2_X86_CPU_HAS_SSE3
  80. config BR2_x86_x86_64
  81. bool "x86-64"
  82. depends on BR2_x86_64
  83. select BR2_X86_CPU_HAS_MMX
  84. select BR2_X86_CPU_HAS_SSE
  85. select BR2_X86_CPU_HAS_SSE2
  86. help
  87. This option corresponds to -march=x86-64, documented as a
  88. "Generic CPU with 64-bit extensions" by the GCC
  89. documentation. It is a 64-bit CPU with MMX, SSE and SSE2
  90. support.
  91. config BR2_x86_x86_64_v2
  92. bool "x86-64-v2"
  93. depends on BR2_x86_64
  94. select BR2_X86_CPU_HAS_MMX
  95. select BR2_X86_CPU_HAS_SSE
  96. select BR2_X86_CPU_HAS_SSE2
  97. select BR2_X86_CPU_HAS_SSE3
  98. select BR2_X86_CPU_HAS_SSSE3
  99. select BR2_X86_CPU_HAS_SSE4
  100. select BR2_X86_CPU_HAS_SSE42
  101. select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
  102. help
  103. This option corresponds to the x86-64-v2 micro-architecture
  104. level, as defined by the x86-64 psABI document, see
  105. https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
  106. It is close to the Nehalem CPU architecture, and is
  107. applicable for CPUs that support CMPXCHG16B, LAHF-SAHF,
  108. POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3.
  109. config BR2_x86_x86_64_v3
  110. bool "x86-64-v3"
  111. depends on BR2_x86_64
  112. select BR2_X86_CPU_HAS_MMX
  113. select BR2_X86_CPU_HAS_SSE
  114. select BR2_X86_CPU_HAS_SSE2
  115. select BR2_X86_CPU_HAS_SSE3
  116. select BR2_X86_CPU_HAS_SSSE3
  117. select BR2_X86_CPU_HAS_SSE4
  118. select BR2_X86_CPU_HAS_SSE42
  119. select BR2_X86_CPU_HAS_AVX
  120. select BR2_X86_CPU_HAS_AVX2
  121. select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
  122. help
  123. This option corresponds to the x86-64-v3 micro-architecture
  124. level, as defined by the x86-64 psABI document, see
  125. https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
  126. It is close to the Haswell CPU architecture, and is
  127. applicable for CPUs that support all of x86-64-v2 plus AVX,
  128. AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE.
  129. config BR2_x86_x86_64_v4
  130. bool "x86-64-v4"
  131. depends on BR2_x86_64
  132. select BR2_X86_CPU_HAS_MMX
  133. select BR2_X86_CPU_HAS_SSE
  134. select BR2_X86_CPU_HAS_SSE2
  135. select BR2_X86_CPU_HAS_SSE3
  136. select BR2_X86_CPU_HAS_SSSE3
  137. select BR2_X86_CPU_HAS_SSE4
  138. select BR2_X86_CPU_HAS_SSE42
  139. select BR2_X86_CPU_HAS_AVX
  140. select BR2_X86_CPU_HAS_AVX2
  141. select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
  142. help
  143. This option corresponds to the x86-64-v4 micro-architecture
  144. level, as defined by the x86-64 psABI document, see
  145. https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex.
  146. It is applicable for CPUs that support all of x86-64-v3 plus
  147. AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL.
  148. config BR2_x86_nocona
  149. bool "nocona"
  150. select BR2_X86_CPU_HAS_MMX
  151. select BR2_X86_CPU_HAS_SSE
  152. select BR2_X86_CPU_HAS_SSE2
  153. select BR2_X86_CPU_HAS_SSE3
  154. config BR2_x86_core2
  155. bool "core2"
  156. select BR2_X86_CPU_HAS_MMX
  157. select BR2_X86_CPU_HAS_SSE
  158. select BR2_X86_CPU_HAS_SSE2
  159. select BR2_X86_CPU_HAS_SSE3
  160. select BR2_X86_CPU_HAS_SSSE3
  161. config BR2_x86_corei7
  162. bool "corei7"
  163. select BR2_X86_CPU_HAS_MMX
  164. select BR2_X86_CPU_HAS_SSE
  165. select BR2_X86_CPU_HAS_SSE2
  166. select BR2_X86_CPU_HAS_SSE3
  167. select BR2_X86_CPU_HAS_SSSE3
  168. select BR2_X86_CPU_HAS_SSE4
  169. select BR2_X86_CPU_HAS_SSE42
  170. config BR2_x86_westmere
  171. bool "westmere"
  172. select BR2_X86_CPU_HAS_MMX
  173. select BR2_X86_CPU_HAS_SSE
  174. select BR2_X86_CPU_HAS_SSE2
  175. select BR2_X86_CPU_HAS_SSE3
  176. select BR2_X86_CPU_HAS_SSSE3
  177. select BR2_X86_CPU_HAS_SSE4
  178. select BR2_X86_CPU_HAS_SSE42
  179. config BR2_x86_corei7_avx
  180. bool "corei7-avx"
  181. select BR2_X86_CPU_HAS_MMX
  182. select BR2_X86_CPU_HAS_SSE
  183. select BR2_X86_CPU_HAS_SSE2
  184. select BR2_X86_CPU_HAS_SSE3
  185. select BR2_X86_CPU_HAS_SSSE3
  186. select BR2_X86_CPU_HAS_SSE4
  187. select BR2_X86_CPU_HAS_SSE42
  188. select BR2_X86_CPU_HAS_AVX
  189. config BR2_x86_core_avx2
  190. bool "core-avx2"
  191. select BR2_X86_CPU_HAS_MMX
  192. select BR2_X86_CPU_HAS_SSE
  193. select BR2_X86_CPU_HAS_SSE2
  194. select BR2_X86_CPU_HAS_SSE3
  195. select BR2_X86_CPU_HAS_SSSE3
  196. select BR2_X86_CPU_HAS_SSE4
  197. select BR2_X86_CPU_HAS_SSE42
  198. select BR2_X86_CPU_HAS_AVX
  199. select BR2_X86_CPU_HAS_AVX2
  200. config BR2_x86_atom
  201. bool "atom"
  202. select BR2_X86_CPU_HAS_MMX
  203. select BR2_X86_CPU_HAS_SSE
  204. select BR2_X86_CPU_HAS_SSE2
  205. select BR2_X86_CPU_HAS_SSE3
  206. select BR2_X86_CPU_HAS_SSSE3
  207. config BR2_x86_silvermont
  208. bool "silvermont"
  209. select BR2_X86_CPU_HAS_MMX
  210. select BR2_X86_CPU_HAS_SSE
  211. select BR2_X86_CPU_HAS_SSE2
  212. select BR2_X86_CPU_HAS_SSE3
  213. select BR2_X86_CPU_HAS_SSSE3
  214. select BR2_X86_CPU_HAS_SSE4
  215. select BR2_X86_CPU_HAS_SSE42
  216. config BR2_x86_k6
  217. bool "k6"
  218. depends on !BR2_x86_64
  219. select BR2_X86_CPU_HAS_MMX
  220. config BR2_x86_k6_2
  221. bool "k6-2"
  222. depends on !BR2_x86_64
  223. select BR2_X86_CPU_HAS_MMX
  224. select BR2_X86_CPU_HAS_3DNOW
  225. config BR2_x86_athlon
  226. bool "athlon"
  227. depends on !BR2_x86_64
  228. select BR2_X86_CPU_HAS_MMX
  229. select BR2_X86_CPU_HAS_3DNOW
  230. config BR2_x86_athlon_4
  231. bool "athlon-4"
  232. depends on !BR2_x86_64
  233. select BR2_X86_CPU_HAS_MMX
  234. select BR2_X86_CPU_HAS_SSE
  235. select BR2_X86_CPU_HAS_3DNOW
  236. config BR2_x86_opteron
  237. bool "opteron"
  238. select BR2_X86_CPU_HAS_MMX
  239. select BR2_X86_CPU_HAS_SSE
  240. select BR2_X86_CPU_HAS_SSE2
  241. config BR2_x86_opteron_sse3
  242. bool "opteron w/ SSE3"
  243. select BR2_X86_CPU_HAS_MMX
  244. select BR2_X86_CPU_HAS_SSE
  245. select BR2_X86_CPU_HAS_SSE2
  246. select BR2_X86_CPU_HAS_SSE3
  247. config BR2_x86_barcelona
  248. bool "barcelona"
  249. select BR2_X86_CPU_HAS_MMX
  250. select BR2_X86_CPU_HAS_SSE
  251. select BR2_X86_CPU_HAS_SSE2
  252. select BR2_X86_CPU_HAS_SSE3
  253. config BR2_x86_jaguar
  254. bool "jaguar"
  255. select BR2_X86_CPU_HAS_MMX
  256. select BR2_X86_CPU_HAS_SSE
  257. select BR2_X86_CPU_HAS_SSE2
  258. select BR2_X86_CPU_HAS_SSE3
  259. select BR2_X86_CPU_HAS_SSSE3
  260. select BR2_X86_CPU_HAS_SSE4
  261. select BR2_X86_CPU_HAS_SSE42
  262. config BR2_x86_steamroller
  263. bool "steamroller"
  264. select BR2_X86_CPU_HAS_MMX
  265. select BR2_X86_CPU_HAS_SSE
  266. select BR2_X86_CPU_HAS_SSE2
  267. select BR2_X86_CPU_HAS_SSE3
  268. select BR2_X86_CPU_HAS_SSSE3
  269. select BR2_X86_CPU_HAS_SSE4
  270. select BR2_X86_CPU_HAS_SSE42
  271. config BR2_x86_geode
  272. bool "geode"
  273. # Don't include MMX support because there several variant of geode
  274. # processor, some with MMX support, some without.
  275. # See: http://en.wikipedia.org/wiki/Geode_%28processor%29
  276. depends on !BR2_x86_64
  277. config BR2_x86_c3
  278. bool "Via/Cyrix C3 (Samuel/Ezra cores)"
  279. depends on !BR2_x86_64
  280. select BR2_X86_CPU_HAS_MMX
  281. select BR2_X86_CPU_HAS_3DNOW
  282. config BR2_x86_c32
  283. bool "Via C3-2 (Nehemiah cores)"
  284. depends on !BR2_x86_64
  285. select BR2_X86_CPU_HAS_MMX
  286. select BR2_X86_CPU_HAS_SSE
  287. config BR2_x86_winchip_c6
  288. bool "IDT Winchip C6"
  289. depends on !BR2_x86_64
  290. select BR2_X86_CPU_HAS_MMX
  291. config BR2_x86_winchip2
  292. bool "IDT Winchip 2"
  293. depends on !BR2_x86_64
  294. select BR2_X86_CPU_HAS_MMX
  295. endchoice
  296. config BR2_ARCH
  297. default "i486" if BR2_x86_i486
  298. default "i586" if BR2_x86_i586
  299. default "i586" if BR2_x86_x1000
  300. default "i586" if BR2_x86_pentium_mmx
  301. default "i586" if BR2_x86_geode
  302. default "i586" if BR2_x86_c3
  303. default "i686" if BR2_x86_c32
  304. default "i586" if BR2_x86_winchip_c6
  305. default "i586" if BR2_x86_winchip2
  306. # We use the property of Kconfig that the first match of a
  307. # list of default will be chosen. So the following entry will
  308. # not match for all BR2_i386=y configurations, but only the
  309. # ones that didn't match any of the previous cases (i486,
  310. # i586).
  311. default "i686" if BR2_i386
  312. default "x86_64" if BR2_x86_64
  313. config BR2_ENDIAN
  314. default "LITTLE"
  315. config BR2_GCC_TARGET_ARCH
  316. default "i486" if BR2_x86_i486
  317. default "i586" if BR2_x86_i586
  318. default "i586" if BR2_x86_x1000
  319. default "pentium-mmx" if BR2_x86_pentium_mmx
  320. default "i686" if BR2_x86_i686
  321. default "pentiumpro" if BR2_x86_pentiumpro
  322. default "pentium-m" if BR2_x86_pentium_m
  323. default "pentium2" if BR2_x86_pentium2
  324. default "pentium3" if BR2_x86_pentium3
  325. default "pentium4" if BR2_x86_pentium4
  326. default "prescott" if BR2_x86_prescott
  327. default "x86-64" if BR2_x86_x86_64
  328. default "x86-64-v2" if BR2_x86_x86_64_v2
  329. default "x86-64-v3" if BR2_x86_x86_64_v3
  330. default "x86-64-v4" if BR2_x86_x86_64_v4
  331. default "nocona" if BR2_x86_nocona
  332. default "core2" if BR2_x86_core2
  333. default "corei7" if BR2_x86_corei7
  334. default "corei7-avx" if BR2_x86_corei7_avx
  335. default "core-avx2" if BR2_x86_core_avx2
  336. default "atom" if BR2_x86_atom
  337. default "westmere" if BR2_x86_westmere
  338. default "silvermont" if BR2_x86_silvermont
  339. default "k8" if BR2_x86_opteron
  340. default "k8-sse3" if BR2_x86_opteron_sse3
  341. default "barcelona" if BR2_x86_barcelona
  342. default "btver2" if BR2_x86_jaguar
  343. default "bdver3" if BR2_x86_steamroller
  344. default "k6" if BR2_x86_k6
  345. default "k6-2" if BR2_x86_k6_2
  346. default "athlon" if BR2_x86_athlon
  347. default "athlon-4" if BR2_x86_athlon_4
  348. default "winchip-c6" if BR2_x86_winchip_c6
  349. default "winchip2" if BR2_x86_winchip2
  350. default "c3" if BR2_x86_c3
  351. default "c3-2" if BR2_x86_c32
  352. default "geode" if BR2_x86_geode
  353. config BR2_READELF_ARCH_NAME
  354. default "Intel 80386" if BR2_i386
  355. default "Advanced Micro Devices X86-64" if BR2_x86_64
  356. # vim: ft=kconfig
  357. # -*- mode:kconfig; -*-