blob: 9f860aa9c908c7a68bb4b37fd788468fc4fdf765 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001comment "Processor Type"
2
3config CPU_32
4 bool
5 default y
6
7# Select CPU types depending on the architecture selected. This selects
8# which CPUs we support in the kernel image, and the compiler instruction
9# optimiser behaviour.
10
11# ARM610
12config CPU_ARM610
13 bool "Support ARM610 processor"
14 depends on ARCH_RPC
15 select CPU_32v3
16 select CPU_CACHE_V3
17 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090018 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010019 select CPU_COPY_V3 if MMU
20 select CPU_TLB_V3 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 help
22 The ARM610 is the successor to the ARM3 processor
23 and was produced by VLSI Technology Inc.
24
25 Say Y if you want support for the ARM610 processor.
26 Otherwise, say N.
27
Hyok S. Choi07e0da72006-09-26 17:37:36 +090028# ARM7TDMI
29config CPU_ARM7TDMI
30 bool "Support ARM7TDMI processor"
31 select CPU_32v4T
32 select CPU_ABRT_LV4T
33 select CPU_CACHE_V4
34 help
35 A 32-bit RISC microprocessor based on the ARM7 processor core
36 which has no memory control unit and cache.
37
38 Say Y if you want support for the ARM7TDMI processor.
39 Otherwise, say N.
40
Linus Torvalds1da177e2005-04-16 15:20:36 -070041# ARM710
42config CPU_ARM710
43 bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
44 default y if ARCH_CLPS7500
45 select CPU_32v3
46 select CPU_CACHE_V3
47 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090048 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010049 select CPU_COPY_V3 if MMU
50 select CPU_TLB_V3 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070051 help
52 A 32-bit RISC microprocessor based on the ARM7 processor core
53 designed by Advanced RISC Machines Ltd. The ARM710 is the
54 successor to the ARM610 processor. It was released in
55 July 1994 by VLSI Technology Inc.
56
57 Say Y if you want support for the ARM710 processor.
58 Otherwise, say N.
59
60# ARM720T
61config CPU_ARM720T
62 bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
63 default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
Lennert Buytenhek260e98e2006-08-28 12:51:20 +010064 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -070065 select CPU_ABRT_LV4T
66 select CPU_CACHE_V4
67 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090068 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010069 select CPU_COPY_V4WT if MMU
70 select CPU_TLB_V4WT if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 help
72 A 32-bit RISC processor with 8kByte Cache, Write Buffer and
73 MMU built around an ARM7TDMI core.
74
75 Say Y if you want support for the ARM720T processor.
76 Otherwise, say N.
77
78# ARM920T
79config CPU_ARM920T
Ben Dooks3434d9d2006-06-24 21:21:28 +010080 bool "Support ARM920T processor"
81 depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
82 default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
Lennert Buytenhek260e98e2006-08-28 12:51:20 +010083 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -070084 select CPU_ABRT_EV4T
85 select CPU_CACHE_V4WT
86 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090087 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010088 select CPU_COPY_V4WB if MMU
89 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070090 help
91 The ARM920T is licensed to be produced by numerous vendors,
92 and is used in the Maverick EP9312 and the Samsung S3C2410.
93
94 More information on the Maverick EP9312 at
95 <http://linuxdevices.com/products/PD2382866068.html>.
96
97 Say Y if you want support for the ARM920T processor.
98 Otherwise, say N.
99
100# ARM922T
101config CPU_ARM922T
102 bool "Support ARM922T processor" if ARCH_INTEGRATOR
Russell King0fec53a2006-01-08 22:37:46 +0000103 depends on ARCH_LH7A40X || ARCH_INTEGRATOR
104 default y if ARCH_LH7A40X
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100105 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -0700106 select CPU_ABRT_EV4T
107 select CPU_CACHE_V4WT
108 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900109 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100110 select CPU_COPY_V4WB if MMU
111 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112 help
113 The ARM922T is a version of the ARM920T, but with smaller
114 instruction and data caches. It is used in Altera's
115 Excalibur XA device family.
116
117 Say Y if you want support for the ARM922T processor.
118 Otherwise, say N.
119
120# ARM925T
121config CPU_ARM925T
Tony Lindgrenb288f752005-07-10 19:58:08 +0100122 bool "Support ARM925T processor" if ARCH_OMAP1
Tony Lindgren3179a012005-11-10 14:26:48 +0000123 depends on ARCH_OMAP15XX
124 default y if ARCH_OMAP15XX
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100125 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -0700126 select CPU_ABRT_EV4T
127 select CPU_CACHE_V4WT
128 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900129 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100130 select CPU_COPY_V4WB if MMU
131 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132 help
133 The ARM925T is a mix between the ARM920T and ARM926T, but with
134 different instruction and data caches. It is used in TI's OMAP
135 device family.
136
137 Say Y if you want support for the ARM925T processor.
138 Otherwise, say N.
139
140# ARM926T
141config CPU_ARM926T
Catalin Marinas8ad68bb2005-10-31 14:25:02 +0000142 bool "Support ARM926T processor"
Andrew Victor8fc5ffa2006-06-29 16:06:33 +0100143 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
144 default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
Linus Torvalds1da177e2005-04-16 15:20:36 -0700145 select CPU_32v5
146 select CPU_ABRT_EV5TJ
147 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900148 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100149 select CPU_COPY_V4WB if MMU
150 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700151 help
152 This is a variant of the ARM920. It has slightly different
153 instruction sequences for cache and TLB operations. Curiously,
154 there is no documentation on it at the ARM corporate website.
155
156 Say Y if you want support for the ARM926T processor.
157 Otherwise, say N.
158
159# ARM1020 - needs validating
160config CPU_ARM1020
161 bool "Support ARM1020T (rev 0) processor"
162 depends on ARCH_INTEGRATOR
163 select CPU_32v5
164 select CPU_ABRT_EV4T
165 select CPU_CACHE_V4WT
166 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900167 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100168 select CPU_COPY_V4WB if MMU
169 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700170 help
171 The ARM1020 is the 32K cached version of the ARM10 processor,
172 with an addition of a floating-point unit.
173
174 Say Y if you want support for the ARM1020 processor.
175 Otherwise, say N.
176
177# ARM1020E - needs validating
178config CPU_ARM1020E
179 bool "Support ARM1020E processor"
180 depends on ARCH_INTEGRATOR
181 select CPU_32v5
182 select CPU_ABRT_EV4T
183 select CPU_CACHE_V4WT
184 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900185 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100186 select CPU_COPY_V4WB if MMU
187 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700188 depends on n
189
190# ARM1022E
191config CPU_ARM1022
192 bool "Support ARM1022E processor"
193 depends on ARCH_INTEGRATOR
194 select CPU_32v5
195 select CPU_ABRT_EV4T
196 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900197 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100198 select CPU_COPY_V4WB if MMU # can probably do better
199 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700200 help
201 The ARM1022E is an implementation of the ARMv5TE architecture
202 based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
203 embedded trace macrocell, and a floating-point unit.
204
205 Say Y if you want support for the ARM1022E processor.
206 Otherwise, say N.
207
208# ARM1026EJ-S
209config CPU_ARM1026
210 bool "Support ARM1026EJ-S processor"
211 depends on ARCH_INTEGRATOR
212 select CPU_32v5
213 select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
214 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900215 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100216 select CPU_COPY_V4WB if MMU # can probably do better
217 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700218 help
219 The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
220 based upon the ARM10 integer core.
221
222 Say Y if you want support for the ARM1026EJ-S processor.
223 Otherwise, say N.
224
225# SA110
226config CPU_SA110
227 bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
228 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
229 select CPU_32v3 if ARCH_RPC
230 select CPU_32v4 if !ARCH_RPC
231 select CPU_ABRT_EV4
232 select CPU_CACHE_V4WB
233 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900234 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100235 select CPU_COPY_V4WB if MMU
236 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700237 help
238 The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
239 is available at five speeds ranging from 100 MHz to 233 MHz.
240 More information is available at
241 <http://developer.intel.com/design/strong/sa110.htm>.
242
243 Say Y if you want support for the SA-110 processor.
244 Otherwise, say N.
245
246# SA1100
247config CPU_SA1100
248 bool
249 depends on ARCH_SA1100
250 default y
251 select CPU_32v4
252 select CPU_ABRT_EV4
253 select CPU_CACHE_V4WB
254 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900255 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100256 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700257
258# XScale
259config CPU_XSCALE
260 bool
Lennert Buytenhek3f7e5812006-09-18 23:10:26 +0100261 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
Linus Torvalds1da177e2005-04-16 15:20:36 -0700262 default y
263 select CPU_32v5
264 select CPU_ABRT_EV5T
265 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900266 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100267 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700268
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100269# XScale Core Version 3
270config CPU_XSC3
271 bool
272 depends on ARCH_IXP23XX
273 default y
274 select CPU_32v5
275 select CPU_ABRT_EV5T
276 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900277 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100278 select CPU_TLB_V4WBI if MMU
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100279 select IO_36
280
Linus Torvalds1da177e2005-04-16 15:20:36 -0700281# ARMv6
282config CPU_V6
283 bool "Support ARM V6 processor"
Tony Lindgren1dbae812005-11-10 14:26:51 +0000284 depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700285 select CPU_32v6
286 select CPU_ABRT_EV6
287 select CPU_CACHE_V6
288 select CPU_CACHE_VIPT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900289 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100290 select CPU_COPY_V6 if MMU
291 select CPU_TLB_V6 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700292
Russell King4a5f79e2005-11-03 15:48:21 +0000293# ARMv6k
294config CPU_32v6K
295 bool "Support ARM V6K processor extensions" if !SMP
296 depends on CPU_V6
297 default y if SMP
298 help
299 Say Y here if your ARMv6 processor supports the 'K' extension.
300 This enables the kernel to use some instructions not present
301 on previous processors, and as such a kernel build with this
302 enabled will not boot on processors with do not support these
303 instructions.
304
Linus Torvalds1da177e2005-04-16 15:20:36 -0700305# Figure out what processor architecture version we should be using.
306# This defines the compiler instruction set which depends on the machine type.
307config CPU_32v3
308 bool
Russell King60b6cf62006-06-19 17:36:43 +0100309 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000310 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700311
312config CPU_32v4
313 bool
Russell King60b6cf62006-06-19 17:36:43 +0100314 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000315 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700316
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100317config CPU_32v4T
318 bool
319 select TLS_REG_EMUL if SMP || !MMU
320 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
321
Linus Torvalds1da177e2005-04-16 15:20:36 -0700322config CPU_32v5
323 bool
Russell King60b6cf62006-06-19 17:36:43 +0100324 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000325 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326
327config CPU_32v6
328 bool
329
330# The abort model
331config CPU_ABRT_EV4
332 bool
333
334config CPU_ABRT_EV4T
335 bool
336
337config CPU_ABRT_LV4T
338 bool
339
340config CPU_ABRT_EV5T
341 bool
342
343config CPU_ABRT_EV5TJ
344 bool
345
346config CPU_ABRT_EV6
347 bool
348
349# The cache model
350config CPU_CACHE_V3
351 bool
352
353config CPU_CACHE_V4
354 bool
355
356config CPU_CACHE_V4WT
357 bool
358
359config CPU_CACHE_V4WB
360 bool
361
362config CPU_CACHE_V6
363 bool
364
365config CPU_CACHE_VIVT
366 bool
367
368config CPU_CACHE_VIPT
369 bool
370
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100371if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372# The copy-page model
373config CPU_COPY_V3
374 bool
375
376config CPU_COPY_V4WT
377 bool
378
379config CPU_COPY_V4WB
380 bool
381
382config CPU_COPY_V6
383 bool
384
385# This selects the TLB model
386config CPU_TLB_V3
387 bool
388 help
389 ARM Architecture Version 3 TLB.
390
391config CPU_TLB_V4WT
392 bool
393 help
394 ARM Architecture Version 4 TLB with writethrough cache.
395
396config CPU_TLB_V4WB
397 bool
398 help
399 ARM Architecture Version 4 TLB with writeback cache.
400
401config CPU_TLB_V4WBI
402 bool
403 help
404 ARM Architecture Version 4 TLB with writeback cache and invalidate
405 instruction cache entry.
406
407config CPU_TLB_V6
408 bool
409
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100410endif
411
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900412config CPU_CP15
413 bool
414 help
415 Processor has the CP15 register.
416
417config CPU_CP15_MMU
418 bool
419 select CPU_CP15
420 help
421 Processor has the CP15 register, which has MMU related registers.
422
423config CPU_CP15_MPU
424 bool
425 select CPU_CP15
426 help
427 Processor has the CP15 register, which has MPU related registers.
428
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100429#
430# CPU supports 36-bit I/O
431#
432config IO_36
433 bool
434
Linus Torvalds1da177e2005-04-16 15:20:36 -0700435comment "Processor Features"
436
437config ARM_THUMB
438 bool "Support Thumb user binaries"
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100439 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700440 default y
441 help
442 Say Y if you want to include kernel support for running user space
443 Thumb binaries.
444
445 The Thumb instruction set is a compressed form of the standard ARM
446 instruction set resulting in smaller binaries at the expense of
447 slightly less efficient code.
448
449 If you don't know what this all is, saying Y is a safe choice.
450
451config CPU_BIG_ENDIAN
452 bool "Build big-endian kernel"
453 depends on ARCH_SUPPORTS_BIG_ENDIAN
454 help
455 Say Y if you plan on running a kernel in big-endian mode.
456 Note that your board must be properly built and your board
457 port must properly enable any big-endian related features
458 of your chipset/board/processor.
459
460config CPU_ICACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900461 bool "Disable I-Cache (I-bit)"
462 depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700463 help
464 Say Y here to disable the processor instruction cache. Unless
465 you have a reason not to or are unsure, say N.
466
467config CPU_DCACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900468 bool "Disable D-Cache (C-bit)"
469 depends on CPU_CP15
Linus Torvalds1da177e2005-04-16 15:20:36 -0700470 help
471 Say Y here to disable the processor data cache. Unless
472 you have a reason not to or are unsure, say N.
473
474config CPU_DCACHE_WRITETHROUGH
475 bool "Force write through D-cache"
Catalin Marinase03eb522005-10-05 23:06:36 +0100476 depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700477 default y if CPU_ARM925T
478 help
479 Say Y here to use the data cache in writethrough mode. Unless you
480 specifically require this or are unsure, say N.
481
482config CPU_CACHE_ROUND_ROBIN
483 bool "Round robin I and D cache replacement algorithm"
484 depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
485 help
486 Say Y here to use the predictable round-robin cache replacement
487 policy. Unless you specifically require this or are unsure, say N.
488
489config CPU_BPREDICT_DISABLE
490 bool "Disable branch prediction"
Catalin Marinase03eb522005-10-05 23:06:36 +0100491 depends on CPU_ARM1020 || CPU_V6
Linus Torvalds1da177e2005-04-16 15:20:36 -0700492 help
493 Say Y here to disable branch prediction. If unsure, say N.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100494
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100495config TLS_REG_EMUL
496 bool
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100497 help
Nicolas Pitre70489c82005-05-12 19:27:12 +0100498 An SMP system using a pre-ARMv6 processor (there are apparently
499 a few prototypes like that in existence) and therefore access to
500 that required register must be emulated.
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100501
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100502config HAS_TLS_REG
503 bool
Nicolas Pitre70489c82005-05-12 19:27:12 +0100504 depends on !TLS_REG_EMUL
505 default y if SMP || CPU_32v7
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100506 help
507 This selects support for the CP15 thread register.
Nicolas Pitre70489c82005-05-12 19:27:12 +0100508 It is defined to be available on some ARMv6 processors (including
509 all SMP capable ARMv6's) or later processors. User space may
510 assume directly accessing that register and always obtain the
511 expected value only on ARMv7 and above.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100512
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100513config NEEDS_SYSCALL_FOR_CMPXCHG
514 bool
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100515 help
516 SMP on a pre-ARMv6 processor? Well OK then.
517 Forget about fast user space cmpxchg support.
518 It is just not possible.
519