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

123
config ARM_HAS_SG_CHAIN
124
	select ARCH_HAS_SG_CHAIN
125
126
	bool

127
128
config ARM_DMA_USE_IOMMU
	bool
129
130
	select ARM_HAS_SG_CHAIN
	select NEED_SG_DMA_LENGTH
131

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
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

153
154
155
config MIGHT_HAVE_PCI
	bool

156
157
158
config SYS_SUPPORTS_APM_EMULATION
	bool

159
160
161
162
config HAVE_TCM
	bool
	select GENERIC_ALLOCATOR

163
164
165
config HAVE_PROC_CPU
	bool

166
config NO_IOPORT_MAP
Al Viro's avatar
Al Viro committed
167
168
	bool

Linus Torvalds's avatar
Linus Torvalds committed
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
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

187
188
189
190
191
192
193
194
config STACKTRACE_SUPPORT
	bool
	default y

config LOCKDEP_SUPPORT
	bool
	default y

Russell King's avatar
Russell King committed
195
196
config TRACE_IRQFLAGS_SUPPORT
	bool
197
	default !CPU_V7M
Russell King's avatar
Russell King committed
198

Linus Torvalds's avatar
Linus Torvalds committed
199
200
config RWSEM_XCHGADD_ALGORITHM
	bool
201
	default y
Linus Torvalds's avatar
Linus Torvalds committed
202

203
204
205
206
207
208
config ARCH_HAS_ILOG2_U32
	bool

config ARCH_HAS_ILOG2_U64
	bool

209
210
211
config ARCH_HAS_BANDGAP
	bool

212
213
214
config FIX_EARLYCON_MEM
	def_bool y if MMU

215
216
217
218
config GENERIC_HWEIGHT
	bool
	default y

Linus Torvalds's avatar
Linus Torvalds committed
219
220
221
222
config GENERIC_CALIBRATE_DELAY
	bool
	default y

223
224
225
config ARCH_MAY_HAVE_PC_FDC
	bool

226
227
228
config ZONE_DMA
	bool

David A. Long's avatar
David A. Long committed
229
230
231
config ARCH_SUPPORTS_UPROBES
	def_bool y

232
233
234
config ARCH_HAS_DMA_SET_COHERENT_MASK
	bool

Linus Torvalds's avatar
Linus Torvalds committed
235
236
237
238
239
240
config GENERIC_ISA_DMA
	bool

config FIQ
	bool

241
242
243
config NEED_RET_TO_USER
	bool

244
245
246
config ARCH_MTD_XIP
	bool

247
config ARM_PATCH_PHYS_VIRT
248
249
	bool "Patch physical to virtual translations at runtime" if EMBEDDED
	default y
250
	depends on !XIP_KERNEL && MMU
251
	help
252
253
254
	  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.
255

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

259
260
261
	  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.
262

263
264
265
266
267
268
269
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.

270
config NEED_MACH_MEMORY_H
271
272
	bool
	help
273
274
275
	  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.
276

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

294
295
296
297
config GENERIC_BUG
	def_bool y
	depends on BUG

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

Linus Torvalds's avatar
Linus Torvalds committed
303
304
menu "System Type"

305
306
307
308
309
310
311
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'.

312
313
314
315
316
317
318
319
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

320
321
322
323
#
# 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
324
325
choice
	prompt "ARM system type"
326
	default ARM_SINGLE_ARMV7M if !MMU
327
	default ARCH_MULTIPLATFORM if MMU
Linus Torvalds's avatar
Linus Torvalds committed
328

329
330
config ARCH_MULTIPLATFORM
	bool "Allow multiple platforms to be selected"
331
	depends on MMU
332
	select ARM_HAS_SG_CHAIN
333
334
	select ARM_PATCH_PHYS_VIRT
	select AUTO_ZRELADDR
335
	select TIMER_OF
336
	select COMMON_CLK
337
	select GENERIC_CLOCKEVENTS
338
	select GENERIC_IRQ_MULTI_HANDLER
339
	select MIGHT_HAVE_PCI
340
	select PCI_DOMAINS if PCI
341
342
343
	select SPARSE_IRQ
	select USE_OF

344
345
346
347
config ARM_SINGLE_ARMV7M
	bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
	depends on !MMU
	select ARM_NVIC
