Kconfig 64.6 KB
Newer Older
Linus Torvalds's avatar
Linus Torvalds committed
1
2
3
config ARM
	bool
	default y
4
	select ARCH_CLOCKSOURCE_DATA
5
	select ARCH_HAS_DEBUG_VIRTUAL
6
	select ARCH_HAS_DEVMEM_IS_ALLOWED
7
	select ARCH_HAS_ELF_RANDOMIZE
8
	select ARCH_HAS_SET_MEMORY
9
10
	select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL
	select ARCH_HAS_STRICT_MODULE_RWX if MMU
11
	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
Russell King's avatar
Russell King committed
12
	select ARCH_HAVE_CUSTOM_GPIO_H
13
	select ARCH_HAS_GCOV_PROFILE_ALL
14
	select ARCH_MIGHT_HAVE_PC_PARPORT
15
16
	select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
	select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
17
	select ARCH_SUPPORTS_ATOMIC_RMW
18
	select ARCH_USE_BUILTIN_BSWAP
19
	select ARCH_USE_CMPXCHG_LOCKREF
20
	select ARCH_WANT_IPC_PARSE_VERSION
21
	select BUILDTIME_EXTABLE_SORT if MMU
Russell King's avatar
Russell King committed
22
	select CLONE_BACKWARDS
23
	select CPU_PM if (SUSPEND || CPU_IDLE)
24
	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
25
26
	select EDAC_SUPPORT
	select EDAC_ATOMIC_SCRUB
27
	select GENERIC_ALLOCATOR
28
	select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
29
	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
30
	select GENERIC_CPU_AUTOPROBE
31
	select GENERIC_EARLY_IOREMAP
Russell King's avatar
Russell King committed
32
	select GENERIC_IDLE_POLL_SETUP
33
34
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
35
	select GENERIC_IRQ_SHOW_LEVEL
36
	select GENERIC_PCI_IOMAP
37
	select GENERIC_SCHED_CLOCK
38
39
40
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER
41
	select HANDLE_DOMAIN_IRQ
42
	select HARDIRQS_SW_RESEND
43
	select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
44
	select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
45
46
	select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
	select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
47
	select HAVE_ARCH_MMAP_RND_BITS if MMU
48
	select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
49
	select HAVE_ARCH_TRACEHOOK
50
	select HAVE_ARM_SMCCC if CPU_V7
51
	select HAVE_CBPF_JIT
52
	select HAVE_CC_STACKPROTECTOR
Russell King's avatar
Russell King committed
53
	select HAVE_CONTEXT_TRACKING
54
55
56
57
	select HAVE_C_RECORDMCOUNT
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DMA_API_DEBUG
	select HAVE_DMA_CONTIGUOUS if MMU
58
	select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) && !CPU_ENDIAN_BE32 && MMU
59
	select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
Jiri Slaby's avatar
Jiri Slaby committed
60
	select HAVE_EXIT_THREAD
61
	select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
62
	select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
63
	select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
Emese Revfy's avatar
Emese Revfy committed
64
	select HAVE_GCC_PLUGINS
65
	select HAVE_GENERIC_DMA_COHERENT
66
67
	select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
	select HAVE_IDE if PCI || ISA || PCMCIA
68
	select HAVE_IRQ_TIME_ACCOUNTING
69
	select HAVE_KERNEL_GZIP
70
	select HAVE_KERNEL_LZ4
71
	select HAVE_KERNEL_LZMA
72
	select HAVE_KERNEL_LZO
73
	select HAVE_KERNEL_XZ
74
	select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
75
76
	select HAVE_KRETPROBES if (HAVE_KPROBES)
	select HAVE_MEMBLOCK
77
	select HAVE_MOD_ARCH_SPECIFIC
78
	select HAVE_NMI
79
	select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
80
	select HAVE_OPTPROBES if !THUMB2_KERNEL
81
	select HAVE_PERF_EVENTS
82
83
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
84
	select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
85
	select HAVE_REGS_AND_STACK_ACCESS_API
86
	select HAVE_SYSCALL_TRACEPOINTS
87
	select HAVE_UID16
88
	select HAVE_VIRT_CPU_ACCOUNTING_GEN
89
	select IRQ_FORCED_THREADING
Russell King's avatar
Russell King committed
90
	select MODULES_USE_ELF_REL
91
	select NO_BOOTMEM
92
93
	select OF_EARLY_FLATTREE if OF
	select OF_RESERVED_MEM if OF
Russell King's avatar
Russell King committed
94
95
	select OLD_SIGACTION
	select OLD_SIGSUSPEND3
96
97
98
	select PERF_USE_VMALLOC
	select RTC_LIB
	select SYS_SUPPORTS_APM_EMULATION
