diff options
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 154 |
1 files changed, 146 insertions, 8 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index b4f220dd5eb8..c0bfb8212b77 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -15,6 +15,7 @@ config CPU_ARM610 | |||
15 | select CPU_32v3 | 15 | select CPU_32v3 |
16 | select CPU_CACHE_V3 | 16 | select CPU_CACHE_V3 |
17 | select CPU_CACHE_VIVT | 17 | select CPU_CACHE_VIVT |
18 | select CPU_CP15_MMU | ||
18 | select CPU_COPY_V3 if MMU | 19 | select CPU_COPY_V3 if MMU |
19 | select CPU_TLB_V3 if MMU | 20 | select CPU_TLB_V3 if MMU |
20 | help | 21 | help |
@@ -24,6 +25,20 @@ config CPU_ARM610 | |||
24 | Say Y if you want support for the ARM610 processor. | 25 | Say Y if you want support for the ARM610 processor. |
25 | Otherwise, say N. | 26 | Otherwise, say N. |
26 | 27 | ||
28 | # ARM7TDMI | ||
29 | config CPU_ARM7TDMI | ||
30 | bool "Support ARM7TDMI processor" | ||
31 | depends on !MMU | ||
32 | select CPU_32v4T | ||
33 | select CPU_ABRT_LV4T | ||
34 | select CPU_CACHE_V4 | ||
35 | help | ||
36 | A 32-bit RISC microprocessor based on the ARM7 processor core | ||
37 | which has no memory control unit and cache. | ||
38 | |||
39 | Say Y if you want support for the ARM7TDMI processor. | ||
40 | Otherwise, say N. | ||
41 | |||
27 | # ARM710 | 42 | # ARM710 |
28 | config CPU_ARM710 | 43 | config CPU_ARM710 |
29 | bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC | 44 | bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC |
@@ -31,6 +46,7 @@ config CPU_ARM710 | |||
31 | select CPU_32v3 | 46 | select CPU_32v3 |
32 | select CPU_CACHE_V3 | 47 | select CPU_CACHE_V3 |
33 | select CPU_CACHE_VIVT | 48 | select CPU_CACHE_VIVT |
49 | select CPU_CP15_MMU | ||
34 | select CPU_COPY_V3 if MMU | 50 | select CPU_COPY_V3 if MMU |
35 | select CPU_TLB_V3 if MMU | 51 | select CPU_TLB_V3 if MMU |
36 | help | 52 | help |
@@ -50,6 +66,7 @@ config CPU_ARM720T | |||
50 | select CPU_ABRT_LV4T | 66 | select CPU_ABRT_LV4T |
51 | select CPU_CACHE_V4 | 67 | select CPU_CACHE_V4 |
52 | select CPU_CACHE_VIVT | 68 | select CPU_CACHE_VIVT |
69 | select CPU_CP15_MMU | ||
53 | select CPU_COPY_V4WT if MMU | 70 | select CPU_COPY_V4WT if MMU |
54 | select CPU_TLB_V4WT if MMU | 71 | select CPU_TLB_V4WT if MMU |
55 | help | 72 | help |
@@ -59,6 +76,36 @@ config CPU_ARM720T | |||
59 | Say Y if you want support for the ARM720T processor. | 76 | Say Y if you want support for the ARM720T processor. |
60 | Otherwise, say N. | 77 | Otherwise, say N. |
61 | 78 | ||
79 | # ARM740T | ||
80 | config CPU_ARM740T | ||
81 | bool "Support ARM740T processor" if ARCH_INTEGRATOR | ||
82 | depends on !MMU | ||
83 | select CPU_32v4T | ||
84 | select CPU_ABRT_LV4T | ||
85 | select CPU_CACHE_V3 # although the core is v4t | ||
86 | select CPU_CP15_MPU | ||
87 | help | ||
88 | A 32-bit RISC processor with 8KB cache or 4KB variants, | ||
89 | write buffer and MPU(Protection Unit) built around | ||
90 | an ARM7TDMI core. | ||
91 | |||
92 | Say Y if you want support for the ARM740T processor. | ||
93 | Otherwise, say N. | ||
94 | |||
95 | # ARM9TDMI | ||
96 | config CPU_ARM9TDMI | ||
97 | bool "Support ARM9TDMI processor" | ||
98 | depends on !MMU | ||
99 | select CPU_32v4T | ||
100 | select CPU_ABRT_NOMMU | ||
101 | select CPU_CACHE_V4 | ||
102 | help | ||
103 | A 32-bit RISC microprocessor based on the ARM9 processor core | ||
104 | which has no memory control unit and cache. | ||
105 | |||
106 | Say Y if you want support for the ARM9TDMI processor. | ||
107 | Otherwise, say N. | ||
108 | |||
62 | # ARM920T | 109 | # ARM920T |
63 | config CPU_ARM920T | 110 | config CPU_ARM920T |
64 | bool "Support ARM920T processor" | 111 | bool "Support ARM920T processor" |
@@ -68,6 +115,7 @@ config CPU_ARM920T | |||
68 | select CPU_ABRT_EV4T | 115 | select CPU_ABRT_EV4T |
69 | select CPU_CACHE_V4WT | 116 | select CPU_CACHE_V4WT |
70 | select CPU_CACHE_VIVT | 117 | select CPU_CACHE_VIVT |
118 | select CPU_CP15_MMU | ||
71 | select CPU_COPY_V4WB if MMU | 119 | select CPU_COPY_V4WB if MMU |
72 | select CPU_TLB_V4WBI if MMU | 120 | select CPU_TLB_V4WBI if MMU |
73 | help | 121 | help |
@@ -89,6 +137,7 @@ config CPU_ARM922T | |||
89 | select CPU_ABRT_EV4T | 137 | select CPU_ABRT_EV4T |
90 | select CPU_CACHE_V4WT | 138 | select CPU_CACHE_V4WT |
91 | select CPU_CACHE_VIVT | 139 | select CPU_CACHE_VIVT |
140 | select CPU_CP15_MMU | ||
92 | select CPU_COPY_V4WB if MMU | 141 | select CPU_COPY_V4WB if MMU |
93 | select CPU_TLB_V4WBI if MMU | 142 | select CPU_TLB_V4WBI if MMU |
94 | help | 143 | help |
@@ -108,6 +157,7 @@ config CPU_ARM925T | |||
108 | select CPU_ABRT_EV4T | 157 | select CPU_ABRT_EV4T |
109 | select CPU_CACHE_V4WT | 158 | select CPU_CACHE_V4WT |
110 | select CPU_CACHE_VIVT | 159 | select CPU_CACHE_VIVT |
160 | select CPU_CP15_MMU | ||
111 | select CPU_COPY_V4WB if MMU | 161 | select CPU_COPY_V4WB if MMU |
112 | select CPU_TLB_V4WBI if MMU | 162 | select CPU_TLB_V4WBI if MMU |
113 | help | 163 | help |
@@ -126,6 +176,7 @@ config CPU_ARM926T | |||
126 | select CPU_32v5 | 176 | select CPU_32v5 |
127 | select CPU_ABRT_EV5TJ | 177 | select CPU_ABRT_EV5TJ |
128 | select CPU_CACHE_VIVT | 178 | select CPU_CACHE_VIVT |
179 | select CPU_CP15_MMU | ||
129 | select CPU_COPY_V4WB if MMU | 180 | select CPU_COPY_V4WB if MMU |
130 | select CPU_TLB_V4WBI if MMU | 181 | select CPU_TLB_V4WBI if MMU |
131 | help | 182 | help |
@@ -136,6 +187,39 @@ config CPU_ARM926T | |||
136 | Say Y if you want support for the ARM926T processor. | 187 | Say Y if you want support for the ARM926T processor. |
137 | Otherwise, say N. | 188 | Otherwise, say N. |
138 | 189 | ||
190 | # ARM940T | ||
191 | config CPU_ARM940T | ||
192 | bool "Support ARM940T processor" if ARCH_INTEGRATOR | ||
193 | depends on !MMU | ||
194 | select CPU_32v4T | ||
195 | select CPU_ABRT_NOMMU | ||
196 | select CPU_CACHE_VIVT | ||
197 | select CPU_CP15_MPU | ||
198 | help | ||
199 | ARM940T is a member of the ARM9TDMI family of general- | ||
200 | purpose microprocessors with MPU and seperate 4KB | ||
201 | instruction and 4KB data cases, each with a 4-word line | ||
202 | length. | ||
203 | |||
204 | Say Y if you want support for the ARM940T processor. | ||
205 | Otherwise, say N. | ||
206 | |||
207 | # ARM946E-S | ||
208 | config CPU_ARM946E | ||
209 | bool "Support ARM946E-S processor" if ARCH_INTEGRATOR | ||
210 | depends on !MMU | ||
211 | select CPU_32v5 | ||
212 | select CPU_ABRT_NOMMU | ||
213 | select CPU_CACHE_VIVT | ||
214 | select CPU_CP15_MPU | ||
215 | help | ||
216 | ARM946E-S is a member of the ARM9E-S family of high- | ||
217 | performance, 32-bit system-on-chip processor solutions. | ||
218 | The TCM and ARMv5TE 32-bit instruction set is supported. | ||
219 | |||
220 | Say Y if you want support for the ARM946E-S processor. | ||
221 | Otherwise, say N. | ||
222 | |||
139 | # ARM1020 - needs validating | 223 | # ARM1020 - needs validating |
140 | config CPU_ARM1020 | 224 | config CPU_ARM1020 |
141 | bool "Support ARM1020T (rev 0) processor" | 225 | bool "Support ARM1020T (rev 0) processor" |
@@ -144,6 +228,7 @@ config CPU_ARM1020 | |||
144 | select CPU_ABRT_EV4T | 228 | select CPU_ABRT_EV4T |
145 | select CPU_CACHE_V4WT | 229 | select CPU_CACHE_V4WT |
146 | select CPU_CACHE_VIVT | 230 | select CPU_CACHE_VIVT |
231 | select CPU_CP15_MMU | ||
147 | select CPU_COPY_V4WB if MMU | 232 | select CPU_COPY_V4WB if MMU |
148 | select CPU_TLB_V4WBI if MMU | 233 | select CPU_TLB_V4WBI if MMU |
149 | help | 234 | help |
@@ -161,6 +246,7 @@ config CPU_ARM1020E | |||
161 | select CPU_ABRT_EV4T | 246 | select CPU_ABRT_EV4T |
162 | select CPU_CACHE_V4WT | 247 | select CPU_CACHE_V4WT |
163 | select CPU_CACHE_VIVT | 248 | select CPU_CACHE_VIVT |
249 | select CPU_CP15_MMU | ||
164 | select CPU_COPY_V4WB if MMU | 250 | select CPU_COPY_V4WB if MMU |
165 | select CPU_TLB_V4WBI if MMU | 251 | select CPU_TLB_V4WBI if MMU |
166 | depends on n | 252 | depends on n |
@@ -172,6 +258,7 @@ config CPU_ARM1022 | |||
172 | select CPU_32v5 | 258 | select CPU_32v5 |
173 | select CPU_ABRT_EV4T | 259 | select CPU_ABRT_EV4T |
174 | select CPU_CACHE_VIVT | 260 | select CPU_CACHE_VIVT |
261 | select CPU_CP15_MMU | ||
175 | select CPU_COPY_V4WB if MMU # can probably do better | 262 | select CPU_COPY_V4WB if MMU # can probably do better |
176 | select CPU_TLB_V4WBI if MMU | 263 | select CPU_TLB_V4WBI if MMU |
177 | help | 264 | help |
@@ -189,6 +276,7 @@ config CPU_ARM1026 | |||
189 | select CPU_32v5 | 276 | select CPU_32v5 |
190 | select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10 | 277 | select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10 |
191 | select CPU_CACHE_VIVT | 278 | select CPU_CACHE_VIVT |
279 | select CPU_CP15_MMU | ||
192 | select CPU_COPY_V4WB if MMU # can probably do better | 280 | select CPU_COPY_V4WB if MMU # can probably do better |
193 | select CPU_TLB_V4WBI if MMU | 281 | select CPU_TLB_V4WBI if MMU |
194 | help | 282 | help |
@@ -207,6 +295,7 @@ config CPU_SA110 | |||
207 | select CPU_ABRT_EV4 | 295 | select CPU_ABRT_EV4 |
208 | select CPU_CACHE_V4WB | 296 | select CPU_CACHE_V4WB |
209 | select CPU_CACHE_VIVT | 297 | select CPU_CACHE_VIVT |
298 | select CPU_CP15_MMU | ||
210 | select CPU_COPY_V4WB if MMU | 299 | select CPU_COPY_V4WB if MMU |
211 | select CPU_TLB_V4WB if MMU | 300 | select CPU_TLB_V4WB if MMU |
212 | help | 301 | help |
@@ -227,16 +316,18 @@ config CPU_SA1100 | |||
227 | select CPU_ABRT_EV4 | 316 | select CPU_ABRT_EV4 |
228 | select CPU_CACHE_V4WB | 317 | select CPU_CACHE_V4WB |
229 | select CPU_CACHE_VIVT | 318 | select CPU_CACHE_VIVT |
319 | select CPU_CP15_MMU | ||
230 | select CPU_TLB_V4WB if MMU | 320 | select CPU_TLB_V4WB if MMU |
231 | 321 | ||
232 | # XScale | 322 | # XScale |
233 | config CPU_XSCALE | 323 | config CPU_XSCALE |
234 | bool | 324 | bool |
235 | depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000 | 325 | depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000 |
236 | default y | 326 | default y |
237 | select CPU_32v5 | 327 | select CPU_32v5 |
238 | select CPU_ABRT_EV5T | 328 | select CPU_ABRT_EV5T |
239 | select CPU_CACHE_VIVT | 329 | select CPU_CACHE_VIVT |
330 | select CPU_CP15_MMU | ||
240 | select CPU_TLB_V4WBI if MMU | 331 | select CPU_TLB_V4WBI if MMU |
241 | 332 | ||
242 | # XScale Core Version 3 | 333 | # XScale Core Version 3 |
@@ -247,6 +338,7 @@ config CPU_XSC3 | |||
247 | select CPU_32v5 | 338 | select CPU_32v5 |
248 | select CPU_ABRT_EV5T | 339 | select CPU_ABRT_EV5T |
249 | select CPU_CACHE_VIVT | 340 | select CPU_CACHE_VIVT |
341 | select CPU_CP15_MMU | ||
250 | select CPU_TLB_V4WBI if MMU | 342 | select CPU_TLB_V4WBI if MMU |
251 | select IO_36 | 343 | select IO_36 |
252 | 344 | ||
@@ -258,6 +350,7 @@ config CPU_V6 | |||
258 | select CPU_ABRT_EV6 | 350 | select CPU_ABRT_EV6 |
259 | select CPU_CACHE_V6 | 351 | select CPU_CACHE_V6 |
260 | select CPU_CACHE_VIPT | 352 | select CPU_CACHE_VIPT |
353 | select CPU_CP15_MMU | ||
261 | select CPU_COPY_V6 if MMU | 354 | select CPU_COPY_V6 if MMU |
262 | select CPU_TLB_V6 if MMU | 355 | select CPU_TLB_V6 if MMU |
263 | 356 | ||
@@ -299,6 +392,9 @@ config CPU_32v6 | |||
299 | bool | 392 | bool |
300 | 393 | ||
301 | # The abort model | 394 | # The abort model |
395 | config CPU_ABRT_NOMMU | ||
396 | bool | ||
397 | |||
302 | config CPU_ABRT_EV4 | 398 | config CPU_ABRT_EV4 |
303 | bool | 399 | bool |
304 | 400 | ||
@@ -380,6 +476,23 @@ config CPU_TLB_V6 | |||
380 | 476 | ||
381 | endif | 477 | endif |
382 | 478 | ||
479 | config CPU_CP15 | ||
480 | bool | ||
481 | help | ||
482 | Processor has the CP15 register. | ||
483 | |||
484 | config CPU_CP15_MMU | ||
485 | bool | ||
486 | select CPU_CP15 | ||
487 | help | ||
488 | Processor has the CP15 register, which has MMU related registers. | ||
489 | |||
490 | config CPU_CP15_MPU | ||
491 | bool | ||
492 | select CPU_CP15 | ||
493 | help | ||
494 | Processor has the CP15 register, which has MPU related registers. | ||
495 | |||
383 | # | 496 | # |
384 | # CPU supports 36-bit I/O | 497 | # CPU supports 36-bit I/O |
385 | # | 498 | # |
@@ -390,7 +503,7 @@ comment "Processor Features" | |||
390 | 503 | ||
391 | config ARM_THUMB | 504 | config ARM_THUMB |
392 | bool "Support Thumb user binaries" | 505 | bool "Support Thumb user binaries" |
393 | depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_V6 | 506 | depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_V6 |
394 | default y | 507 | default y |
395 | help | 508 | help |
396 | Say Y if you want to include kernel support for running user space | 509 | Say Y if you want to include kernel support for running user space |
@@ -411,23 +524,48 @@ config CPU_BIG_ENDIAN | |||
411 | port must properly enable any big-endian related features | 524 | port must properly enable any big-endian related features |
412 | of your chipset/board/processor. | 525 | of your chipset/board/processor. |
413 | 526 | ||
527 | config CPU_HIGH_VECTOR | ||
528 | depends !MMU && CPU_CP15 && !CPU_ARM740T | ||
529 | bool "Select the High exception vector" | ||
530 | default n | ||
531 | help | ||
532 | Say Y here to select high exception vector(0xFFFF0000~). | ||
533 | The exception vector can be vary depending on the platform | ||
534 | design in nommu mode. If your platform needs to select | ||
535 | high exception vector, say Y. | ||
536 | Otherwise or if you are unsure, say N, and the low exception | ||
537 | vector (0x00000000~) will be used. | ||
538 | |||
414 | config CPU_ICACHE_DISABLE | 539 | config CPU_ICACHE_DISABLE |
415 | bool "Disable I-Cache" | 540 | bool "Disable I-Cache (I-bit)" |
416 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 | 541 | depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3) |
417 | help | 542 | help |
418 | Say Y here to disable the processor instruction cache. Unless | 543 | Say Y here to disable the processor instruction cache. Unless |
419 | you have a reason not to or are unsure, say N. | 544 | you have a reason not to or are unsure, say N. |
420 | 545 | ||
421 | config CPU_DCACHE_DISABLE | 546 | config CPU_DCACHE_DISABLE |
422 | bool "Disable D-Cache" | 547 | bool "Disable D-Cache (C-bit)" |
423 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 | 548 | depends on CPU_CP15 |
424 | help | 549 | help |
425 | Say Y here to disable the processor data cache. Unless | 550 | Say Y here to disable the processor data cache. Unless |
426 | you have a reason not to or are unsure, say N. | 551 | you have a reason not to or are unsure, say N. |
427 | 552 | ||
553 | config CPU_DCACHE_SIZE | ||
554 | hex | ||
555 | depends on CPU_ARM740T || CPU_ARM946E | ||
556 | default 0x00001000 if CPU_ARM740T | ||
557 | default 0x00002000 # default size for ARM946E-S | ||
558 | help | ||
559 | Some cores are synthesizable to have various sized cache. For | ||
560 | ARM946E-S case, it can vary from 0KB to 1MB. | ||
561 | To support such cache operations, it is efficient to know the size | ||
562 | before compile time. | ||
563 | If your SoC is configured to have a different size, define the value | ||
564 | here with proper conditions. | ||
565 | |||
428 | config CPU_DCACHE_WRITETHROUGH | 566 | config CPU_DCACHE_WRITETHROUGH |
429 | bool "Force write through D-cache" | 567 | bool "Force write through D-cache" |
430 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE | 568 | depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE |
431 | default y if CPU_ARM925T | 569 | default y if CPU_ARM925T |
432 | help | 570 | help |
433 | Say Y here to use the data cache in writethrough mode. Unless you | 571 | Say Y here to use the data cache in writethrough mode. Unless you |
@@ -435,7 +573,7 @@ config CPU_DCACHE_WRITETHROUGH | |||
435 | 573 | ||
436 | config CPU_CACHE_ROUND_ROBIN | 574 | config CPU_CACHE_ROUND_ROBIN |
437 | bool "Round robin I and D cache replacement algorithm" | 575 | bool "Round robin I and D cache replacement algorithm" |
438 | depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE) | 576 | depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE) |
439 | help | 577 | help |
440 | Say Y here to use the predictable round-robin cache replacement | 578 | Say Y here to use the predictable round-robin cache replacement |
441 | policy. Unless you specifically require this or are unsure, say N. | 579 | policy. Unless you specifically require this or are unsure, say N. |