348
	select AUTO_ZRELADDR
349
	select TIMER_OF
350
351
352
353
354
355
356
	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
357
358
config ARCH_EBSA110
	bool "EBSA-110"
359
	select ARCH_USES_GETTIMEOFFSET
360
	select CPU_SA110
361
	select ISA
362
	select NEED_MACH_IO_H
363
	select NEED_MACH_MEMORY_H
364
	select NO_IOPORT_MAP
Linus Torvalds's avatar
Linus Torvalds committed
365
366
	help
	  This is an evaluation board for the StrongARM processor available
367
	  from Digital. It has limited hardware on-board, including an
Linus Torvalds's avatar
Linus Torvalds committed
368
369
370
	  Ethernet interface, two PCMCIA sockets, two serial ports and a
	  parallel port.

371
372
config ARCH_EP93XX
	bool "EP93xx-based"
373
	select ARCH_SPARSEMEM_ENABLE
374
	select ARM_AMBA
375
	imply ARM_PATCH_PHYS_VIRT
376
	select ARM_VIC
377
	select AUTO_ZRELADDR
378
	select CLKDEV_LOOKUP
379
	select CLKSRC_MMIO
380
	select CPU_ARM920T
381
	select GENERIC_CLOCKEVENTS
382
	select GPIOLIB
383
384
385
	help
	  This enables support for the Cirrus EP93xx series of CPUs.

Linus Torvalds's avatar
Linus Torvalds committed
386
387
config ARCH_FOOTBRIDGE
	bool "FootBridge"
388
	select CPU_SA110
Linus Torvalds's avatar
Linus Torvalds committed
389
	select FOOTBRIDGE
390
	select GENERIC_CLOCKEVENTS
391
	select HAVE_IDE
392
	select NEED_MACH_IO_H if !MMU
393
	select NEED_MACH_MEMORY_H
394
395
396
	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
397

398
399
config ARCH_NETX
	bool "Hilscher NetX based"
400
	select ARM_VIC
401
	select CLKSRC_MMIO
402
	select CPU_ARM926T
403
	select GENERIC_CLOCKEVENTS
404
	help
405
406
	  This enables support for systems based on the Hilscher NetX Soc

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

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

config ARCH_IOP33X
	bool "IOP33x-based"
	depends on MMU
436
	select CPU_XSCALE
437
	select GPIO_IOP
438
	select GPIOLIB
439
	select NEED_RET_TO_USER
440
	select PCI
441
	select PLAT_IOP
442
443
	help
	  Support for Intel's IOP33X (XScale) family of processors.
Linus Torvalds's avatar
Linus Torvalds committed
444

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

462
463
config ARCH_DOVE
	bool "Marvell Dove"
464
	select CPU_PJ4
465
	select GENERIC_CLOCKEVENTS
466
	select GENERIC_IRQ_MULTI_HANDLER
467
	select GPIOLIB
468
	select MIGHT_HAVE_PCI
Russell King's avatar
Russell King committed
469
	select MVEBU_MBUS
470
471
	select PINCTRL
	select PINCTRL_DOVE
472
	select PLAT_ORION_LEGACY
Haojian Zhuang's avatar
Haojian Zhuang committed
473
	select SPARSE_IRQ
474
	select PM_GENERIC_DOMAINS if PM
475
	help
476
	  Support for the Marvell Dove SoC 88AP510
477
478
479

config ARCH_KS8695
	bool "Micrel/Kendin KS8695"
480
	select CLKSRC_MMIO
481
	select CPU_ARM922T
482
	select GENERIC_CLOCKEVENTS
483
	select GPIOLIB
484
	select NEED_MACH_MEMORY_H
485
486
487
488
489
490
	help
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  System-on-Chip devices.

config ARCH_W90X900
	bool "Nuvoton W90X900 CPU"
491
	select CLKDEV_LOOKUP
492
	select CLKSRC_MMIO
493
	select CPU_ARM926T
494
	select GENERIC_CLOCKEVENTS
495
	select GPIOLIB
496
	help
497
498
499
500
501
502
503
	  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>
504

505
506
507
508
config ARCH_LPC32XX
	bool "NXP LPC32XX"
	select ARM_AMBA
	select CLKDEV_LOOKUP