Russell King's avatar
Russell King committed
99
100
	# Above selects are sorted alphabetically; please add new ones
	# according to that.  Thanks.
Linus Torvalds's avatar
Linus Torvalds committed
101
102
	help
	  The ARM series is a line of low-power-consumption RISC chip designs
103
	  licensed by ARM Ltd and targeted at embedded applications and
Linus Torvalds's avatar
Linus Torvalds committed
104
	  handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
105
	  manufactured, but legacy ARM-based PC hardware remains popular in
Linus Torvalds's avatar
Linus Torvalds committed
106
107
108
	  Europe.  There is an ARM Linux project with a web page at
	  <http://www.arm.linux.org.uk/>.

109
config ARM_HAS_SG_CHAIN
110
	select ARCH_HAS_SG_CHAIN
111
112
	bool

113
114
115
116
117
config NEED_SG_DMA_LENGTH
	bool

config ARM_DMA_USE_IOMMU
	bool
118
119
	select ARM_HAS_SG_CHAIN
	select NEED_SG_DMA_LENGTH
120

121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
if ARM_DMA_USE_IOMMU

config ARM_DMA_IOMMU_ALIGNMENT
	int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers"
	range 4 9
	default 8
	help
	  DMA mapping framework by default aligns all buffers to the smallest
	  PAGE_SIZE order which is greater than or equal to the requested buffer
	  size. This works well for buffers up to a few hundreds kilobytes, but
	  for larger buffers it just a waste of address space. Drivers which has
	  relatively small addressing window (like 64Mib) might run out of
	  virtual space with just a few allocations.

	  With this parameter you can specify the maximum PAGE_SIZE order for
	  DMA IOMMU buffers. Larger buffers will be aligned only to this
	  specified order. The order is expressed as a power of two multiplied
	  by the PAGE_SIZE.

endif

142
143
144
config MIGHT_HAVE_PCI
	bool

145
146
147
config SYS_SUPPORTS_APM_EMULATION
	bool

148
149
150
151
config HAVE_TCM
	bool
	select GENERIC_ALLOCATOR

152
153
154
config HAVE_PROC_CPU
	bool

155
config NO_IOPORT_MAP
Al Viro's avatar
Al Viro committed
156
157
	bool

Linus Torvalds's avatar
Linus Torvalds committed
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
config EISA
	bool
	---help---
	  The Extended Industry Standard Architecture (EISA) bus was
	  developed as an open alternative to the IBM MicroChannel bus.

	  The EISA bus provided some of the features of the IBM MicroChannel
	  bus while maintaining backward compatibility with cards made for
	  the older ISA bus.  The EISA bus saw limited use between 1988 and
	  1995 when it was made obsolete by the PCI bus.

	  Say Y here if you are building a kernel for an EISA-based machine.

	  Otherwise, say N.

config SBUS
	bool

176
177
178
179
180
181
182
183
config STACKTRACE_SUPPORT
	bool
	default y

config LOCKDEP_SUPPORT
	bool
	default y

Russell King's avatar
Russell King committed
184
185
config TRACE_IRQFLAGS_SUPPORT
	bool
186
	default !CPU_V7M
Russell King's avatar
Russell King committed
187

Linus Torvalds's avatar
Linus Torvalds committed
188
189
config RWSEM_XCHGADD_ALGORITHM
	bool
190
	default y
Linus Torvalds's avatar
Linus Torvalds committed
191

192
193
194
195
196
197
config ARCH_HAS_ILOG2_U32
	bool

config ARCH_HAS_ILOG2_U64
	bool

198
199
200
config ARCH_HAS_BANDGAP
	bool

201
202
203
config FIX_EARLYCON_MEM
	def_bool y if MMU

204
205
206
207
config GENERIC_HWEIGHT
	bool
	default y

Linus Torvalds's avatar
Linus Torvalds committed
208
209
210
211
config GENERIC_CALIBRATE_DELAY
	bool
	default y

212
213
214
config ARCH_MAY_HAVE_PC_FDC
	bool

215
216
217
config ZONE_DMA
	bool

218
219
220
config NEED_DMA_MAP_STATE
       def_bool y

David A. Long's avatar
David A. Long committed
221
222
223
config ARCH_SUPPORTS_UPROBES
	def_bool y

224
225
226
config ARCH_HAS_DMA_SET_COHERENT_MASK
	bool

Linus Torvalds's avatar
Linus Torvalds committed
227
228
229
230
231
232
config GENERIC_ISA_DMA
	bool

config FIQ
	bool

233
234
235
config NEED_RET_TO_USER
	bool

236
237
238
config ARCH_MTD_XIP
	bool

239
240
config VECTORS_BASE
	hex
241
	default 0xffff0000 if MMU || CPU_HIGH_VECTOR
