Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  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_EP93XX || ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
  57. default y if ARCH_S3C2410 || ARCH_AT91RM9200
  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_LH7A40X || ARCH_INTEGRATOR
  75. default y if 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_OMAP15XX
  92. default y if ARCH_OMAP15XX
  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"
  108. depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB
  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 || MACH_REALVIEW_EB || ARCH_OMAP2
  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. # ARMv6k
  224. config CPU_32v6K
  225. bool "Support ARM V6K processor extensions" if !SMP
  226. depends on CPU_V6
  227. default y if SMP
  228. help
  229. Say Y here if your ARMv6 processor supports the 'K' extension.
  230. This enables the kernel to use some instructions not present
  231. on previous processors, and as such a kernel build with this
  232. enabled will not boot on processors with do not support these
  233. instructions.
  234. # Figure out what processor architecture version we should be using.
  235. # This defines the compiler instruction set which depends on the machine type.
  236. config CPU_32v3
  237. bool
  238. select TLS_REG_EMUL if SMP
  239. select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
  240. config CPU_32v4
  241. bool
  242. select TLS_REG_EMUL if SMP
  243. select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
  244. config CPU_32v5
  245. bool
  246. select TLS_REG_EMUL if SMP
  247. select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
  248. config CPU_32v6
  249. bool
  250. # The abort model
  251. config CPU_ABRT_EV4
  252. bool
  253. config CPU_ABRT_EV4T
  254. bool
  255. config CPU_ABRT_LV4T
  256. bool
  257. config CPU_ABRT_EV5T
  258. bool
  259. config CPU_ABRT_EV5TJ
  260. bool
  261. config CPU_ABRT_EV6
  262. bool
  263. # The cache model
  264. config CPU_CACHE_V3
  265. bool
  266. config CPU_CACHE_V4
  267. bool
  268. config CPU_CACHE_V4WT
  269. bool
  270. config CPU_CACHE_V4WB
  271. bool
  272. config CPU_CACHE_V6
  273. bool
  274. config CPU_CACHE_VIVT
  275. bool
  276. config CPU_CACHE_VIPT
  277. bool
  278. # The copy-page model
  279. config CPU_COPY_V3
  280. bool
  281. config CPU_COPY_V4WT
  282. bool
  283. config CPU_COPY_V4WB
  284. bool
  285. config CPU_COPY_V6
  286. bool
  287. # This selects the TLB model
  288. config CPU_TLB_V3
  289. bool
  290. help
  291. ARM Architecture Version 3 TLB.
  292. config CPU_TLB_V4WT
  293. bool
  294. help
  295. ARM Architecture Version 4 TLB with writethrough cache.
  296. config CPU_TLB_V4WB
  297. bool
  298. help
  299. ARM Architecture Version 4 TLB with writeback cache.
  300. config CPU_TLB_V4WBI
  301. bool
  302. help
  303. ARM Architecture Version 4 TLB with writeback cache and invalidate
  304. instruction cache entry.
  305. config CPU_TLB_V6
  306. bool
  307. comment "Processor Features"
  308. config ARM_THUMB
  309. bool "Support Thumb user binaries"
  310. depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_V6
  311. default y
  312. help
  313. Say Y if you want to include kernel support for running user space
  314. Thumb binaries.
  315. The Thumb instruction set is a compressed form of the standard ARM
  316. instruction set resulting in smaller binaries at the expense of
  317. slightly less efficient code.
  318. If you don't know what this all is, saying Y is a safe choice.
  319. config CPU_BIG_ENDIAN
  320. bool "Build big-endian kernel"
  321. depends on ARCH_SUPPORTS_BIG_ENDIAN
  322. help
  323. Say Y if you plan on running a kernel in big-endian mode.
  324. Note that your board must be properly built and your board
  325. port must properly enable any big-endian related features
  326. of your chipset/board/processor.
  327. config CPU_ICACHE_DISABLE
  328. bool "Disable I-Cache"
  329. depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
  330. help
  331. Say Y here to disable the processor instruction cache. Unless
  332. you have a reason not to or are unsure, say N.
  333. config CPU_DCACHE_DISABLE
  334. bool "Disable D-Cache"
  335. depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
  336. help
  337. Say Y here to disable the processor data cache. Unless
  338. you have a reason not to or are unsure, say N.
  339. config CPU_DCACHE_WRITETHROUGH
  340. bool "Force write through D-cache"
  341. depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
  342. default y if CPU_ARM925T
  343. help
  344. Say Y here to use the data cache in writethrough mode. Unless you
  345. specifically require this or are unsure, say N.
  346. config CPU_CACHE_ROUND_ROBIN
  347. bool "Round robin I and D cache replacement algorithm"
  348. depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
  349. help
  350. Say Y here to use the predictable round-robin cache replacement
  351. policy. Unless you specifically require this or are unsure, say N.
  352. config CPU_BPREDICT_DISABLE
  353. bool "Disable branch prediction"
  354. depends on CPU_ARM1020 || CPU_V6
  355. help
  356. Say Y here to disable branch prediction. If unsure, say N.
  357. config TLS_REG_EMUL
  358. bool
  359. help
  360. An SMP system using a pre-ARMv6 processor (there are apparently
  361. a few prototypes like that in existence) and therefore access to
  362. that required register must be emulated.
  363. config HAS_TLS_REG
  364. bool
  365. depends on !TLS_REG_EMUL
  366. default y if SMP || CPU_32v7
  367. help
  368. This selects support for the CP15 thread register.
  369. It is defined to be available on some ARMv6 processors (including
  370. all SMP capable ARMv6's) or later processors. User space may
  371. assume directly accessing that register and always obtain the
  372. expected value only on ARMv7 and above.
  373. config NEEDS_SYSCALL_FOR_CMPXCHG
  374. bool
  375. help
  376. SMP on a pre-ARMv6 processor? Well OK then.
  377. Forget about fast user space cmpxchg support.
  378. It is just not possible.