509
510
	select CLKSRC_LPC32XX
	select COMMON_CLK
511
512
	select CPU_ARM926T
	select GENERIC_CLOCKEVENTS
513
	select GENERIC_IRQ_MULTI_HANDLER
514
	select GPIOLIB
515
	select SPARSE_IRQ
516
517
518
519
	select USE_OF
	help
	  Support for the NXP LPC32XX family of processors

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

config ARCH_RPC
	bool "RiscPC"
Russell King's avatar
Russell King committed
545
	depends on MMU
Linus Torvalds's avatar
Linus Torvalds committed
546
	select ARCH_ACORN
547
	select ARCH_MAY_HAVE_PC_FDC
548
	select ARCH_SPARSEMEM_ENABLE
549
	select ARCH_USES_GETTIMEOFFSET
Arnd Bergmann's avatar
Arnd Bergmann committed
550
	select CPU_SA110
551
	select FIQ
552
	select HAVE_IDE
553
554
	select HAVE_PATA_PLATFORM
	select ISA_DMA_API
555
	select NEED_MACH_IO_H
556
	select NEED_MACH_MEMORY_H
557
	select NO_IOPORT_MAP
Linus Torvalds's avatar
Linus Torvalds committed
558
559
560
561
562
563
	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"
564
565
566
567
	select ARCH_MTD_XIP
	select ARCH_SPARSEMEM_ENABLE
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
568
	select CLKSRC_PXA
569
	select TIMER_OF if OF
Russell King's avatar
Russell King committed
570
	select CPU_FREQ
571
	select CPU_SA1100
572
	select GENERIC_CLOCKEVENTS
573
	select GENERIC_IRQ_MULTI_HANDLER
574
	select GPIOLIB
575
	select HAVE_IDE
576
	select IRQ_DOMAIN
577
	select ISA
578
	select NEED_MACH_MEMORY_H
579
	select SPARSE_IRQ
580
581
	help
	  Support for StrongARM 11x0 based boards.
Linus Torvalds's avatar
Linus Torvalds committed
582

583
584
config ARCH_S3C24XX
	bool "Samsung S3C24XX SoCs"
585
	select ATAGS
586
	select CLKDEV_LOOKUP
587
	select CLKSRC_SAMSUNG_PWM
588
	select GENERIC_CLOCKEVENTS
589
	select GPIO_SAMSUNG
590
	select GPIOLIB
591
	select GENERIC_IRQ_MULTI_HANDLER
592
	select HAVE_S3C2410_I2C if I2C
593
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
594
	select HAVE_S3C_RTC if RTC_CLASS
595
	select NEED_MACH_IO_H
596
	select SAMSUNG_ATAGS
597
	select USE_OF
Linus Torvalds's avatar
Linus Torvalds committed
598
	help
599
600
601
602
	  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).
603

604
605
config ARCH_DAVINCI
	bool "TI DaVinci"
606
	select ARCH_HAS_HOLES_MEMORYMODEL
607
	select COMMON_CLK
608
	select CPU_ARM926T
David Brownell's avatar
David Brownell committed
609
	select GENERIC_ALLOCATOR
610
	select GENERIC_CLOCKEVENTS
Russell King's avatar
Russell King committed
611
	select GENERIC_IRQ_CHIP
612
	select GPIOLIB
613
	select HAVE_IDE
614
615
	select PM_GENERIC_DOMAINS if PM
	select PM_GENERIC_DOMAINS_OF if PM && OF
616
	select REGMAP_MMIO
617
	select RESET_CONTROLLER
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 GENERIC_IRQ_MULTI_HANDLER
633
	select GPIOLIB
634
635
636
637
	select HAVE_IDE
	select IRQ_DOMAIN
	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-actions/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-aspeed/Kconfig"

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

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

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

728
729
source "arch/arm/mach-berlin/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
730
731
source "arch/arm/mach-clps711x/Kconfig"

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

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

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

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

740
741
source "arch/arm/mach-ep93xx/Kconfig"

742
743
744
source "arch/arm/mach-exynos/Kconfig"
source "arch/arm/plat-samsung/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
745
746
source "arch/arm/mach-footbridge/Kconfig"

747
748
source "arch/arm/mach-gemini/Kconfig"

749
750
source "arch/arm/mach-highbank/Kconfig"