242
243
244
	default DRAM_BASE if REMAP_VECTORS_TO_RAM
	default 0x00000000
	help
Russell King's avatar
Russell King committed
245
246
	  The base address of exception vectors.  This must be two pages
	  in size.
247

248
config ARM_PATCH_PHYS_VIRT
249
250
	bool "Patch physical to virtual translations at runtime" if EMBEDDED
	default y
251
	depends on !XIP_KERNEL && MMU
252
	help
253
254
255
	  Patch phys-to-virt and virt-to-phys translation functions at
	  boot and module load time according to the position of the
	  kernel in system memory.
256

257
	  This can only be used with non-XIP MMU kernels where the base
258
	  of physical memory is at a 16MB boundary.
259

260
261
262
	  Only disable this option if you know that you do not require
	  this feature (eg, building a kernel for a single machine) and
	  you need to shrink the kernel to the minimal size.
263

264
265
266
267
268
269
270
config NEED_MACH_IO_H
	bool
	help
	  Select this when mach/io.h is required to provide special
	  definitions for this platform.  The need for mach/io.h should
	  be avoided when possible.

271
config NEED_MACH_MEMORY_H
272
273
	bool
	help
274
275
276
	  Select this when mach/memory.h is required to provide special
	  definitions for this platform.  The need for mach/memory.h should
	  be avoided when possible.
277

278
config PHYS_OFFSET
279
	hex "Physical address of main memory" if MMU
280
	depends on !ARM_PATCH_PHYS_VIRT
281
	default DRAM_BASE if !MMU
282
283
284
285
286
	default 0x00000000 if ARCH_EBSA110 || \
			ARCH_FOOTBRIDGE || \
			ARCH_INTEGRATOR || \
			ARCH_IOP13XX || \
			ARCH_KS8695 || \
287
			ARCH_REALVIEW
288
289
	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
	default 0x20000000 if ARCH_S5PV210
290
	default 0xc0000000 if ARCH_SA1100
291
	help
292
293
	  Please provide the physical address corresponding to the
	  location of main memory in your system.
294

295
296
297
298
config GENERIC_BUG
	def_bool y
	depends on BUG

299
300
301
302
303
config PGTABLE_LEVELS
	int
	default 3 if ARM_LPAE
	default 2

Linus Torvalds's avatar
Linus Torvalds committed
304
305
source "init/Kconfig"

306
307
source "kernel/Kconfig.freezer"

Linus Torvalds's avatar
Linus Torvalds committed
308
309
menu "System Type"

310
311
312
313
314
315
316
config MMU
	bool "MMU-based Paged Memory Management Support"
	default y
	help
	  Select if you want MMU-based virtualised addressing space
	  support by paged memory management. If unsure, say 'Y'.

317
318
319
320
321
322
323
324
config ARCH_MMAP_RND_BITS_MIN
	default 8

config ARCH_MMAP_RND_BITS_MAX
	default 14 if PAGE_OFFSET=0x40000000
	default 15 if PAGE_OFFSET=0x80000000
	default 16

325
326
327
328
#
# The "ARM system type" choice list is ordered alphabetically by option
# text.  Please add new entries in the option alphabetic order.
#
Linus Torvalds's avatar
Linus Torvalds committed
329
330
choice
	prompt "ARM system type"
331
	default ARM_SINGLE_ARMV7M if !MMU
332
	default ARCH_MULTIPLATFORM if MMU
Linus Torvalds's avatar
Linus Torvalds committed
333

334
335
config ARCH_MULTIPLATFORM
	bool "Allow multiple platforms to be selected"
336
	depends on MMU
337
	select ARM_HAS_SG_CHAIN
338
339
	select ARM_PATCH_PHYS_VIRT
	select AUTO_ZRELADDR
340
	select CLKSRC_OF
341
	select COMMON_CLK
342
	select GENERIC_CLOCKEVENTS
343
	select MIGHT_HAVE_PCI
344
	select MULTI_IRQ_HANDLER
345
	select PCI_DOMAINS if PCI
346
347
348
	select SPARSE_IRQ
	select USE_OF

349
350
351
352
config ARM_SINGLE_ARMV7M
	bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
	depends on !MMU
	select ARM_NVIC
353
	select AUTO_ZRELADDR
354
355
356
357
358
359
360
361
	select CLKSRC_OF
	select COMMON_CLK
	select CPU_V7M
	select GENERIC_CLOCKEVENTS
	select NO_IOPORT_MAP
	select SPARSE_IRQ
	select USE_OF

Linus Torvalds's avatar
Linus Torvalds committed
362
363
config ARCH_EBSA110
	bool "EBSA-110"
364
	select ARCH_USES_GETTIMEOFFSET
365
	select CPU_SA110
366
	select ISA
367
	select NEED_MACH_IO_H
368
	select NEED_MACH_MEMORY_H
