Kconfig 14 KB

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