751
752
source "arch/arm/mach-hisi/Kconfig"

753
754
source "arch/arm/mach-imx/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
755
756
source "arch/arm/mach-integrator/Kconfig"

757
758
source "arch/arm/mach-iop13xx/Kconfig"

759
760
761
source "arch/arm/mach-iop32x/Kconfig"

source "arch/arm/mach-iop33x/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
762
763
764

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

765
766
source "arch/arm/mach-keystone/Kconfig"

767
768
source "arch/arm/mach-ks8695/Kconfig"

769
770
source "arch/arm/mach-mediatek/Kconfig"

771
772
source "arch/arm/mach-meson/Kconfig"

773
source "arch/arm/mach-mmp/Kconfig"
774

775
source "arch/arm/mach-moxart/Kconfig"
Joel Stanley's avatar
Joel Stanley committed
776

777
778
source "arch/arm/mach-mv78xx0/Kconfig"

779
source "arch/arm/mach-mvebu/Kconfig"
780

781
782
source "arch/arm/mach-mxs/Kconfig"

783
source "arch/arm/mach-netx/Kconfig"
784

785
786
source "arch/arm/mach-nomadik/Kconfig"

787
788
source "arch/arm/mach-npcm/Kconfig"

789
790
source "arch/arm/mach-nspire/Kconfig"

791
792
793
source "arch/arm/plat-omap/Kconfig"

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

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

797
source "arch/arm/mach-orion5x/Kconfig"
798

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

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

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

805
806
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"
807

808
809
source "arch/arm/mach-qcom/Kconfig"

810
811
source "arch/arm/mach-realview/Kconfig"

812
813
source "arch/arm/mach-rockchip/Kconfig"

814
815
816
817
818
819
source "arch/arm/mach-s3c24xx/Kconfig"

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

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

820
source "arch/arm/mach-sa1100/Kconfig"
821

822
823
source "arch/arm/mach-shmobile/Kconfig"

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

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

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

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

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

834
835
source "arch/arm/mach-tango/Kconfig"

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

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

840
841
source "arch/arm/mach-uniphier/Kconfig"

842
source "arch/arm/mach-ux500/Kconfig"
Linus Torvalds's avatar
Linus Torvalds committed
843
844
845

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

846
source "arch/arm/mach-vexpress/Kconfig"
847
source "arch/arm/plat-versatile/Kconfig"
848

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

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

853
854
source "arch/arm/mach-zx/Kconfig"

855
856
source "arch/arm/mach-zynq/Kconfig"

857
858
859
860
# ARMv7-M architecture
config ARCH_EFM32
	bool "Energy Micro efm32"
	depends on ARM_SINGLE_ARMV7M
861
	select GPIOLIB
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
	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.

877
config ARCH_MPS2
Baruch Siach's avatar
Baruch Siach committed
878
	bool "ARM MPS2 platform"
879
880
881
882
883
884
885
886
887
888
	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
889
890
891
892
# Definitions to make life easier
config ARCH_ACORN
	bool

893
894
config PLAT_IOP
	bool
Mikael Pettersson's avatar
Mikael Pettersson committed
895
	select GENERIC_CLOCKEVENTS
896

Lennert Buytenhek's avatar
Lennert Buytenhek committed
897
898
config PLAT_ORION
	bool
899
	select CLKSRC_MMIO
900
	select COMMON_CLK
Russell King's avatar
Russell King committed
901
	select GENERIC_IRQ_CHIP
902
	select IRQ_DOMAIN
Lennert Buytenhek's avatar
Lennert Buytenhek committed
903

904
905
906
907
config PLAT_ORION_LEGACY
	bool
	select PLAT_ORION

908
909
910
config PLAT_PXA
	bool

911
912
913
config PLAT_VERSATILE
	bool

914
915
source "arch/arm/firmware/Kconfig"

Linus Torvalds's avatar
Linus Torvalds committed
916
917
source arch/arm/mm/Kconfig

918
config IWMMXT
919
920
921
	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
922
923
924
925
	help
	  Enable support for iWMMXt context switching at run time if
	  running on a CPU that supports it.

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

930
931
932
933
934
935
936
937
938
939
940
941
942
943
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

944
945
946
947
948
949
950
951
952
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.