369
	select NO_IOPORT_MAP
Linus Torvalds's avatar
Linus Torvalds committed
370
371
	help
	  This is an evaluation board for the StrongARM processor available
372
	  from Digital. It has limited hardware on-board, including an
Linus Torvalds's avatar
Linus Torvalds committed
373
374
375
	  Ethernet interface, two PCMCIA sockets, two serial ports and a
	  parallel port.

376
377
config ARCH_EP93XX
	bool "EP93xx-based"
378
	select ARCH_HAS_HOLES_MEMORYMODEL
379
	select ARM_AMBA
380
	select ARM_PATCH_PHYS_VIRT
381
	select ARM_VIC
382
	select AUTO_ZRELADDR
383
	select CLKDEV_LOOKUP
384
	select CLKSRC_MMIO
385
	select CPU_ARM920T
386
	select GENERIC_CLOCKEVENTS
387
	select GPIOLIB
388
389
390
	help
	  This enables support for the Cirrus EP93xx series of CPUs.

Linus Torvalds's avatar
Linus Torvalds committed
391
392
config ARCH_FOOTBRIDGE
	bool "FootBridge"
393
	select CPU_SA110
Linus Torvalds's avatar
Linus Torvalds committed
394
	select FOOTBRIDGE
395
	select GENERIC_CLOCKEVENTS
396
	select HAVE_IDE
397
	select NEED_MACH_IO_H if !MMU
398
	select NEED_MACH_MEMORY_H
399
400
401
	help
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
Linus Torvalds's avatar
Linus Torvalds committed
402

403
404
config ARCH_NETX
	bool "Hilscher NetX based"
405
	select ARM_VIC
406
	select CLKSRC_MMIO
407
	select CPU_ARM926T
408
	select GENERIC_CLOCKEVENTS
409
	help
410
411
	  This enables support for systems based on the Hilscher NetX Soc

412
413
414
config ARCH_IOP13XX
	bool "IOP13xx-based"
	depends on MMU
415
	select CPU_XSC3
416
	select NEED_MACH_MEMORY_H
417
	select NEED_RET_TO_USER
418
419
420
	select PCI
	select PLAT_IOP
	select VMSPLIT_1G
421
	select SPARSE_IRQ
422
423
424
	help
	  Support for Intel's IOP13XX (XScale) family of processors.

425
426
config ARCH_IOP32X
	bool "IOP32x-based"
427
	depends on MMU
428
	select CPU_XSCALE
429
	select GPIO_IOP
430
	select GPIOLIB
431
	select NEED_RET_TO_USER
432
	select PCI
433
	select PLAT_IOP
434
	help
435
436
437
438
439
440
	  Support for Intel's 80219 and IOP32X (XScale) family of
	  processors.

config ARCH_IOP33X
	bool "IOP33x-based"
	depends on MMU
441
	select CPU_XSCALE
442
	select GPIO_IOP
443
	select GPIOLIB
444
	select NEED_RET_TO_USER
445
	select PCI
446
	select PLAT_IOP
447
448
	help
	  Support for Intel's IOP33X (XScale) family of processors.
Linus Torvalds's avatar
Linus Torvalds committed
449

450
451
config ARCH_IXP4XX
	bool "IXP4xx-based"
452
	depends on MMU
453
	select ARCH_HAS_DMA_SET_COHERENT_MASK
454
	select ARCH_SUPPORTS_BIG_ENDIAN
455
	select CLKSRC_MMIO
456
	select CPU_XSCALE
457
	select DMABOUNCE if PCI
458
	select GENERIC_CLOCKEVENTS
459
	select GPIOLIB
460
	select MIGHT_HAVE_PCI
461
	select NEED_MACH_IO_H
462
	select USB_EHCI_BIG_ENDIAN_DESC
Russell King's avatar
Russell King committed
463
	select USB_EHCI_BIG_ENDIAN_MMIO
464
	help
465
	  Support for Intel's IXP4XX (XScale) family of processors.
466

467
468
config ARCH_DOVE
	bool "Marvell Dove"
469
	select CPU_PJ4
470
	select GENERIC_CLOCKEVENTS
471
	select GPIOLIB
472
	select MIGHT_HAVE_PCI
473
	select MULTI_IRQ_HANDLER
Russell King's avatar
Russell King committed
474
	select MVEBU_MBUS
475
476
	select PINCTRL
	select PINCTRL_DOVE
477
	select PLAT_ORION_LEGACY
Haojian Zhuang's avatar
Haojian Zhuang committed
478
	select SPARSE_IRQ
479
	select PM_GENERIC_DOMAINS if PM
480
	help
481
	  Support for the Marvell Dove SoC 88AP510
482
483
484

config ARCH_KS8695
	bool "Micrel/Kendin KS8695"
