Kconfig 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. comment "Processor Type"
  2. config CPU_32
  3. bool
  4. default y
  5. # Select CPU types depending on the architecture selected. This selects
  6. # which CPUs we support in the kernel image, and the compiler instruction
  7. # optimiser behaviour.
  8. # ARM610
  9. config CPU_ARM610
  10. bool "Support ARM610 processor"
  11. depends on ARCH_RPC
  12. select CPU_32v3
  13. select CPU_CACHE_V3
  14. select CPU_CACHE_VIVT
  15. select CPU_COPY_V3
  16. select CPU_TLB_V3
  17. help
  18. The ARM610 is the successor to the ARM3 processor
  19. and was produced by VLSI Technology Inc.
  20. Say Y if you want support for the ARM610 processor.
  21. Otherwise, say N.
  22. # ARM710
  23. config CPU_ARM710
  24. bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
  25. default y if ARCH_CLPS7500
  26. select CPU_32v3
  27. select CPU_CACHE_V3
  28. select CPU_CACHE_VIVT
  29. select CPU_COPY_V3
  30. select CPU_TLB_V3
  31. help
  32. A 32-bit RISC microprocessor based on the ARM7 processor core
  33. designed by Advanced RISC Machines Ltd. The ARM710 is the
  34. successor to the ARM610 processor. It was released in
  35. July 1994 by VLSI Technology Inc.
  36. Say Y if you want support for the ARM710 processor.
  37. Otherwise, say N.
  38. # ARM720T
  39. config CPU_ARM720T
  40. bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
  41. default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
  42. select CPU_32v4
  43. select CPU_ABRT_LV4T
  44. select CPU_CACHE_V4
  45. select CPU_CACHE_VIVT
  46. select CPU_COPY_V4WT
  47. select CPU_TLB_V4WT
  48. help
  49. A 32-bit RISC processor with 8kByte Cache, Write Buffer and
  50. MMU built around an ARM7TDMI core.
  51. Say Y if you want support for the ARM720T processor.
  52. Otherwise, say N.
  53. # ARM920T
  54. config CPU_ARM920T
  55. bool "Support ARM920T processor" if !ARCH_S3C2410
  56. depends on ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000
  57. default y if ARCH_S3C2410
  58. select CPU_32v4
  59. select CPU_ABRT_EV4T
  60. select CPU_CACHE_V4WT
  61. select CPU_CACHE_VIVT
  62. select CPU_COPY_V4WB
  63. select CPU_TLB_V4WBI
  64. help
  65. The ARM920T is licensed to be produced by numerous vendors,
  66. and is used in the Maverick EP9312 and the Samsung S3C2410.
  67. More information on the Maverick EP9312 at
  68. <http://linuxdevices.com/products/PD2382866068.html>.
  69. Say Y if you want support for the ARM920T processor.
  70. Otherwise, say N.
  71. # ARM922T
  72. config CPU_ARM922T
  73. bool "Support ARM922T processor" if ARCH_INTEGRATOR
  74. depends on ARCH_CAMELOT || ARCH_LH7A40X || ARCH_INTEGRATOR
  75. default y if ARCH_CAMELOT || ARCH_LH7A40X
  76. select CPU_32v4
  77. select CPU_ABRT_EV4T
  78. select CPU_CACHE_V4WT
  79. select CPU_CACHE_VIVT
  80. select CPU_COPY_V4WB
  81. select CPU_TLB_V4WBI
  82. help
  83. The ARM922T is a version of the ARM920T, but with smaller
  84. instruction and data caches. It is used in Altera's
  85. Excalibur XA device family.
  86. Say Y if you want support for the ARM922T processor.
  87. Otherwise, say N.
  88. # ARM925T
  89. config CPU_ARM925T
  90. bool "Support ARM925T processor" if ARCH_OMAP1
  91. depends on ARCH_OMAP1510
  92. default y if ARCH_OMAP1510
  93. select CPU_32v4
  94. select CPU_ABRT_EV4T
  95. select CPU_CACHE_V4WT
  96. select CPU_CACHE_VIVT
  97. select CPU_COPY_V4WB
  98. select CPU_TLB_V4WBI
  99. help
  100. The ARM925T is a mix between the ARM920T and ARM926T, but with
  101. different instruction and data caches. It is used in TI's OMAP
  102. device family.
  103. Say Y if you want support for the ARM925T processor.
  104. Otherwise, say N.
  105. # ARM926T
  106. config CPU_ARM926T
  107. bool "Support ARM926T processor" if ARCH_INTEGRATOR
  108. depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX
  109. default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX
  110. select CPU_32v5
  111. select CPU_ABRT_EV5TJ
  112. select CPU_CACHE_VIVT
  113. select CPU_COPY_V4WB
  114. select CPU_TLB_V4WBI
  115. help
  116. This is a variant of the ARM920. It has slightly different
  117. instruction sequences for cache and TLB operations. Curiously,
  118. there is no documentation on it at the ARM corporate website.
  119. Say Y if you want support for the ARM926T processor.
  120. Otherwise, say N.
  121. # ARM1020 - needs validating
  122. config CPU_ARM1020
  123. bool "Support ARM1020T (rev 0) processor"
  124. depends on ARCH_INTEGRATOR
  125. select CPU_32v5
  126. select CPU_ABRT_EV4T
  127. select CPU_CACHE_V4WT
  128. select CPU_CACHE_VIVT
  129. select CPU_COPY_V4WB
  130. select CPU_TLB_V4WBI
  131. help
  132. The ARM1020 is the 32K cached version of the ARM10 processor,
  133. with an addition of a floating-point unit.
  134. Say Y if you want support for the ARM1020 processor.
  135. Otherwise, say N.
  136. # ARM1020E - needs validating
  137. config CPU_ARM1020E
  138. bool "Support ARM1020E processor"
  139. depends on ARCH_INTEGRATOR
  140. select CPU_32v5
  141. select CPU_ABRT_EV4T
  142. select CPU_CACHE_V4WT
  143. select CPU_CACHE_VIVT
  144. select CPU_COPY_V4WB
  145. select CPU_TLB_V4WBI
  146. depends on n
  147. # ARM1022E
  148. config CPU_ARM1022
  149. bool "Support ARM1022E processor"
  150. depends on ARCH_INTEGRATOR
  151. select CPU_32v5
  152. select CPU_ABRT_EV4T
  153. select CPU_CACHE_VIVT
  154. select CPU_COPY_V4WB # can probably do better
  155. select CPU_TLB_V4WBI
  156. help
  157. The ARM1022E is an implementation of the ARMv5TE architecture
  158. based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
  159. embedded trace macrocell, and a floating-point unit.
  160. Say Y if you want support for the ARM1022E processor.
  161. Otherwise, say N.
  162. # ARM1026EJ-S
  163. config CPU_ARM1026
  164. bool "Support ARM1026EJ-S processor"
  165. depends on ARCH_INTEGRATOR
  166. select CPU_32v5
  167. select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
  168. select CPU_CACHE_VIVT
  169. select CPU_COPY_V4WB # can probably do better
  170. select CPU_TLB_V4WBI
  171. help
  172. The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
  173. based upon the ARM10 integer core.
  174. Say Y if you want support for the ARM1026EJ-S processor.
  175. Otherwise, say N.
  176. # SA110
  177. config CPU_SA110
  178. bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
  179. default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
  180. select CPU_32v3 if ARCH_RPC
  181. select CPU_32v4 if !ARCH_RPC
  182. select CPU_ABRT_EV4
  183. select CPU_CACHE_V4WB
  184. select CPU_CACHE_VIVT
  185. select CPU_COPY_V4WB
  186. select CPU_TLB_V4WB
  187. help
  188. The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
  189. is available at five speeds ranging from 100 MHz to 233 MHz.
  190. More information is available at
  191. <http://developer.intel.com/design/strong/sa110.htm>.
  192. Say Y if you want support for the SA-110 processor.
  193. Otherwise, say N.
  194. # SA1100
  195. config CPU_SA1100
  196. bool
  197. depends on ARCH_SA1100
  198. default y
  199. select CPU_32v4
  200. select CPU_ABRT_EV4
  201. select CPU_CACHE_V4WB
  202. select CPU_CACHE_VIVT
  203. select CPU_TLB_V4WB
  204. # XScale
  205. config CPU_XSCALE
  206. bool
  207. depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
  208. default y
  209. select CPU_32v5
  210. select CPU_ABRT_EV5T
  211. select CPU_CACHE_VIVT
  212. select CPU_TLB_V4WBI
  213. # ARMv6
  214. config CPU_V6
  215. bool "Support ARM V6 processor"
  216. depends on ARCH_INTEGRATOR
  217. select CPU_32v6
  218. select CPU_ABRT_EV6
  219. select CPU_CACHE_V6
  220. select CPU_CACHE_VIPT
  221. select CPU_COPY_V6
  222. select CPU_TLB_V6
  223. # Figure out what processor architecture version we should be using.
  224. # This defines the compiler instruction set which depends on the machine type.
  225. config CPU_32v3
  226. bool
  227. config CPU_32v4
  228. bool
  229. config CPU_32v5
  230. bool
  231. config CPU_32v6
  232. bool
  233. # The abort model
  234. config CPU_ABRT_EV4
  235. bool
  236. config CPU_ABRT_EV4T
  237. bool
  238. config CPU_ABRT_LV4T
  239. bool
  240. config CPU_ABRT_EV5T
  241. bool
  242. config CPU_ABRT_EV5TJ
  243. bool
  244. config CPU_ABRT_EV6
  245. bool
  246. # The cache model
  247. config CPU_CACHE_V3
  248. bool
  249. config CPU_CACHE_V4
  250. bool
  251. config CPU_CACHE_V4WT
  252. bool
  253. config CPU_CACHE_V4WB
  254. bool
  255. config CPU_CACHE_V6
  256. bool
  257. config CPU_CACHE_VIVT
  258. bool
  259. config CPU_CACHE_VIPT
  260. bool
  261. # The copy-page model
  262. config CPU_COPY_V3
  263. bool
  264. config CPU_COPY_V4WT
  265. bool
  266. config CPU_COPY_V4WB
  267. bool
  268. config CPU_COPY_V6
  269. bool
  270. # This selects the TLB model
  271. config CPU_TLB_V3
  272. bool
  273. help
  274. ARM Architecture Version 3 TLB.
  275. config CPU_TLB_V4WT
  276. bool
  277. help
  278. ARM Architecture Version 4 TLB with writethrough cache.
  279. config CPU_TLB_V4WB
  280. bool
  281. help
  282. ARM Architecture Version 4 TLB with writeback cache.
  283. config CPU_TLB_V4WBI
  284. bool
  285. help
  286. ARM Architecture Version 4 TLB with writeback cache and invalidate
  287. instruction cache entry.
  288. config CPU_TLB_V6
  289. bool
  290. comment "Processor Features"
  291. config ARM_THUMB
  292. bool "Support Thumb user binaries"
  293. depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_V6
  294. default y
  295. help
  296. Say Y if you want to include kernel support for running user space
  297. Thumb binaries.
  298. The Thumb instruction set is a compressed form of the standard ARM
  299. instruction set resulting in smaller binaries at the expense of
  300. slightly less efficient code.
  301. If you don't know what this all is, saying Y is a safe choice.
  302. config CPU_BIG_ENDIAN
  303. bool "Build big-endian kernel"
  304. depends on ARCH_SUPPORTS_BIG_ENDIAN
  305. help
  306. Say Y if you plan on running a kernel in big-endian mode.
  307. Note that your board must be properly built and your board
  308. port must properly enable any big-endian related features
  309. of your chipset/board/processor.
  310. config CPU_ICACHE_DISABLE
  311. bool "Disable I-Cache"
  312. depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
  313. help
  314. Say Y here to disable the processor instruction cache. Unless
  315. you have a reason not to or are unsure, say N.
  316. config CPU_DCACHE_DISABLE
  317. bool "Disable D-Cache"
  318. depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
  319. help
  320. Say Y here to disable the processor data cache. Unless
  321. you have a reason not to or are unsure, say N.
  322. config CPU_DCACHE_WRITETHROUGH
  323. bool "Force write through D-cache"
  324. depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE
  325. default y if CPU_ARM925T
  326. help
  327. Say Y here to use the data cache in writethrough mode. Unless you
  328. specifically require this or are unsure, say N.
  329. config CPU_CACHE_ROUND_ROBIN
  330. bool "Round robin I and D cache replacement algorithm"
  331. depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
  332. help
  333. Say Y here to use the predictable round-robin cache replacement
  334. policy. Unless you specifically require this or are unsure, say N.
  335. config CPU_BPREDICT_DISABLE
  336. bool "Disable branch prediction"
  337. depends on CPU_ARM1020
  338. help
  339. Say Y here to disable branch prediction. If unsure, say N.
  340. config TLS_REG_EMUL
  341. bool
  342. default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3)
  343. help
  344. An SMP system using a pre-ARMv6 processor (there are apparently
  345. a few prototypes like that in existence) and therefore access to
  346. that required register must be emulated.
  347. config HAS_TLS_REG
  348. bool
  349. depends on !TLS_REG_EMUL
  350. default y if SMP || CPU_32v7
  351. help
  352. This selects support for the CP15 thread register.
  353. It is defined to be available on some ARMv6 processors (including
  354. all SMP capable ARMv6's) or later processors. User space may
  355. assume directly accessing that register and always obtain the
  356. expected value only on ARMv7 and above.
  357. config NEEDS_SYSCALL_FOR_CMPXCHG
  358. bool
  359. default y if SMP && (CPU_32v5 || CPU_32v4 || CPU_32v3)
  360. help
  361. SMP on a pre-ARMv6 processor? Well OK then.
  362. Forget about fast user space cmpxchg support.
  363. It is just not possible.