485
	select CLKSRC_MMIO
486
	select CPU_ARM922T
487
	select GENERIC_CLOCKEVENTS
488
	select GPIOLIB
489
	select NEED_MACH_MEMORY_H
490
491
492
493
494
495
	help
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  System-on-Chip devices.

config ARCH_W90X900
	bool "Nuvoton W90X900 CPU"
496
	select CLKDEV_LOOKUP
497
	select CLKSRC_MMIO
498
	select CPU_ARM926T
499
	select GENERIC_CLOCKEVENTS
500
	select GPIOLIB
501
	help
502
503
504
505
506
507
508
	  Support for Nuvoton (Winbond logic dept.) ARM9 processor,
	  At present, the w90x900 has been renamed nuc900, regarding
	  the ARM series product line, you can login the following
	  link address to know more.

	  <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
		ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
509

510
511
512
513
config ARCH_LPC32XX
	bool "NXP LPC32XX"
	select ARM_AMBA
	select CLKDEV_LOOKUP
514
515
	select CLKSRC_LPC32XX
	select COMMON_CLK
516
517
	select CPU_ARM926T
	select GENERIC_CLOCKEVENTS
518
	select GPIOLIB
519
520
	select MULTI_IRQ_HANDLER
	select SPARSE_IRQ
521
522
523
524
	select USE_OF
	help
	  Support for the NXP LPC32XX family of processors

Linus Torvalds's avatar
Linus Torvalds committed
525
config ARCH_PXA
eric miao's avatar
eric miao committed
526
	bool "PXA2xx/PXA3xx-based"
527
	depends on MMU
528
529
530
	select ARCH_MTD_XIP
	select ARM_CPU_SUSPEND if PM
	select AUTO_ZRELADDR
531
	select COMMON_CLK
532
	select CLKDEV_LOOKUP
533
	select CLKSRC_PXA
534
	select CLKSRC_MMIO
535
	select CLKSRC_OF
536
	select CPU_XSCALE if !CPU_XSC3
537
	select GENERIC_CLOCKEVENTS
538
	select GPIO_PXA
539
	select GPIOLIB
540
	select HAVE_IDE
541
	select IRQ_DOMAIN
542
543
544
	select MULTI_IRQ_HANDLER
	select PLAT_PXA
	select SPARSE_IRQ
545
	help
eric miao's avatar
eric miao committed
546
	  Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
Linus Torvalds's avatar
Linus Torvalds committed
547
548
549

config ARCH_RPC
	bool "RiscPC"
Russell King's avatar
Russell King committed
550
	depends on MMU
Linus Torvalds's avatar
Linus Torvalds committed
551
	select ARCH_ACORN
552
	select ARCH_MAY_HAVE_PC_FDC
553
	select ARCH_SPARSEMEM_ENABLE
554
	select ARCH_USES_GETTIMEOFFSET
Arnd Bergmann's avatar
Arnd Bergmann committed
555
	select CPU_SA110
556
	select FIQ
557
	select HAVE_IDE
558
559
	select HAVE_PATA_PLATFORM
	select ISA_DMA_API
560
	select NEED_MACH_IO_H
561
	select NEED_MACH_MEMORY_H
562
	select NO_IOPORT_MAP
Linus Torvalds's avatar
Linus Torvalds committed
563
564
565
566
567
568
	help
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  CD-ROM interface, serial and parallel port, and the floppy drive.

config ARCH_SA1100
	bool "SA1100-based"
569
570
571
572
	select ARCH_MTD_XIP
	select ARCH_SPARSEMEM_ENABLE
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
573
574
	select CLKSRC_PXA
	select CLKSRC_OF if OF
Russell King's avatar
Russell King committed
575
	select CPU_FREQ
576
	select CPU_SA1100
577
	select GENERIC_CLOCKEVENTS
578
	select GPIOLIB
579
	select HAVE_IDE
580
	select IRQ_DOMAIN
581
	select ISA
582
	select MULTI_IRQ_HANDLER
583
	select NEED_MACH_MEMORY_H
584
	select SPARSE_IRQ
585
586
	help
	  Support for StrongARM 11x0 based boards.
Linus Torvalds's avatar
Linus Torvalds committed
587

588
589
config ARCH_S3C24XX
	bool "Samsung S3C24XX SoCs"
590
	select ATAGS
591
	select CLKDEV_LOOKUP
592
	select CLKSRC_SAMSUNG_PWM
593
	select GENERIC_CLOCKEVENTS
594
	select GPIO_SAMSUNG
595
	select GPIOLIB
596
	select HAVE_S3C2410_I2C if I2C
597
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
598
	select HAVE_S3C_RTC if RTC_CLASS
599
	select MULTI_IRQ_HANDLER
600
	select NEED_MACH_IO_H
601
	select SAMSUNG_ATAGS
Linus Torvalds's avatar
Linus Torvalds committed
602
	help
603
604
605
606
	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
	  (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
	  Samsung SMDK2410 development board (and derivatives).
607

608
609
config ARCH_DAVINCI
	bool "TI DaVinci"
610
	select ARCH_HAS_HOLES_MEMORYMODEL
611
	select CLKDEV_LOOKUP
612
	select CPU_ARM926T
David Brownell's avatar
David Brownell committed
613
	select GENERIC_ALLOCATOR
614
	select GENERIC_CLOCKEVENTS
Russell King's avatar
Russell King committed
615
	select GENERIC_IRQ_CHIP
616
	select GPIOLIB
617
	select HAVE_IDE
618
	select USE_OF
619
	select ZONE_DMA
620
621
622
	help
	  Support for TI's DaVinci platform.

623
624
config ARCH_OMAP1
	bool "TI OMAP1"
Arnd Bergmann's avatar
Arnd Bergmann committed
625
	depends on MMU
626
	select ARCH_HAS_HOLES_MEMORYMODEL
627
	select ARCH_OMAP
628
	select CLKDEV_LOOKUP
629
	select CLKSRC_MMIO
630
	select GENERIC_CLOCKEVENTS
631
	select GENERIC_IRQ_CHIP
632
	select GPIOLIB
633
634
	select HAVE_IDE
	select IRQ_DOMAIN
635
	select MULTI_IRQ_HANDLER
636
637
	select NEED_MACH_IO_H if PCCARD
	select NEED_MACH_MEMORY_H
638
	select SPARSE_IRQ
639
	help
640
	  Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx)
641

Linus Torvalds's avatar
Linus Torvalds committed
642
643
endchoice

644
645
646
647
648
menu "Multiple platform selection"
	depends on ARCH_MULTIPLATFORM

comment "CPU Core family selection"

Arnd Bergmann's avatar
Arnd Bergmann committed
649
650
651
652
653
654
config ARCH_MULTI_V4
	bool "ARMv4 based platforms (FA526)"
	depends on !ARCH_MULTI_V6_V7
	select ARCH_MULTI_V4_V5
	select CPU_FA526

655
656
657
config ARCH_MULTI_V4T
	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
	depends on !ARCH_MULTI_V6_V7
658
	select ARCH_MULTI_V4_V5
659
660
661
	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
		CPU_ARM925T || CPU_ARM940T)
662
663
664
665

config ARCH_MULTI_V5
	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
	depends on !ARCH_MULTI_V6_V7
666
	select ARCH_MULTI_V4_V5
667
	select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
668
669
		CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
670
671
672
673
674

config ARCH_MULTI_V4_V5
	bool

config ARCH_MULTI_V6
675
	bool "ARMv6 based platforms (ARM11)"
676
	select ARCH_MULTI_V6_V7
677
	select CPU_V6K
678
679

config ARCH_MULTI_V7
680
	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
681
682
	default y
	select ARCH_MULTI_V6_V7
683
	select CPU_V7
684
	select HAVE_SMP
685
686
687

config ARCH_MULTI_V6_V7
	bool
688
	select MIGHT_HAVE_CACHE_L2X0
689
690
691
692
693
694
695

config ARCH_MULTI_CPU_AUTO
	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
	select ARCH_MULTI_V5

endmenu

696
config ARCH_VIRT
697
698
	bool "Dummy Virtual Machine"
	depends on ARCH_MULTI_V7
Rob Herring's avatar
Rob Herring committed
699
	select ARM_AMBA
700
	select ARM_GIC
701
	select ARM_GIC_V2M if PCI
702
	select ARM_GIC_V3
703
	select ARM_GIC_V3_ITS if PCI
704
	select ARM_PSCI
Rob Herring's avatar
Rob Herring committed
705
	select HAVE_ARM_ARCH_TIMER
706

707
708
709
710
711
#
# This is sorted alphabetically by mach-* pathname.  However, plat-*
# Kconfigs may be included either alphabetically (according to the
# plat- suffix) or along side the corresponding mach-* source.
#
712
713
source "arch/arm/mach-mvebu/Kconfig"

714
715
source "arch/arm/mach-alpine/Kconfig"

716
717
source "arch/arm/mach-artpec/Kconfig"

Oleksij Rempel's avatar
Oleksij Rempel committed
718
719
source "arch/arm/mach-asm9260/Kconfig"

720
721
source "arch/arm/mach-at91/Kconfig"

722
723
source "arch/arm/mach-axxia/Kconfig"

724
725
source "arch/arm/mach-bcm/Kconfig"

726
727
source "arch/arm/mach-berlin/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
728
729
source "arch/arm/mach-clps711x/Kconfig"

730
731
source "arch/arm/mach-cns3xxx/Kconfig"

732
733
source "arch/arm/mach-davinci/Kconfig"

734
735
source "arch/arm/mach-digicolor/Kconfig"

736
737
source "arch/arm/mach-dove/Kconfig"

738
739
source "arch/arm/mach-ep93xx/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
740
741
source "arch/arm/mach-footbridge/Kconfig"

742
743
source "arch/arm/mach-gemini/Kconfig"

744
745
source "arch/arm/mach-highbank/Kconfig"

746
747
source "arch/arm/mach-hisi/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
748
749
source "arch/arm/mach-integrator/Kconfig"

750
751
752
source "arch/arm/mach-iop32x/Kconfig"

source "arch/arm/mach-iop33x/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
753

754
755
source "arch/arm/mach-iop13xx/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
756
757
source "arch/arm/mach-ixp4xx/Kconfig"

758
759
source "arch/arm/mach-keystone/Kconfig"

760
761
source "arch/arm/mach-ks8695/Kconfig"

762
763
source "arch/arm/mach-meson/Kconfig"

764
765
source "arch/arm/mach-moxart/Kconfig"

Joel Stanley's avatar
Joel Stanley committed
766
767
source "arch/arm/mach-aspeed/Kconfig"

768
769
source "arch/arm/mach-mv78xx0/Kconfig"

770
source "arch/arm/mach-imx/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
771

772
773
source "arch/arm/mach-mediatek/Kconfig"

774
775
source "arch/arm/mach-mxs/Kconfig"

776
source "arch/arm/mach-netx/Kconfig"
777

778
779
source "arch/arm/mach-nomadik/Kconfig"

780
781
source "arch/arm/mach-nspire/Kconfig"

782
783
784
source "arch/arm/plat-omap/Kconfig"

source "arch/arm/mach-omap1/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
785

786
787
source "arch/arm/mach-omap2/Kconfig"

788
source "arch/arm/mach-orion5x/Kconfig"
789

790
791
source "arch/arm/mach-picoxcell/Kconfig"

792
793
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"
794

795
796
source "arch/arm/mach-mmp/Kconfig"

Neil Armstrong's avatar
Neil Armstrong committed
797
798
source "arch/arm/mach-oxnas/Kconfig"

799
800
source "arch/arm/mach-qcom/Kconfig"

801
802
source "arch/arm/mach-realview/Kconfig"

803
804
source "arch/arm/mach-rockchip/Kconfig"

805
source "arch/arm/mach-sa1100/Kconfig"
806

807
808
source "arch/arm/mach-socfpga/Kconfig"

809
source "arch/arm/mach-spear/Kconfig"
810

811
812
source "arch/arm/mach-sti/Kconfig"

813
814
source "arch/arm/mach-stm32/Kconfig"

815
source "arch/arm/mach-s3c24xx/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
816

817
source "arch/arm/mach-s3c64xx/Kconfig"
818

819
820
source "arch/arm/mach-s5pv210/Kconfig"

821
source "arch/arm/mach-exynos/Kconfig"
822
source "arch/arm/plat-samsung/Kconfig"
823

824
source "arch/arm/mach-shmobile/Kconfig"
825

826
827
source "arch/arm/mach-sunxi/Kconfig"

828
829
source "arch/arm/mach-prima2/Kconfig"

830
831
source "arch/arm/mach-tango/Kconfig"

832
833
source "arch/arm/mach-tegra/Kconfig"

834
source "arch/arm/mach-u300/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
835

836
837
source "arch/arm/mach-uniphier/Kconfig"

838
source "arch/arm/mach-ux500/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
839
840
841

source "arch/arm/mach-versatile/Kconfig"

842
source "arch/arm/mach-vexpress/Kconfig"
843
source "arch/arm/plat-versatile/Kconfig"
844

845
846
source "arch/arm/mach-vt8500/Kconfig"

847
848
source "arch/arm/mach-w90x900/Kconfig"

849
850
source "arch/arm/mach-zx/Kconfig"

851
852
source "arch/arm/mach-zynq/Kconfig"

853
854
855
856
# ARMv7-M architecture
config ARCH_EFM32
	bool "Energy Micro efm32"
	depends on ARM_SINGLE_ARMV7M
857
	select GPIOLIB
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
	help
	  Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
	  processors.

config ARCH_LPC18XX
	bool "NXP LPC18xx/LPC43xx"
	depends on ARM_SINGLE_ARMV7M
	select ARCH_HAS_RESET_CONTROLLER
	select ARM_AMBA
	select CLKSRC_LPC32XX
	select PINCTRL
	help
	  Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4
	  high performance microcontrollers.

873
config ARCH_MPS2
Baruch Siach's avatar
Baruch Siach committed
874
	bool "ARM MPS2 platform"
875
876
877
878
879
880
881
882
883
884
	depends on ARM_SINGLE_ARMV7M
	select ARM_AMBA
	select CLKSRC_MPS2
	help
	  Support for Cortex-M Prototyping System (or V2M-MPS2) which comes
	  with a range of available cores like Cortex-M3/M4/M7.

	  Please, note that depends which Application Note is used memory map
	  for the platform may vary, so adjustment of RAM base might be needed.

Linus Torvalds's avatar
Linus Torvalds committed
885
886
887
888
# Definitions to make life easier
config ARCH_ACORN
	bool

889
890
config PLAT_IOP
	bool
Mikael Pettersson's avatar
Mikael Pettersson committed
891
	select GENERIC_CLOCKEVENTS
892

Lennert Buytenhek's avatar
Lennert Buytenhek committed
893
894
config PLAT_ORION
	bool
895
	select CLKSRC_MMIO
896
	select COMMON_CLK
Russell King's avatar
Russell King committed
897
	select GENERIC_IRQ_CHIP
898
	select IRQ_DOMAIN
Lennert Buytenhek's avatar
Lennert Buytenhek committed
899

900
901
902
903
config PLAT_ORION_LEGACY
	bool
	select PLAT_ORION

904
905
906
config PLAT_PXA
	bool

907
908
909
config PLAT_VERSATILE
	bool

910
911
source "arch/arm/firmware/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
912
913
source arch/arm/mm/Kconfig

914
config IWMMXT
915
916
917
	bool "Enable iWMMXt support"
	depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B
	default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B
918
919
920
921
	help
	  Enable support for iWMMXt context switching at run time if
	  running on a CPU that supports it.

922
923
924
925
926
config MULTI_IRQ_HANDLER
	bool
	help
	  Allow each machine to specify it's own IRQ handler at run time.

927
928
929
930
if !MMU
source "arch/arm/Kconfig-nommu"
endif

931
932
933
934
935
936
937
938
939
940
941
942
943
944
config PJ4B_ERRATA_4742
	bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation"
	depends on CPU_PJ4B && MACH_ARMADA_370
	default y
	help
	  When coming out of either a Wait for Interrupt (WFI) or a Wait for
	  Event (WFE) IDLE states, a specific timing sensitivity exists between
	  the retiring WFI/WFE instructions and the newly issued subsequent
	  instructions.  This sensitivity can result in a CPU hang scenario.
	  Workaround:
	  The software must insert either a Data Synchronization Barrier (DSB)
	  or Data Memory Barrier (DMB) command immediately after the WFI/WFE
	  instruction

945
946
947
948
949
950
951
952
953
config ARM_ERRATA_326103
	bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
	depends on CPU_V6
	help
	  Executing a SWP instruction to read-only memory does not set bit 11
	  of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to
	  treat the access as a read, preventing a COW from occurring and
	  causing the faulting task to livelock.

954
955
config ARM_ERRATA_411920
	bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
956
	depends on CPU_V6 || CPU_V6K
957
958
959
960
961
962
	help
	  Invalidation of the Instruction Cache operation can
	  fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
	  It does not affect the MPCore. This option enables the ARM Ltd.
	  recommended workaround.

963
964
965
966
967
config ARM_ERRATA_430973
	bool "ARM errata: Stale prediction on replaced interworking branch"
	depends on CPU_V7
	help
	  This option enables the workaround for the 430973 Cortex-A8
968
	  r1p* erratum. If a code sequence containing an ARM/Thumb
969
970
971
972
973
974
975
976
977
978
	  interworking branch is replaced with another code sequence at the
	  same virtual address, whether due to self-modifying code or virtual
	  to physical address re-mapping, Cortex-A8 does not recover from the
	  stale interworking branch prediction. This results in Cortex-A8
	  executing the new code sequence in the incorrect ARM or Thumb state.
	  The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
	  and also flushes the branch target cache at every context switch.
	  Note that setting specific bits in the ACTLR register may not be
	  available in non-secure mode.

979
980
981
config ARM_ERRATA_458693
	bool "ARM errata: Processor deadlock when a false hazard is created"
	depends on CPU_V7
982
	depends on !ARCH_MULTIPLATFORM
983
984
985
986
987
988
989
990
991
992
	help
	  This option enables the workaround for the 458693 Cortex-A8 (r2p0)
	  erratum. For very specific sequences of memory operations, it is
	  possible for a hazard condition intended for a cache line to instead
	  be incorrectly associated with a different cache line. This false
	  hazard might then cause a processor deadlock. The workaround enables
	  the L1 caching of the NEON accesses and disables the PLD instruction
	  in the ACTLR register. Note that setting specific bits in the ACTLR
	  register may not be available in non-secure mode.

Catalin Marinas's avatar