40589ceb8c98c373e80ae0cfcd8e34a54287ceae
[linux-2.6.git] / arch / arm / Kconfig
1 config ARM
2         bool
3         default y
4         select HAVE_AOUT
5         select HAVE_DMA_API_DEBUG
6         select HAVE_IDE if PCI || ISA || PCMCIA
7         select HAVE_MEMBLOCK
8         select RTC_LIB
9         select SYS_SUPPORTS_APM_EMULATION
10         select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
11         select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
12         select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
13         select HAVE_ARCH_KGDB
14         select HAVE_KPROBES if !XIP_KERNEL
15         select HAVE_KRETPROBES if (HAVE_KPROBES)
16         select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
17         select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
18         select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
19         select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
20         select ARCH_BINFMT_ELF_RANDOMIZE_PIE
21         select HAVE_GENERIC_DMA_COHERENT
22         select HAVE_KERNEL_GZIP
23         select HAVE_KERNEL_LZO
24         select HAVE_KERNEL_LZMA
25         select HAVE_KERNEL_XZ
26         select HAVE_IRQ_WORK
27         select HAVE_PERF_EVENTS
28         select PERF_USE_VMALLOC
29         select HAVE_REGS_AND_STACK_ACCESS_API
30         select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
31         select HAVE_C_RECORDMCOUNT
32         select HAVE_GENERIC_HARDIRQS
33         select GENERIC_IRQ_SHOW
34         select CPU_PM if (SUSPEND || CPU_IDLE)
35         select GENERIC_PCI_IOMAP
36         select HAVE_BPF_JIT if NET
37         help
38           The ARM series is a line of low-power-consumption RISC chip designs
39           licensed by ARM Ltd and targeted at embedded applications and
40           handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
41           manufactured, but legacy ARM-based PC hardware remains popular in
42           Europe.  There is an ARM Linux project with a web page at
43           <http://www.arm.linux.org.uk/>.
44
45 config ARM_HAS_SG_CHAIN
46         bool
47
48 config HAVE_PWM
49         bool
50
51 config MIGHT_HAVE_PCI
52         bool
53
54 config SYS_SUPPORTS_APM_EMULATION
55         bool
56
57 config GENERIC_GPIO
58         bool
59
60 config ARCH_USES_GETTIMEOFFSET
61         bool
62         default n
63
64 config GENERIC_CLOCKEVENTS
65         bool
66
67 config GENERIC_CLOCKEVENTS_BROADCAST
68         bool
69         depends on GENERIC_CLOCKEVENTS
70         default y if SMP
71
72 config KTIME_SCALAR
73         bool
74         default y
75
76 config HAVE_TCM
77         bool
78         select GENERIC_ALLOCATOR
79
80 config HAVE_PROC_CPU
81         bool
82
83 config NO_IOPORT
84         bool
85
86 config EISA
87         bool
88         ---help---
89           The Extended Industry Standard Architecture (EISA) bus was
90           developed as an open alternative to the IBM MicroChannel bus.
91
92           The EISA bus provided some of the features of the IBM MicroChannel
93           bus while maintaining backward compatibility with cards made for
94           the older ISA bus.  The EISA bus saw limited use between 1988 and
95           1995 when it was made obsolete by the PCI bus.
96
97           Say Y here if you are building a kernel for an EISA-based machine.
98
99           Otherwise, say N.
100
101 config SBUS
102         bool
103
104 config MCA
105         bool
106         help
107           MicroChannel Architecture is found in some IBM PS/2 machines and
108           laptops.  It is a bus system similar to PCI or ISA. See
109           <file:Documentation/mca.txt> (and especially the web page given
110           there) before attempting to build an MCA bus kernel.
111
112 config STACKTRACE_SUPPORT
113         bool
114         default y
115
116 config HAVE_LATENCYTOP_SUPPORT
117         bool
118         depends on !SMP
119         default y
120
121 config LOCKDEP_SUPPORT
122         bool
123         default y
124
125 config TRACE_IRQFLAGS_SUPPORT
126         bool
127         default y
128
129 config HARDIRQS_SW_RESEND
130         bool
131         default y
132
133 config GENERIC_IRQ_PROBE
134         bool
135         default y
136
137 config GENERIC_LOCKBREAK
138         bool
139         default y
140         depends on SMP && PREEMPT
141
142 config RWSEM_GENERIC_SPINLOCK
143         bool
144         default y
145
146 config RWSEM_XCHGADD_ALGORITHM
147         bool
148
149 config ARCH_HAS_ILOG2_U32
150         bool
151
152 config ARCH_HAS_ILOG2_U64
153         bool
154
155 config ARCH_HAS_CPUFREQ
156         bool
157         help
158           Internal node to signify that the ARCH has CPUFREQ support
159           and that the relevant menu configurations are displayed for
160           it.
161
162 config ARCH_HAS_CPU_IDLE_WAIT
163        def_bool y
164
165 config GENERIC_HWEIGHT
166         bool
167         default y
168
169 config GENERIC_CALIBRATE_DELAY
170         bool
171         default y
172
173 config ARCH_MAY_HAVE_PC_FDC
174         bool
175
176 config ZONE_DMA
177         bool
178
179 config NEED_DMA_MAP_STATE
180        def_bool y
181
182 config ARCH_HAS_DMA_SET_COHERENT_MASK
183         bool
184
185 config GENERIC_ISA_DMA
186         bool
187
188 config FIQ
189         bool
190
191 config NEED_RET_TO_USER
192         bool
193
194 config ARCH_MTD_XIP
195         bool
196
197 config ARCH_PROVIDES_UDELAY
198   bool
199
200 config VECTORS_BASE
201         hex
202         default 0xffff0000 if MMU || CPU_HIGH_VECTOR
203         default DRAM_BASE if REMAP_VECTORS_TO_RAM
204         default 0x00000000
205         help
206           The base address of exception vectors.
207
208 config ARM_PATCH_PHYS_VIRT
209         bool "Patch physical to virtual translations at runtime" if EMBEDDED
210         default y
211         depends on !XIP_KERNEL && MMU
212         depends on !ARCH_REALVIEW || !SPARSEMEM
213         help
214           Patch phys-to-virt and virt-to-phys translation functions at
215           boot and module load time according to the position of the
216           kernel in system memory.
217
218           This can only be used with non-XIP MMU kernels where the base
219           of physical memory is at a 16MB boundary.
220
221           Only disable this option if you know that you do not require
222           this feature (eg, building a kernel for a single machine) and
223           you need to shrink the kernel to the minimal size.
224
225 config NEED_MACH_IO_H
226         bool
227         help
228           Select this when mach/io.h is required to provide special
229           definitions for this platform.  The need for mach/io.h should
230           be avoided when possible.
231
232 config NEED_MACH_MEMORY_H
233         bool
234         help
235           Select this when mach/memory.h is required to provide special
236           definitions for this platform.  The need for mach/memory.h should
237           be avoided when possible.
238
239 config PHYS_OFFSET
240         hex "Physical address of main memory" if MMU
241         depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
242         default DRAM_BASE if !MMU
243         help
244           Please provide the physical address corresponding to the
245           location of main memory in your system.
246
247 config GENERIC_BUG
248         def_bool y
249         depends on BUG
250
251 source "init/Kconfig"
252
253 source "kernel/Kconfig.freezer"
254
255 menu "System Type"
256
257 config MMU
258         bool "MMU-based Paged Memory Management Support"
259         default y
260         help
261           Select if you want MMU-based virtualised addressing space
262           support by paged memory management. If unsure, say 'Y'.
263
264 #
265 # The "ARM system type" choice list is ordered alphabetically by option
266 # text.  Please add new entries in the option alphabetic order.
267 #
268 choice
269         prompt "ARM system type"
270         default ARCH_VERSATILE
271
272 config ARCH_INTEGRATOR
273         bool "ARM Ltd. Integrator family"
274         select ARM_AMBA
275         select ARCH_HAS_CPUFREQ
276         select CLKDEV_LOOKUP
277         select HAVE_MACH_CLKDEV
278         select HAVE_TCM
279         select ICST
280         select GENERIC_CLOCKEVENTS
281         select PLAT_VERSATILE
282         select PLAT_VERSATILE_FPGA_IRQ
283         select NEED_MACH_IO_H
284         select NEED_MACH_MEMORY_H
285         select SPARSE_IRQ
286         help
287           Support for ARM's Integrator platform.
288
289 config ARCH_REALVIEW
290         bool "ARM Ltd. RealView family"
291         select ARM_AMBA
292         select CLKDEV_LOOKUP
293         select HAVE_MACH_CLKDEV
294         select ICST
295         select GENERIC_CLOCKEVENTS
296         select ARCH_WANT_OPTIONAL_GPIOLIB
297         select PLAT_VERSATILE
298         select PLAT_VERSATILE_CLCD
299         select ARM_TIMER_SP804
300         select GPIO_PL061 if GPIOLIB
301         select NEED_MACH_MEMORY_H
302         help
303           This enables support for ARM Ltd RealView boards.
304
305 config ARCH_VERSATILE
306         bool "ARM Ltd. Versatile family"
307         select ARM_AMBA
308         select ARM_VIC
309         select CLKDEV_LOOKUP
310         select HAVE_MACH_CLKDEV
311         select ICST
312         select GENERIC_CLOCKEVENTS
313         select ARCH_WANT_OPTIONAL_GPIOLIB
314         select PLAT_VERSATILE
315         select PLAT_VERSATILE_CLCD
316         select PLAT_VERSATILE_FPGA_IRQ
317         select ARM_TIMER_SP804
318         help
319           This enables support for ARM Ltd Versatile board.
320
321 config ARCH_VEXPRESS
322         bool "ARM Ltd. Versatile Express family"
323         select ARCH_WANT_OPTIONAL_GPIOLIB
324         select ARM_AMBA
325         select ARM_TIMER_SP804
326         select CLKDEV_LOOKUP
327         select HAVE_MACH_CLKDEV
328         select GENERIC_CLOCKEVENTS
329         select HAVE_CLK
330         select HAVE_PATA_PLATFORM
331         select ICST
332         select NO_IOPORT
333         select PLAT_VERSATILE
334         select PLAT_VERSATILE_CLCD
335         help
336           This enables support for the ARM Ltd Versatile Express boards.
337
338 config ARCH_AT91
339         bool "Atmel AT91"
340         select ARCH_REQUIRE_GPIOLIB
341         select HAVE_CLK
342         select CLKDEV_LOOKUP
343         select IRQ_DOMAIN
344         select NEED_MACH_IO_H if PCCARD
345         help
346           This enables support for systems based on the Atmel AT91RM9200,
347           AT91SAM9 processors.
348
349 config ARCH_BCMRING
350         bool "Broadcom BCMRING"
351         depends on MMU
352         select CPU_V6
353         select ARM_AMBA
354         select ARM_TIMER_SP804
355         select CLKDEV_LOOKUP
356         select GENERIC_CLOCKEVENTS
357         select ARCH_WANT_OPTIONAL_GPIOLIB
358         help
359           Support for Broadcom's BCMRing platform.
360
361 config ARCH_HIGHBANK
362         bool "Calxeda Highbank-based"
363         select ARCH_WANT_OPTIONAL_GPIOLIB
364         select ARM_AMBA
365         select ARM_GIC
366         select ARM_TIMER_SP804
367         select CACHE_L2X0
368         select CLKDEV_LOOKUP
369         select CPU_V7
370         select GENERIC_CLOCKEVENTS
371         select HAVE_ARM_SCU
372         select HAVE_SMP
373         select SPARSE_IRQ
374         select USE_OF
375         help
376           Support for the Calxeda Highbank SoC based boards.
377
378 config ARCH_CLPS711X
379         bool "Cirrus Logic CLPS711x/EP721x-based"
380         select CPU_ARM720T
381         select ARCH_USES_GETTIMEOFFSET
382         select NEED_MACH_MEMORY_H
383         help
384           Support for Cirrus Logic 711x/721x based boards.
385
386 config ARCH_CNS3XXX
387         bool "Cavium Networks CNS3XXX family"
388         select CPU_V6K
389         select GENERIC_CLOCKEVENTS
390         select ARM_GIC
391         select MIGHT_HAVE_CACHE_L2X0
392         select MIGHT_HAVE_PCI
393         select PCI_DOMAINS if PCI
394         help
395           Support for Cavium Networks CNS3XXX platform.
396
397 config ARCH_GEMINI
398         bool "Cortina Systems Gemini"
399         select CPU_FA526
400         select ARCH_REQUIRE_GPIOLIB
401         select ARCH_USES_GETTIMEOFFSET
402         help
403           Support for the Cortina Systems Gemini family SoCs
404
405 config ARCH_PRIMA2
406         bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
407         select CPU_V7
408         select NO_IOPORT
409         select GENERIC_CLOCKEVENTS
410         select CLKDEV_LOOKUP
411         select GENERIC_IRQ_CHIP
412         select MIGHT_HAVE_CACHE_L2X0
413         select USE_OF
414         select ZONE_DMA
415         help
416           Support for CSR SiRFSoC ARM Cortex A9 Platform
417
418 config ARCH_EBSA110
419         bool "EBSA-110"
420         select CPU_SA110
421         select ISA
422         select NO_IOPORT
423         select ARCH_USES_GETTIMEOFFSET
424         select NEED_MACH_IO_H
425         select NEED_MACH_MEMORY_H
426         help
427           This is an evaluation board for the StrongARM processor available
428           from Digital. It has limited hardware on-board, including an
429           Ethernet interface, two PCMCIA sockets, two serial ports and a
430           parallel port.
431
432 config ARCH_EP93XX
433         bool "EP93xx-based"
434         select CPU_ARM920T
435         select ARM_AMBA
436         select ARM_VIC
437         select CLKDEV_LOOKUP
438         select ARCH_REQUIRE_GPIOLIB
439         select ARCH_HAS_HOLES_MEMORYMODEL
440         select ARCH_USES_GETTIMEOFFSET
441         select NEED_MACH_MEMORY_H
442         help
443           This enables support for the Cirrus EP93xx series of CPUs.
444
445 config ARCH_FOOTBRIDGE
446         bool "FootBridge"
447         select CPU_SA110
448         select FOOTBRIDGE
449         select GENERIC_CLOCKEVENTS
450         select HAVE_IDE
451         select NEED_MACH_IO_H
452         select NEED_MACH_MEMORY_H
453         help
454           Support for systems based on the DC21285 companion chip
455           ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
456
457 config ARCH_MXC
458         bool "Freescale MXC/iMX-based"
459         select GENERIC_CLOCKEVENTS
460         select ARCH_REQUIRE_GPIOLIB
461         select CLKDEV_LOOKUP
462         select CLKSRC_MMIO
463         select GENERIC_IRQ_CHIP
464         select MULTI_IRQ_HANDLER
465         help
466           Support for Freescale MXC/iMX-based family of processors
467
468 config ARCH_MXS
469         bool "Freescale MXS-based"
470         select GENERIC_CLOCKEVENTS
471         select ARCH_REQUIRE_GPIOLIB
472         select CLKDEV_LOOKUP
473         select CLKSRC_MMIO
474         select HAVE_CLK_PREPARE
475         help
476           Support for Freescale MXS-based family of processors
477
478 config ARCH_NETX
479         bool "Hilscher NetX based"
480         select CLKSRC_MMIO
481         select CPU_ARM926T
482         select ARM_VIC
483         select GENERIC_CLOCKEVENTS
484         help
485           This enables support for systems based on the Hilscher NetX Soc
486
487 config ARCH_H720X
488         bool "Hynix HMS720x-based"
489         select CPU_ARM720T
490         select ISA_DMA_API
491         select ARCH_USES_GETTIMEOFFSET
492         help
493           This enables support for systems based on the Hynix HMS720x
494
495 config ARCH_IOP13XX
496         bool "IOP13xx-based"
497         depends on MMU
498         select CPU_XSC3
499         select PLAT_IOP
500         select PCI
501         select ARCH_SUPPORTS_MSI
502         select VMSPLIT_1G
503         select NEED_MACH_IO_H
504         select NEED_MACH_MEMORY_H
505         select NEED_RET_TO_USER
506         help
507           Support for Intel's IOP13XX (XScale) family of processors.
508
509 config ARCH_IOP32X
510         bool "IOP32x-based"
511         depends on MMU
512         select CPU_XSCALE
513         select NEED_MACH_IO_H
514         select NEED_RET_TO_USER
515         select PLAT_IOP
516         select PCI
517         select ARCH_REQUIRE_GPIOLIB
518         help
519           Support for Intel's 80219 and IOP32X (XScale) family of
520           processors.
521
522 config ARCH_IOP33X
523         bool "IOP33x-based"
524         depends on MMU
525         select CPU_XSCALE
526         select NEED_MACH_IO_H
527         select NEED_RET_TO_USER
528         select PLAT_IOP
529         select PCI
530         select ARCH_REQUIRE_GPIOLIB
531         help
532           Support for Intel's IOP33X (XScale) family of processors.
533
534 config ARCH_IXP23XX
535         bool "IXP23XX-based"
536         depends on MMU
537         select CPU_XSC3
538         select PCI
539         select ARCH_USES_GETTIMEOFFSET
540         select NEED_MACH_IO_H
541         select NEED_MACH_MEMORY_H
542         help
543           Support for Intel's IXP23xx (XScale) family of processors.
544
545 config ARCH_IXP2000
546         bool "IXP2400/2800-based"
547         depends on MMU
548         select CPU_XSCALE
549         select PCI
550         select ARCH_USES_GETTIMEOFFSET
551         select NEED_MACH_IO_H
552         select NEED_MACH_MEMORY_H
553         help
554           Support for Intel's IXP2400/2800 (XScale) family of processors.
555
556 config ARCH_IXP4XX
557         bool "IXP4xx-based"
558         depends on MMU
559         select ARCH_HAS_DMA_SET_COHERENT_MASK
560         select CLKSRC_MMIO
561         select CPU_XSCALE
562         select ARCH_REQUIRE_GPIOLIB
563         select GENERIC_CLOCKEVENTS
564         select MIGHT_HAVE_PCI
565         select NEED_MACH_IO_H
566         select DMABOUNCE if PCI
567         help
568           Support for Intel's IXP4XX (XScale) family of processors.
569
570 config ARCH_DOVE
571         bool "Marvell Dove"
572         select CPU_V7
573         select PCI
574         select ARCH_REQUIRE_GPIOLIB
575         select GENERIC_CLOCKEVENTS
576         select NEED_MACH_IO_H
577         select PLAT_ORION
578         help
579           Support for the Marvell Dove SoC 88AP510
580
581 config ARCH_KIRKWOOD
582         bool "Marvell Kirkwood"
583         select CPU_FEROCEON
584         select PCI
585         select ARCH_REQUIRE_GPIOLIB
586         select GENERIC_CLOCKEVENTS
587         select NEED_MACH_IO_H
588         select PLAT_ORION
589         help
590           Support for the following Marvell Kirkwood series SoCs:
591           88F6180, 88F6192 and 88F6281.
592
593 config ARCH_LPC32XX
594         bool "NXP LPC32XX"
595         select CLKSRC_MMIO
596         select CPU_ARM926T
597         select ARCH_REQUIRE_GPIOLIB
598         select HAVE_IDE
599         select ARM_AMBA
600         select USB_ARCH_HAS_OHCI
601         select CLKDEV_LOOKUP
602         select GENERIC_CLOCKEVENTS
603         help
604           Support for the NXP LPC32XX family of processors
605
606 config ARCH_MV78XX0
607         bool "Marvell MV78xx0"
608         select CPU_FEROCEON
609         select PCI
610         select ARCH_REQUIRE_GPIOLIB
611         select GENERIC_CLOCKEVENTS
612         select NEED_MACH_IO_H
613         select PLAT_ORION
614         help
615           Support for the following Marvell MV78xx0 series SoCs:
616           MV781x0, MV782x0.
617
618 config ARCH_ORION5X
619         bool "Marvell Orion"
620         depends on MMU
621         select CPU_FEROCEON
622         select PCI
623         select ARCH_REQUIRE_GPIOLIB
624         select GENERIC_CLOCKEVENTS
625         select PLAT_ORION
626         help
627           Support for the following Marvell Orion 5x series SoCs:
628           Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
629           Orion-2 (5281), Orion-1-90 (6183).
630
631 config ARCH_MMP
632         bool "Marvell PXA168/910/MMP2"
633         depends on MMU
634         select ARCH_REQUIRE_GPIOLIB
635         select CLKDEV_LOOKUP
636         select GENERIC_CLOCKEVENTS
637         select GPIO_PXA
638         select TICK_ONESHOT
639         select PLAT_PXA
640         select SPARSE_IRQ
641         select GENERIC_ALLOCATOR
642         help
643           Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
644
645 config ARCH_KS8695
646         bool "Micrel/Kendin KS8695"
647         select CPU_ARM922T
648         select ARCH_REQUIRE_GPIOLIB
649         select ARCH_USES_GETTIMEOFFSET
650         select NEED_MACH_MEMORY_H
651         help
652           Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
653           System-on-Chip devices.
654
655 config ARCH_W90X900
656         bool "Nuvoton W90X900 CPU"
657         select CPU_ARM926T
658         select ARCH_REQUIRE_GPIOLIB
659         select CLKDEV_LOOKUP
660         select CLKSRC_MMIO
661         select GENERIC_CLOCKEVENTS
662         help
663           Support for Nuvoton (Winbond logic dept.) ARM9 processor,
664           At present, the w90x900 has been renamed nuc900, regarding
665           the ARM series product line, you can login the following
666           link address to know more.
667
668           <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
669                 ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
670
671 config ARCH_TEGRA
672         bool "NVIDIA Tegra"
673         select CLKDEV_LOOKUP
674         select CLKSRC_MMIO
675         select GENERIC_CLOCKEVENTS
676         select GENERIC_GPIO
677         select HAVE_CLK
678         select HAVE_SMP
679         select MIGHT_HAVE_CACHE_L2X0
680         select NEED_MACH_IO_H if PCI
681         select ARCH_HAS_CPUFREQ
682         select ARCH_PROVIDES_UDELAY
683         select FIQ
684         select PCI
685         help
686           This enables support for NVIDIA Tegra based systems (Tegra APX,
687           Tegra 6xx and Tegra 2 series).
688
689 config ARCH_PICOXCELL
690         bool "Picochip picoXcell"
691         select ARCH_REQUIRE_GPIOLIB
692         select ARM_PATCH_PHYS_VIRT
693         select ARM_VIC
694         select CPU_V6K
695         select DW_APB_TIMER
696         select GENERIC_CLOCKEVENTS
697         select GENERIC_GPIO
698         select HAVE_TCM
699         select NO_IOPORT
700         select SPARSE_IRQ
701         select USE_OF
702         help
703           This enables support for systems based on the Picochip picoXcell
704           family of Femtocell devices.  The picoxcell support requires device tree
705           for all boards.
706
707 config ARCH_PNX4008
708         bool "Philips Nexperia PNX4008 Mobile"
709         select CPU_ARM926T
710         select CLKDEV_LOOKUP
711         select ARCH_USES_GETTIMEOFFSET
712         help
713           This enables support for Philips PNX4008 mobile platform.
714
715 config ARCH_PXA
716         bool "PXA2xx/PXA3xx-based"
717         depends on MMU
718         select ARCH_MTD_XIP
719         select ARCH_HAS_CPUFREQ
720         select CLKDEV_LOOKUP
721         select CLKSRC_MMIO
722         select ARCH_REQUIRE_GPIOLIB
723         select GENERIC_CLOCKEVENTS
724         select GPIO_PXA
725         select TICK_ONESHOT
726         select PLAT_PXA
727         select SPARSE_IRQ
728         select AUTO_ZRELADDR
729         select MULTI_IRQ_HANDLER
730         select ARM_CPU_SUSPEND if PM
731         select HAVE_IDE
732         help
733           Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
734
735 config ARCH_MSM
736         bool "Qualcomm MSM"
737         select HAVE_CLK
738         select GENERIC_CLOCKEVENTS
739         select ARCH_REQUIRE_GPIOLIB
740         select CLKDEV_LOOKUP
741         help
742           Support for Qualcomm MSM/QSD based systems.  This runs on the
743           apps processor of the MSM/QSD and depends on a shared memory
744           interface to the modem processor which runs the baseband
745           stack and controls some vital subsystems
746           (clock and power control, etc).
747
748 config ARCH_SHMOBILE
749         bool "Renesas SH-Mobile / R-Mobile"
750         select HAVE_CLK
751         select CLKDEV_LOOKUP
752         select HAVE_MACH_CLKDEV
753         select HAVE_SMP
754         select GENERIC_CLOCKEVENTS
755         select MIGHT_HAVE_CACHE_L2X0
756         select NO_IOPORT
757         select SPARSE_IRQ
758         select MULTI_IRQ_HANDLER
759         select PM_GENERIC_DOMAINS if PM
760         select NEED_MACH_MEMORY_H
761         help
762           Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
763
764 config ARCH_RPC
765         bool "RiscPC"
766         select ARCH_ACORN
767         select FIQ
768         select ARCH_MAY_HAVE_PC_FDC
769         select HAVE_PATA_PLATFORM
770         select ISA_DMA_API
771         select NO_IOPORT
772         select ARCH_SPARSEMEM_ENABLE
773         select ARCH_USES_GETTIMEOFFSET
774         select HAVE_IDE
775         select NEED_MACH_IO_H
776         select NEED_MACH_MEMORY_H
777         help
778           On the Acorn Risc-PC, Linux can support the internal IDE disk and
779           CD-ROM interface, serial and parallel port, and the floppy drive.
780
781 config ARCH_SA1100
782         bool "SA1100-based"
783         select CLKSRC_MMIO
784         select CPU_SA1100
785         select ISA
786         select ARCH_SPARSEMEM_ENABLE
787         select ARCH_MTD_XIP
788         select ARCH_HAS_CPUFREQ
789         select CPU_FREQ
790         select GENERIC_CLOCKEVENTS
791         select CLKDEV_LOOKUP
792         select TICK_ONESHOT
793         select ARCH_REQUIRE_GPIOLIB
794         select HAVE_IDE
795         select NEED_MACH_MEMORY_H
796         select SPARSE_IRQ
797         help
798           Support for StrongARM 11x0 based boards.
799
800 config ARCH_S3C24XX
801         bool "Samsung S3C24XX SoCs"
802         select GENERIC_GPIO
803         select ARCH_HAS_CPUFREQ
804         select HAVE_CLK
805         select CLKDEV_LOOKUP
806         select ARCH_USES_GETTIMEOFFSET
807         select HAVE_S3C2410_I2C if I2C
808         select HAVE_S3C_RTC if RTC_CLASS
809         select HAVE_S3C2410_WATCHDOG if WATCHDOG
810         select NEED_MACH_IO_H
811         help
812           Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
813           and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
814           (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
815           Samsung SMDK2410 development board (and derivatives).
816
817 config ARCH_S3C64XX
818         bool "Samsung S3C64XX"
819         select PLAT_SAMSUNG
820         select CPU_V6
821         select ARM_VIC
822         select HAVE_CLK
823         select HAVE_TCM
824         select CLKDEV_LOOKUP
825         select NO_IOPORT
826         select ARCH_USES_GETTIMEOFFSET
827         select ARCH_HAS_CPUFREQ
828         select ARCH_REQUIRE_GPIOLIB
829         select SAMSUNG_CLKSRC
830         select SAMSUNG_IRQ_VIC_TIMER
831         select S3C_GPIO_TRACK
832         select S3C_DEV_NAND
833         select USB_ARCH_HAS_OHCI
834         select SAMSUNG_GPIOLIB_4BIT
835         select HAVE_S3C2410_I2C if I2C
836         select HAVE_S3C2410_WATCHDOG if WATCHDOG
837         help
838           Samsung S3C64XX series based systems
839
840 config ARCH_S5P64X0
841         bool "Samsung S5P6440 S5P6450"
842         select CPU_V6
843         select GENERIC_GPIO
844         select HAVE_CLK
845         select CLKDEV_LOOKUP
846         select CLKSRC_MMIO
847         select HAVE_S3C2410_WATCHDOG if WATCHDOG
848         select GENERIC_CLOCKEVENTS
849         select HAVE_S3C2410_I2C if I2C
850         select HAVE_S3C_RTC if RTC_CLASS
851         help
852           Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
853           SMDK6450.
854
855 config ARCH_S5PC100
856         bool "Samsung S5PC100"
857         select GENERIC_GPIO
858         select HAVE_CLK
859         select CLKDEV_LOOKUP
860         select CPU_V7
861         select ARCH_USES_GETTIMEOFFSET
862         select HAVE_S3C2410_I2C if I2C
863         select HAVE_S3C_RTC if RTC_CLASS
864         select HAVE_S3C2410_WATCHDOG if WATCHDOG
865         help
866           Samsung S5PC100 series based systems
867
868 config ARCH_S5PV210
869         bool "Samsung S5PV210/S5PC110"
870         select CPU_V7
871         select ARCH_SPARSEMEM_ENABLE
872         select ARCH_HAS_HOLES_MEMORYMODEL
873         select GENERIC_GPIO
874         select HAVE_CLK
875         select CLKDEV_LOOKUP
876         select CLKSRC_MMIO
877         select ARCH_HAS_CPUFREQ
878         select GENERIC_CLOCKEVENTS
879         select HAVE_S3C2410_I2C if I2C
880         select HAVE_S3C_RTC if RTC_CLASS
881         select HAVE_S3C2410_WATCHDOG if WATCHDOG
882         select NEED_MACH_MEMORY_H
883         help
884           Samsung S5PV210/S5PC110 series based systems
885
886 config ARCH_EXYNOS
887         bool "SAMSUNG EXYNOS"
888         select CPU_V7
889         select ARCH_SPARSEMEM_ENABLE
890         select ARCH_HAS_HOLES_MEMORYMODEL
891         select GENERIC_GPIO
892         select HAVE_CLK
893         select CLKDEV_LOOKUP
894         select ARCH_HAS_CPUFREQ
895         select GENERIC_CLOCKEVENTS
896         select HAVE_S3C_RTC if RTC_CLASS
897         select HAVE_S3C2410_I2C if I2C
898         select HAVE_S3C2410_WATCHDOG if WATCHDOG
899         select NEED_MACH_MEMORY_H
900         help
901           Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
902
903 config ARCH_SHARK
904         bool "Shark"
905         select CPU_SA110
906         select ISA
907         select ISA_DMA
908         select ZONE_DMA
909         select PCI
910         select ARCH_USES_GETTIMEOFFSET
911         select NEED_MACH_MEMORY_H
912         select NEED_MACH_IO_H
913         help
914           Support for the StrongARM based Digital DNARD machine, also known
915           as "Shark" (<http://www.shark-linux.de/shark.html>).
916
917 config ARCH_U300
918         bool "ST-Ericsson U300 Series"
919         depends on MMU
920         select CLKSRC_MMIO
921         select CPU_ARM926T
922         select HAVE_TCM
923         select ARM_AMBA
924         select ARM_PATCH_PHYS_VIRT
925         select ARM_VIC
926         select GENERIC_CLOCKEVENTS
927         select CLKDEV_LOOKUP
928         select HAVE_MACH_CLKDEV
929         select GENERIC_GPIO
930         select ARCH_REQUIRE_GPIOLIB
931         help
932           Support for ST-Ericsson U300 series mobile platforms.
933
934 config ARCH_U8500
935         bool "ST-Ericsson U8500 Series"
936         depends on MMU
937         select CPU_V7
938         select ARM_AMBA
939         select GENERIC_CLOCKEVENTS
940         select CLKDEV_LOOKUP
941         select ARCH_REQUIRE_GPIOLIB
942         select ARCH_HAS_CPUFREQ
943         select HAVE_SMP
944         select MIGHT_HAVE_CACHE_L2X0
945         help
946           Support for ST-Ericsson's Ux500 architecture
947
948 config ARCH_NOMADIK
949         bool "STMicroelectronics Nomadik"
950         select ARM_AMBA
951         select ARM_VIC
952         select CPU_ARM926T
953         select CLKDEV_LOOKUP
954         select GENERIC_CLOCKEVENTS
955         select MIGHT_HAVE_CACHE_L2X0
956         select ARCH_REQUIRE_GPIOLIB
957         help
958           Support for the Nomadik platform by ST-Ericsson
959
960 config ARCH_DAVINCI
961         bool "TI DaVinci"
962         select GENERIC_CLOCKEVENTS
963         select ARCH_REQUIRE_GPIOLIB
964         select ZONE_DMA
965         select HAVE_IDE
966         select CLKDEV_LOOKUP
967         select GENERIC_ALLOCATOR
968         select GENERIC_IRQ_CHIP
969         select ARCH_HAS_HOLES_MEMORYMODEL
970         help
971           Support for TI's DaVinci platform.
972
973 config ARCH_OMAP
974         bool "TI OMAP"
975         select HAVE_CLK
976         select ARCH_REQUIRE_GPIOLIB
977         select ARCH_HAS_CPUFREQ
978         select CLKSRC_MMIO
979         select GENERIC_CLOCKEVENTS
980         select ARCH_HAS_HOLES_MEMORYMODEL
981         help
982           Support for TI's OMAP platform (OMAP1/2/3/4).
983
984 config PLAT_SPEAR
985         bool "ST SPEAr"
986         select ARM_AMBA
987         select ARCH_REQUIRE_GPIOLIB
988         select CLKDEV_LOOKUP
989         select CLKSRC_MMIO
990         select GENERIC_CLOCKEVENTS
991         select HAVE_CLK
992         help
993           Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
994
995 config ARCH_VT8500
996         bool "VIA/WonderMedia 85xx"
997         select CPU_ARM926T
998         select GENERIC_GPIO
999         select ARCH_HAS_CPUFREQ
1000         select GENERIC_CLOCKEVENTS
1001         select ARCH_REQUIRE_GPIOLIB
1002         select HAVE_PWM
1003         help
1004           Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
1005
1006 config ARCH_ZYNQ
1007         bool "Xilinx Zynq ARM Cortex A9 Platform"
1008         select CPU_V7
1009         select GENERIC_CLOCKEVENTS
1010         select CLKDEV_LOOKUP
1011         select ARM_GIC
1012         select ARM_AMBA
1013         select ICST
1014         select MIGHT_HAVE_CACHE_L2X0
1015         select USE_OF
1016         help
1017           Support for Xilinx Zynq ARM Cortex A9 Platform
1018 endchoice
1019
1020 #
1021 # This is sorted alphabetically by mach-* pathname.  However, plat-*
1022 # Kconfigs may be included either alphabetically (according to the
1023 # plat- suffix) or along side the corresponding mach-* source.
1024 #
1025 source "arch/arm/mach-at91/Kconfig"
1026
1027 source "arch/arm/mach-bcmring/Kconfig"
1028
1029 source "arch/arm/mach-clps711x/Kconfig"
1030
1031 source "arch/arm/mach-cns3xxx/Kconfig"
1032
1033 source "arch/arm/mach-davinci/Kconfig"
1034
1035 source "arch/arm/mach-dove/Kconfig"
1036
1037 source "arch/arm/mach-ep93xx/Kconfig"
1038
1039 source "arch/arm/mach-footbridge/Kconfig"
1040
1041 source "arch/arm/mach-gemini/Kconfig"
1042
1043 source "arch/arm/mach-h720x/Kconfig"
1044
1045 source "arch/arm/mach-integrator/Kconfig"
1046
1047 source "arch/arm/mach-iop32x/Kconfig"
1048
1049 source "arch/arm/mach-iop33x/Kconfig"
1050
1051 source "arch/arm/mach-iop13xx/Kconfig"
1052
1053 source "arch/arm/mach-ixp4xx/Kconfig"
1054
1055 source "arch/arm/mach-ixp2000/Kconfig"
1056
1057 source "arch/arm/mach-ixp23xx/Kconfig"
1058
1059 source "arch/arm/mach-kirkwood/Kconfig"
1060
1061 source "arch/arm/mach-ks8695/Kconfig"
1062
1063 source "arch/arm/mach-lpc32xx/Kconfig"
1064
1065 source "arch/arm/mach-msm/Kconfig"
1066
1067 source "arch/arm/mach-mv78xx0/Kconfig"
1068
1069 source "arch/arm/plat-mxc/Kconfig"
1070
1071 source "arch/arm/mach-mxs/Kconfig"
1072
1073 source "arch/arm/mach-netx/Kconfig"
1074
1075 source "arch/arm/mach-nomadik/Kconfig"
1076 source "arch/arm/plat-nomadik/Kconfig"
1077
1078 source "arch/arm/plat-omap/Kconfig"
1079
1080 source "arch/arm/mach-omap1/Kconfig"
1081
1082 source "arch/arm/mach-omap2/Kconfig"
1083
1084 source "arch/arm/mach-orion5x/Kconfig"
1085
1086 source "arch/arm/mach-pxa/Kconfig"
1087 source "arch/arm/plat-pxa/Kconfig"
1088
1089 source "arch/arm/mach-mmp/Kconfig"
1090
1091 source "arch/arm/mach-realview/Kconfig"
1092
1093 source "arch/arm/mach-sa1100/Kconfig"
1094
1095 source "arch/arm/plat-samsung/Kconfig"
1096 source "arch/arm/plat-s3c24xx/Kconfig"
1097 source "arch/arm/plat-s5p/Kconfig"
1098
1099 source "arch/arm/plat-spear/Kconfig"
1100
1101 source "arch/arm/mach-s3c24xx/Kconfig"
1102 if ARCH_S3C24XX
1103 source "arch/arm/mach-s3c2412/Kconfig"
1104 source "arch/arm/mach-s3c2440/Kconfig"
1105 endif
1106
1107 if ARCH_S3C64XX
1108 source "arch/arm/mach-s3c64xx/Kconfig"
1109 endif
1110
1111 source "arch/arm/mach-s5p64x0/Kconfig"
1112
1113 source "arch/arm/mach-s5pc100/Kconfig"
1114
1115 source "arch/arm/mach-s5pv210/Kconfig"
1116
1117 source "arch/arm/mach-exynos/Kconfig"
1118
1119 source "arch/arm/mach-shmobile/Kconfig"
1120
1121 source "arch/arm/mach-tegra/Kconfig"
1122
1123 source "arch/arm/mach-u300/Kconfig"
1124
1125 source "arch/arm/mach-ux500/Kconfig"
1126
1127 source "arch/arm/mach-versatile/Kconfig"
1128
1129 source "arch/arm/mach-vexpress/Kconfig"
1130 source "arch/arm/plat-versatile/Kconfig"
1131
1132 source "arch/arm/mach-vt8500/Kconfig"
1133
1134 source "arch/arm/mach-w90x900/Kconfig"
1135
1136 # Definitions to make life easier
1137 config ARCH_ACORN
1138         bool
1139
1140 config PLAT_IOP
1141         bool
1142         select GENERIC_CLOCKEVENTS
1143
1144 config PLAT_ORION
1145         bool
1146         select CLKSRC_MMIO
1147         select GENERIC_IRQ_CHIP
1148
1149 config PLAT_PXA
1150         bool
1151
1152 config PLAT_VERSATILE
1153         bool
1154
1155 config ARM_TIMER_SP804
1156         bool
1157         select CLKSRC_MMIO
1158         select HAVE_SCHED_CLOCK
1159
1160 source arch/arm/mm/Kconfig
1161
1162 config ARM_NR_BANKS
1163         int
1164         default 16 if ARCH_EP93XX
1165         default 16 if ARCH_TEGRA_4GB_MEMORY
1166         default 8
1167
1168 config IWMMXT
1169         bool "Enable iWMMXt support"
1170         depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
1171         default y if PXA27x || PXA3xx || PXA95x || ARCH_MMP
1172         help
1173           Enable support for iWMMXt context switching at run time if
1174           running on a CPU that supports it.
1175
1176 config XSCALE_PMU
1177         bool
1178         depends on CPU_XSCALE
1179         default y
1180
1181 config CPU_HAS_PMU
1182         depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
1183                    (!ARCH_OMAP3 || OMAP3_EMU)
1184         default y
1185         bool
1186
1187 config MULTI_IRQ_HANDLER
1188         bool
1189         help
1190           Allow each machine to specify it's own IRQ handler at run time.
1191
1192 if !MMU
1193 source "arch/arm/Kconfig-nommu"
1194 endif
1195
1196 config ARM_ERRATA_326103
1197         bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
1198         depends on CPU_V6
1199         help
1200           Executing a SWP instruction to read-only memory does not set bit 11
1201           of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to
1202           treat the access as a read, preventing a COW from occurring and
1203           causing the faulting task to livelock.
1204
1205 config ARM_ERRATA_411920
1206         bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
1207         depends on CPU_V6 || CPU_V6K
1208         help
1209           Invalidation of the Instruction Cache operation can
1210           fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
1211           It does not affect the MPCore. This option enables the ARM Ltd.
1212           recommended workaround.
1213
1214 config ARM_ERRATA_430973
1215         bool "ARM errata: Stale prediction on replaced interworking branch"
1216         depends on CPU_V7
1217         help
1218           This option enables the workaround for the 430973 Cortex-A8
1219           (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
1220           interworking branch is replaced with another code sequence at the
1221           same virtual address, whether due to self-modifying code or virtual
1222           to physical address re-mapping, Cortex-A8 does not recover from the
1223           stale interworking branch prediction. This results in Cortex-A8
1224           executing the new code sequence in the incorrect ARM or Thumb state.
1225           The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
1226           and also flushes the branch target cache at every context switch.
1227           Note that setting specific bits in the ACTLR register may not be
1228           available in non-secure mode.
1229
1230 config ARM_ERRATA_458693
1231         bool "ARM errata: Processor deadlock when a false hazard is created"
1232         depends on CPU_V7
1233         help
1234           This option enables the workaround for the 458693 Cortex-A8 (r2p0)
1235           erratum. For very specific sequences of memory operations, it is
1236           possible for a hazard condition intended for a cache line to instead
1237           be incorrectly associated with a different cache line. This false
1238           hazard might then cause a processor deadlock. The workaround enables
1239           the L1 caching of the NEON accesses and disables the PLD instruction
1240           in the ACTLR register. Note that setting specific bits in the ACTLR
1241           register may not be available in non-secure mode.
1242
1243 config ARM_ERRATA_460075
1244         bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
1245         depends on CPU_V7
1246         help
1247           This option enables the workaround for the 460075 Cortex-A8 (r2p0)
1248           erratum. Any asynchronous access to the L2 cache may encounter a
1249           situation in which recent store transactions to the L2 cache are lost
1250           and overwritten with stale memory contents from external memory. The
1251           workaround disables the write-allocate mode for the L2 cache via the
1252           ACTLR register. Note that setting specific bits in the ACTLR register
1253           may not be available in non-secure mode.
1254
1255 config ARM_ERRATA_716044
1256         bool "ARM errata: an uncacheable load multiple instruction can cause a deadlock"
1257         depends on CPU_V7
1258         help
1259          Under some rare circumstances, an uncacheable load multiple
1260          instruction (LDRD, LDM, VLDM, VLD1, VLD2, VLD3, VLD4) can cause
1261          a processor deadlock.
1262
1263 config ARM_ERRATA_742230
1264         bool "ARM errata: DMB operation may be faulty"
1265         depends on CPU_V7 && SMP
1266         help
1267           This option enables the workaround for the 742230 Cortex-A9
1268           (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
1269           between two write operations may not ensure the correct visibility
1270           ordering of the two writes. This workaround sets a specific bit in
1271           the diagnostic register of the Cortex-A9 which causes the DMB
1272           instruction to behave as a DSB, ensuring the correct behaviour of
1273           the two writes.
1274
1275 config ARM_ERRATA_742231
1276         bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
1277         depends on CPU_V7 && SMP
1278         help
1279           This option enables the workaround for the 742231 Cortex-A9
1280           (r2p0..r2p2) erratum. Under certain conditions, specific to the
1281           Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode,
1282           accessing some data located in the same cache line, may get corrupted
1283           data due to bad handling of the address hazard when the line gets
1284           replaced from one of the CPUs at the same time as another CPU is
1285           accessing it. This workaround sets specific bits in the diagnostic
1286           register of the Cortex-A9 which reduces the linefill issuing
1287           capabilities of the processor.
1288
1289 config PL310_ERRATA_588369
1290         bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines"
1291         depends on CACHE_L2X0
1292         help
1293            The PL310 L2 cache controller implements three types of Clean &
1294            Invalidate maintenance operations: by Physical Address
1295            (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
1296            They are architecturally defined to behave as the execution of a
1297            clean operation followed immediately by an invalidate operation,
1298            both performing to the same memory location. This functionality
1299            is not correctly implemented in PL310 as clean lines are not
1300            invalidated as a result of these operations.
1301
1302 config ARM_ERRATA_720789
1303         bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
1304         depends on CPU_V7
1305         help
1306           This option enables the workaround for the 720789 Cortex-A9 (prior to
1307           r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
1308           broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS.
1309           As a consequence of this erratum, some TLB entries which should be
1310           invalidated are not, resulting in an incoherency in the system page
1311           tables. The workaround changes the TLB flushing routines to invalidate
1312           entries regardless of the ASID.
1313
1314 config PL310_ERRATA_727915
1315         bool "PL310 errata: Background Clean & Invalidate by Way operation can cause data corruption"
1316         depends on CACHE_L2X0
1317         help
1318           PL310 implements the Clean & Invalidate by Way L2 cache maintenance
1319           operation (offset 0x7FC). This operation runs in background so that
1320           PL310 can handle normal accesses while it is in progress. Under very
1321           rare circumstances, due to this erratum, write data can be lost when
1322           PL310 treats a cacheable write transaction during a Clean &
1323           Invalidate by Way operation.
1324
1325 config ARM_ERRATA_743622
1326         bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption"
1327         depends on CPU_V7
1328         help
1329           This option enables the workaround for the 743622 Cortex-A9
1330           (r2p*) erratum. Under very rare conditions, a faulty
1331           optimisation in the Cortex-A9 Store Buffer may lead to data
1332           corruption. This workaround sets a specific bit in the diagnostic
1333           register of the Cortex-A9 which disables the Store Buffer
1334           optimisation, preventing the defect from occurring. This has no
1335           visible impact on the overall performance or power consumption of the
1336           processor.
1337
1338 config ARM_ERRATA_751472
1339         bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
1340         depends on CPU_V7
1341         help
1342           This option enables the workaround for the 751472 Cortex-A9 (prior
1343           to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
1344           completion of a following broadcasted operation if the second
1345           operation is received by a CPU before the ICIALLUIS has completed,
1346           potentially leading to corrupted entries in the cache or TLB.
1347
1348 config PL310_ERRATA_753970
1349         bool "PL310 errata: cache sync operation may be faulty"
1350         depends on CACHE_PL310
1351         help
1352           This option enables the workaround for the 753970 PL310 (r3p0) erratum.
1353
1354           Under some condition the effect of cache sync operation on
1355           the store buffer still remains when the operation completes.
1356           This means that the store buffer is always asked to drain and
1357           this prevents it from merging any further writes. The workaround
1358           is to replace the normal offset of cache sync operation (0x730)
1359           by another offset targeting an unmapped PL310 register 0x740.
1360           This has the same effect as the cache sync operation: store buffer
1361           drain and waiting for all buffers empty.
1362
1363 config ARM_ERRATA_754322
1364         bool "ARM errata: possible faulty MMU translations following an ASID switch"
1365         depends on CPU_V7
1366         help
1367           This option enables the workaround for the 754322 Cortex-A9 (r2p*,
1368           r3p*) erratum. A speculative memory access may cause a page table walk
1369           which starts prior to an ASID switch but completes afterwards. This
1370           can populate the micro-TLB with a stale entry which may be hit with
1371           the new ASID. This workaround places two dsb instructions in the mm
1372           switching code so that no page table walks can cross the ASID switch.
1373
1374 config ARM_ERRATA_754327
1375         bool "ARM errata: no automatic Store Buffer drain"
1376         depends on CPU_V7 && SMP
1377         help
1378           This option enables the workaround for the 754327 Cortex-A9 (prior to
1379           r2p0) erratum. The Store Buffer does not have any automatic draining
1380           mechanism and therefore a livelock may occur if an external agent
1381           continuously polls a memory location waiting to observe an update.
1382           This workaround defines cpu_relax() as smp_mb(), preventing correctly
1383           written polling loops from denying visibility of updates to memory.
1384
1385 config ARM_ERRATA_364296
1386         bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
1387         depends on CPU_V6 && !SMP
1388         help
1389           This options enables the workaround for the 364296 ARM1136
1390           r0p2 erratum (possible cache data corruption with
1391           hit-under-miss enabled). It sets the undocumented bit 31 in
1392           the auxiliary control register and the FI bit in the control
1393           register, thus disabling hit-under-miss without putting the
1394           processor into full low interrupt latency mode. ARM11MPCore
1395           is not affected.
1396
1397 config ARM_ERRATA_764369
1398         bool "ARM errata: Data cache line maintenance operation by MVA may not succeed"
1399         depends on CPU_V7 && SMP
1400         help
1401           This option enables the workaround for erratum 764369
1402           affecting Cortex-A9 MPCore with two or more processors (all
1403           current revisions). Under certain timing circumstances, a data
1404           cache line maintenance operation by MVA targeting an Inner
1405           Shareable memory region may fail to proceed up to either the
1406           Point of Coherency or to the Point of Unification of the
1407           system. This workaround adds a DSB instruction before the
1408           relevant cache maintenance functions and sets a specific bit
1409           in the diagnostic control register of the SCU.
1410
1411 config ARM_ERRATA_720791
1412         bool "ARM errata: Dynamic high-level clock gating corrupts the Jazelle instruction stream"
1413         depends on CPU_V7
1414         help
1415           This option enables the workaround for the 720791 Cortex-A9
1416           (r1p0..r1p2) erratum.  The Jazelle instruction stream may be
1417           corrupted when dynamic high-level clock gating is enabled.
1418           This workaround disables gating the Core clock when the Instruction
1419           side is waiting for a Page Table Walk answer or linefill completion.
1420
1421 config ARM_ERRATA_752520
1422         bool "ARM errata: Faulty arbitration between PLD and Cacheable TLB requests may create a system deadlock"
1423         depends on CPU_V7
1424         help
1425           Under rare circumstances, PLDs may interfere with a Cacheable page table walk,
1426           creating a processor deadlock. The erratum can only happen when the Data Cache
1427           and MMU are enabled, with the TLB descriptors marked as L1 cacheable,
1428           so that Page Table Walks are performed as cache linefills.
1429
1430 config PL310_ERRATA_769419
1431         bool "PL310 errata: no automatic Store Buffer drain"
1432         depends on CACHE_L2X0
1433         help
1434           On revisions of the PL310 prior to r3p2, the Store Buffer does
1435           not automatically drain. This can cause normal, non-cacheable
1436           writes to be retained when the memory system is idle, leading
1437           to suboptimal I/O performance for drivers using coherent DMA.
1438           This option adds a write barrier to the cpu_idle loop so that,
1439           on systems with an outer cache, the store buffer is drained
1440           explicitly.
1441
1442 endmenu
1443
1444 source "arch/arm/common/Kconfig"
1445
1446 menu "Bus support"
1447
1448 config ARM_AMBA
1449         bool
1450
1451 config ISA
1452         bool
1453         help
1454           Find out whether you have ISA slots on your motherboard.  ISA is the
1455           name of a bus system, i.e. the way the CPU talks to the other stuff
1456           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1457           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1458           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1459
1460 # Select ISA DMA controller support
1461 config ISA_DMA
1462         bool
1463         select ISA_DMA_API
1464
1465 # Select ISA DMA interface
1466 config ISA_DMA_API
1467         bool
1468
1469 config PCI
1470         bool "PCI support" if MIGHT_HAVE_PCI
1471         help
1472           Find out whether you have a PCI motherboard. PCI is the name of a
1473           bus system, i.e. the way the CPU talks to the other stuff inside
1474           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1475           VESA. If you have PCI, say Y, otherwise N.
1476
1477 config PCI_DOMAINS
1478         bool
1479         depends on PCI
1480
1481 config PCI_NANOENGINE
1482         bool "BSE nanoEngine PCI support"
1483         depends on SA1100_NANOENGINE
1484         help
1485           Enable PCI on the BSE nanoEngine board.
1486
1487 config PCI_SYSCALL
1488         def_bool PCI
1489
1490 # Select the host bridge type
1491 config PCI_HOST_VIA82C505
1492         bool
1493         depends on PCI && ARCH_SHARK
1494         default y
1495
1496 config PCI_HOST_ITE8152
1497         bool
1498         depends on PCI && MACH_ARMCORE
1499         default y
1500         select DMABOUNCE
1501
1502 source "drivers/pci/Kconfig"
1503
1504 source "drivers/pci/pcie/Kconfig"
1505
1506 source "drivers/pcmcia/Kconfig"
1507
1508 endmenu
1509
1510 menu "Kernel Features"
1511
1512 source "kernel/time/Kconfig"
1513
1514 config HAVE_SMP
1515         bool
1516         help
1517           This option should be selected by machines which have an SMP-
1518           capable CPU.
1519
1520           The only effect of this option is to make the SMP-related
1521           options available to the user for configuration.
1522
1523 config SMP
1524         bool "Symmetric Multi-Processing"
1525         depends on CPU_V6K || CPU_V7
1526         depends on GENERIC_CLOCKEVENTS
1527         depends on HAVE_SMP
1528         depends on MMU
1529         select USE_GENERIC_SMP_HELPERS
1530         select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP && \
1531                  (!ARCH_TEGRA || ARCH_TEGRA_HAS_ARM_SCU)
1532         help
1533           This enables support for systems with more than one CPU. If you have
1534           a system with only one CPU, like most personal computers, say N. If
1535           you have a system with more than one CPU, say Y.
1536
1537           If you say N here, the kernel will run on single and multiprocessor
1538           machines, but will use only one CPU of a multiprocessor machine. If
1539           you say Y here, the kernel will run on many, but not all, single
1540           processor machines. On a single processor machine, the kernel will
1541           run faster if you say N here.
1542
1543           See also <file:Documentation/x86/i386/IO-APIC.txt>,
1544           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
1545           <http://tldp.org/HOWTO/SMP-HOWTO.html>.
1546
1547           If you don't know what to do here, say N.
1548
1549 config SMP_ON_UP
1550         bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
1551         depends on EXPERIMENTAL
1552         depends on SMP && !XIP_KERNEL
1553         default y
1554         help
1555           SMP kernels contain instructions which fail on non-SMP processors.
1556           Enabling this option allows the kernel to modify itself to make
1557           these instructions safe.  Disabling it allows about 1K of space
1558           savings.
1559
1560           If you don't know what to do here, say Y.
1561
1562 config ARM_CPU_TOPOLOGY
1563         bool "Support cpu topology definition"
1564         depends on SMP && CPU_V7
1565         default y
1566         help
1567           Support ARM cpu topology definition. The MPIDR register defines
1568           affinity between processors which is then used to describe the cpu
1569           topology of an ARM System.
1570
1571 config SCHED_MC
1572         bool "Multi-core scheduler support"
1573         depends on ARM_CPU_TOPOLOGY
1574         help
1575           Multi-core scheduler support improves the CPU scheduler's decision
1576           making when dealing with multi-core CPU chips at a cost of slightly
1577           increased overhead in some places. If unsure say N here.
1578
1579 config SCHED_SMT
1580         bool "SMT scheduler support"
1581         depends on ARM_CPU_TOPOLOGY
1582         help
1583           Improves the CPU scheduler's decision making when dealing with
1584           MultiThreading at a cost of slightly increased overhead in some
1585           places. If unsure say N here.
1586
1587 config HAVE_ARM_SCU
1588         bool
1589         help
1590           This option enables support for the ARM system coherency unit
1591
1592 config ARM_ARCH_TIMER
1593         bool "Architected timer support"
1594         depends on CPU_V7
1595         select TICK_ONESHOT
1596         help
1597           This option enables support for the ARM architected timer
1598
1599 config HAVE_ARM_TWD
1600         bool
1601         depends on SMP
1602         select TICK_ONESHOT
1603         help
1604           This options enables support for the ARM timer and watchdog unit
1605
1606 choice
1607         prompt "Memory split"
1608         default VMSPLIT_3G
1609         help
1610           Select the desired split between kernel and user memory.
1611
1612           If you are not absolutely sure what you are doing, leave this
1613           option alone!
1614
1615         config VMSPLIT_3G
1616                 bool "3G/1G user/kernel split"
1617         config VMSPLIT_2G
1618                 bool "2G/2G user/kernel split"
1619         config VMSPLIT_1G
1620                 bool "1G/3G user/kernel split"
1621 endchoice
1622
1623 config PAGE_OFFSET
1624         hex
1625         default 0x40000000 if VMSPLIT_1G
1626         default 0x80000000 if VMSPLIT_2G
1627         default 0xC0000000
1628
1629 choice
1630         prompt "Task size"
1631         depends on MMU
1632         default TASK_SIZE_1G_LESS_16M if VMSPLIT_1G
1633         default TASK_SIZE_2G_LESS_16M if VMSPLIT_2G
1634         default TASK_SIZE_3G_LESS_16M
1635
1636 config TASK_SIZE_1G_LESS_16M
1637         bool "Task size is 1GiB less 16MiB"
1638         depends on VMSPLIT_1G
1639
1640 config TASK_SIZE_1G_LESS_24M
1641         bool "Task size is 1GiB less 24MiB"
1642         depends on VMSPLIT_1G
1643
1644 config TASK_SIZE_2G_LESS_16M
1645         bool "Task size is 2GiB less 16MiB"
1646         depends on VMSPLIT_2G
1647
1648 config TASK_SIZE_2G_LESS_24M
1649         bool "Task size is 2GiB less 24MiB"
1650         depends on VMSPLIT_2G
1651
1652 config TASK_SIZE_3G_LESS_16M
1653         bool "Task size is 3GiB less 16MiB"
1654         depends on VMSPLIT_3G
1655
1656 config TASK_SIZE_3G_LESS_24M
1657         bool "Task size is 3GiB less 24MiB"
1658         depends on VMSPLIT_3G
1659
1660 endchoice
1661
1662 config TASK_SIZE
1663         hex
1664         depends on MMU
1665         default 0x3E800000 if TASK_SIZE_1G_LESS_24M
1666         default 0x3F000000 if TASK_SIZE_1G_LESS_16M
1667         default 0x7E800000 if TASK_SIZE_2G_LESS_24M
1668         default 0x7F000000 if TASK_SIZE_2G_LESS_16M
1669         default 0xBE800000 if TASK_SIZE_3G_LESS_24M
1670         default 0xBF000000
1671
1672 config NR_CPUS
1673         int "Maximum number of CPUs (2-32)"
1674         range 2 32
1675         depends on SMP
1676         default "4"
1677
1678 config HOTPLUG_CPU
1679         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
1680         depends on SMP && HOTPLUG && EXPERIMENTAL
1681         help
1682           Say Y here to experiment with turning CPUs off and on.  CPUs
1683           can be controlled through /sys/devices/system/cpu.
1684
1685 config LOCAL_TIMERS
1686         bool "Use local timer interrupts"
1687         depends on SMP
1688         default y
1689         select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT && !ARM_ARCH_TIMER)
1690         help
1691           Enable support for local timers on SMP platforms, rather then the
1692           legacy IPI broadcast method.  Local timers allows the system
1693           accounting to be spread across the timer interval, preventing a
1694           "thundering herd" at every timer tick.
1695
1696 config ARCH_NR_GPIO
1697         int
1698         default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
1699         default 355 if ARCH_U8500
1700         default 264 if MACH_H4700
1701         default 0
1702         help
1703           Maximum number of GPIOs in the system.
1704
1705           If unsure, leave the default value.
1706
1707 source kernel/Kconfig.preempt
1708
1709 config HZ
1710         int
1711         default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
1712                 ARCH_S5PV210 || ARCH_EXYNOS4
1713         default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
1714         default AT91_TIMER_HZ if ARCH_AT91
1715         default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
1716         default 100
1717
1718 config THUMB2_KERNEL
1719         bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)"
1720         depends on CPU_V7 && !CPU_V6 && !CPU_V6K && EXPERIMENTAL
1721         select AEABI
1722         select ARM_ASM_UNIFIED
1723         select ARM_UNWIND
1724         help
1725           By enabling this option, the kernel will be compiled in
1726           Thumb-2 mode. A compiler/assembler that understand the unified
1727           ARM-Thumb syntax is needed.
1728
1729           If unsure, say N.
1730
1731 config THUMB2_AVOID_R_ARM_THM_JUMP11
1732         bool "Work around buggy Thumb-2 short branch relocations in gas"
1733         depends on THUMB2_KERNEL && MODULES
1734         default y
1735         help
1736           Various binutils versions can resolve Thumb-2 branches to
1737           locally-defined, preemptible global symbols as short-range "b.n"
1738           branch instructions.
1739
1740           This is a problem, because there's no guarantee the final
1741           destination of the symbol, or any candidate locations for a
1742           trampoline, are within range of the branch.  For this reason, the
1743           kernel does not support fixing up the R_ARM_THM_JUMP11 (102)
1744           relocation in modules at all, and it makes little sense to add
1745           support.
1746
1747           The symptom is that the kernel fails with an "unsupported
1748           relocation" error when loading some modules.
1749
1750           Until fixed tools are available, passing
1751           -fno-optimize-sibling-calls to gcc should prevent gcc generating
1752           code which hits this problem, at the cost of a bit of extra runtime
1753           stack usage in some cases.
1754
1755           The problem is described in more detail at:
1756               https://bugs.launchpad.net/binutils-linaro/+bug/725126
1757
1758           Only Thumb-2 kernels are affected.
1759
1760           Unless you are sure your tools don't have this problem, say Y.
1761
1762 config ARM_ASM_UNIFIED
1763         bool
1764
1765 config AEABI
1766         bool "Use the ARM EABI to compile the kernel"
1767         help
1768           This option allows for the kernel to be compiled using the latest
1769           ARM ABI (aka EABI).  This is only useful if you are using a user
1770           space environment that is also compiled with EABI.
1771
1772           Since there are major incompatibilities between the legacy ABI and
1773           EABI, especially with regard to structure member alignment, this
1774           option also changes the kernel syscall calling convention to
1775           disambiguate both ABIs and allow for backward compatibility support
1776           (selected with CONFIG_OABI_COMPAT).
1777
1778           To use this you need GCC version 4.0.0 or later.
1779
1780 config OABI_COMPAT
1781         bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1782         depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL
1783         default y
1784         help
1785           This option preserves the old syscall interface along with the
1786           new (ARM EABI) one. It also provides a compatibility layer to
1787           intercept syscalls that have structure arguments which layout
1788           in memory differs between the legacy ABI and the new ARM EABI
1789           (only for non "thumb" binaries). This option adds a tiny
1790           overhead to all syscalls and produces a slightly larger kernel.
1791           If you know you'll be using only pure EABI user space then you
1792           can say N here. If this option is not selected and you attempt
1793           to execute a legacy ABI binary then the result will be
1794           UNPREDICTABLE (in fact it can be predicted that it won't work
1795           at all). If in doubt say Y.
1796
1797 config ARCH_HAS_HOLES_MEMORYMODEL
1798         bool
1799
1800 config ARCH_SPARSEMEM_ENABLE
1801         bool
1802
1803 config ARCH_SPARSEMEM_DEFAULT
1804         def_bool ARCH_SPARSEMEM_ENABLE
1805
1806 config ARCH_SELECT_MEMORY_MODEL
1807         def_bool ARCH_SPARSEMEM_ENABLE
1808
1809 config HAVE_ARCH_PFN_VALID
1810         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
1811
1812 config HIGHMEM
1813         bool "High Memory Support"
1814         depends on MMU
1815         help
1816           The address space of ARM processors is only 4 Gigabytes large
1817           and it has to accommodate user address space, kernel address
1818           space as well as some memory mapped IO. That means that, if you
1819           have a large amount of physical memory and/or IO, not all of the
1820           memory can be "permanently mapped" by the kernel. The physical
1821           memory that is not permanently mapped is called "high memory".
1822
1823           Depending on the selected kernel/user memory split, minimum
1824           vmalloc space and actual amount of RAM, you may not need this
1825           option which should result in a slightly faster kernel.
1826
1827           If unsure, say n.
1828
1829 config HIGHPTE
1830         bool "Allocate 2nd-level pagetables from highmem"
1831         depends on HIGHMEM
1832
1833 config HW_PERF_EVENTS
1834         bool "Enable hardware performance counter support for perf events"
1835         depends on PERF_EVENTS && CPU_HAS_PMU
1836         default y
1837         help
1838           Enable hardware performance counter support for perf events. If
1839           disabled, perf events will use software events only.
1840
1841 source "mm/Kconfig"
1842
1843 config FORCE_MAX_ZONEORDER
1844         int "Maximum zone order" if ARCH_SHMOBILE
1845         range 11 64 if ARCH_SHMOBILE
1846         default "9" if SA1111
1847         default "11"
1848         help
1849           The kernel memory allocator divides physically contiguous memory
1850           blocks into "zones", where each zone is a power of two number of
1851           pages.  This option selects the largest power of two that the kernel
1852           keeps in the memory allocator.  If you need to allocate very large
1853           blocks of physically contiguous memory, then you may need to
1854           increase this value.
1855
1856           This config option is actually maximum order plus one. For example,
1857           a value of 11 means that the largest free memory block is 2^10 pages.
1858
1859 config LEDS
1860         bool "Timer and CPU usage LEDs"
1861         depends on ARCH_CDB89712 || ARCH_EBSA110 || \
1862                    ARCH_EBSA285 || ARCH_INTEGRATOR || \
1863                    ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
1864                    ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
1865                    ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
1866                    ARCH_AT91 || ARCH_DAVINCI || \
1867                    ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
1868         help
1869           If you say Y here, the LEDs on your machine will be used
1870           to provide useful information about your current system status.
1871
1872           If you are compiling a kernel for a NetWinder or EBSA-285, you will
1873           be able to select which LEDs are active using the options below. If
1874           you are compiling a kernel for the EBSA-110 or the LART however, the
1875           red LED will simply flash regularly to indicate that the system is
1876           still functional. It is safe to say Y here if you have a CATS
1877           system, but the driver will do nothing.
1878
1879 config LEDS_TIMER
1880         bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
1881                             OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1882                             || MACH_OMAP_PERSEUS2
1883         depends on LEDS
1884         depends on !GENERIC_CLOCKEVENTS
1885         default y if ARCH_EBSA110
1886         help
1887           If you say Y here, one of the system LEDs (the green one on the
1888           NetWinder, the amber one on the EBSA285, or the red one on the LART)
1889           will flash regularly to indicate that the system is still
1890           operational. This is mainly useful to kernel hackers who are
1891           debugging unstable kernels.
1892
1893           The LART uses the same LED for both Timer LED and CPU usage LED
1894           functions. You may choose to use both, but the Timer LED function
1895           will overrule the CPU usage LED.
1896
1897 config LEDS_CPU
1898         bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
1899                         !ARCH_OMAP) \
1900                         || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1901                         || MACH_OMAP_PERSEUS2
1902         depends on LEDS
1903         help
1904           If you say Y here, the red LED will be used to give a good real
1905           time indication of CPU usage, by lighting whenever the idle task
1906           is not currently executing.
1907
1908           The LART uses the same LED for both Timer LED and CPU usage LED
1909           functions. You may choose to use both, but the Timer LED function
1910           will overrule the CPU usage LED.
1911
1912 config ALIGNMENT_TRAP
1913         bool
1914         depends on CPU_CP15_MMU
1915         default y if !ARCH_EBSA110
1916         select HAVE_PROC_CPU if PROC_FS
1917         help
1918           ARM processors cannot fetch/store information which is not
1919           naturally aligned on the bus, i.e., a 4 byte fetch must start at an
1920           address divisible by 4. On 32-bit ARM processors, these non-aligned
1921           fetch/store instructions will be emulated in software if you say
1922           here, which has a severe performance impact. This is necessary for
1923           correct operation of some network protocols. With an IP-only
1924           configuration it is safe to say N, otherwise say Y.
1925
1926 config UACCESS_WITH_MEMCPY
1927         bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
1928         depends on MMU && EXPERIMENTAL
1929         default y if CPU_FEROCEON
1930         help
1931           Implement faster copy_to_user and clear_user methods for CPU
1932           cores where a 8-word STM instruction give significantly higher
1933           memory write throughput than a sequence of individual 32bit stores.
1934
1935           A possible side effect is a slight increase in scheduling latency
1936           between threads sharing the same address space if they invoke
1937           such copy operations with large buffers.
1938
1939           However, if the CPU data cache is using a write-allocate mode,
1940           this option is unlikely to provide any performance gain.
1941
1942 config SECCOMP
1943         bool
1944         prompt "Enable seccomp to safely compute untrusted bytecode"
1945         ---help---
1946           This kernel feature is useful for number crunching applications
1947           that may need to compute untrusted bytecode during their
1948           execution. By using pipes or other transports made available to
1949           the process as file descriptors supporting the read/write
1950           syscalls, it's possible to isolate those applications in
1951           their own address space using seccomp. Once seccomp is
1952           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
1953           and the task is only allowed to execute a few safe syscalls
1954           defined by each seccomp mode.
1955
1956 config CC_STACKPROTECTOR
1957         bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1958         depends on EXPERIMENTAL
1959         help
1960           This option turns on the -fstack-protector GCC feature. This
1961           feature puts, at the beginning of functions, a canary value on
1962           the stack just before the return address, and validates
1963           the value just before actually returning.  Stack based buffer
1964           overflows (that need to overwrite this return address) now also
1965           overwrite the canary, which gets detected and the attack is then
1966           neutralized via a kernel panic.
1967           This feature requires gcc version 4.2 or above.
1968
1969 config DEPRECATED_PARAM_STRUCT
1970         bool "Provide old way to pass kernel parameters"
1971         help
1972           This was deprecated in 2001 and announced to live on for 5 years.
1973           Some old boot loaders still use this way.
1974
1975 config ARM_FLUSH_CONSOLE_ON_RESTART
1976         bool "Force flush the console on restart"
1977         help
1978           If the console is locked while the system is rebooted, the messages
1979           in the temporary logbuffer would not have propogated to all the
1980           console drivers. This option forces the console lock to be
1981           released if it failed to be acquired, which will cause all the
1982           pending messages to be flushed.
1983
1984 endmenu
1985
1986 menu "Boot options"
1987
1988 config USE_OF
1989         bool "Flattened Device Tree support"
1990         select OF
1991         select OF_EARLY_FLATTREE
1992         select IRQ_DOMAIN
1993         help
1994           Include support for flattened device tree machine descriptions.
1995
1996 # Compressed boot loader in ROM.  Yes, we really want to ask about
1997 # TEXT and BSS so we preserve their values in the config files.
1998 config ZBOOT_ROM_TEXT
1999         hex "Compressed ROM boot loader base address"
2000         default "0"
2001         help
2002           The physical address at which the ROM-able zImage is to be
2003           placed in the target.  Platforms which normally make use of
2004           ROM-able zImage formats normally set this to a suitable
2005           value in their defconfig file.
2006
2007           If ZBOOT_ROM is not enabled, this has no effect.
2008
2009 config ZBOOT_ROM_BSS
2010         hex "Compressed ROM boot loader BSS address"
2011         default "0"
2012         help
2013           The base address of an area of read/write memory in the target
2014           for the ROM-able zImage which must be available while the
2015           decompressor is running. It must be large enough to hold the
2016           entire decompressed kernel plus an additional 128 KiB.
2017           Platforms which normally make use of ROM-able zImage formats
2018           normally set this to a suitable value in their defconfig file.
2019
2020           If ZBOOT_ROM is not enabled, this has no effect.
2021
2022 config ZBOOT_ROM
2023         bool "Compressed boot loader in ROM/flash"
2024         depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
2025         help
2026           Say Y here if you intend to execute your compressed kernel image
2027           (zImage) directly from ROM or flash.  If unsure, say N.
2028
2029 choice
2030         prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)"
2031         depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL
2032         default ZBOOT_ROM_NONE
2033         help
2034           Include experimental SD/MMC loading code in the ROM-able zImage.
2035           With this enabled it is possible to write the the ROM-able zImage
2036           kernel image to an MMC or SD card and boot the kernel straight
2037           from the reset vector. At reset the processor Mask ROM will load
2038           the first part of the the ROM-able zImage which in turn loads the
2039           rest the kernel image to RAM.
2040
2041 config ZBOOT_ROM_NONE
2042         bool "No SD/MMC loader in zImage (EXPERIMENTAL)"
2043         help
2044           Do not load image from SD or MMC
2045
2046 config ZBOOT_ROM_MMCIF
2047         bool "Include MMCIF loader in zImage (EXPERIMENTAL)"
2048         help
2049           Load image from MMCIF hardware block.
2050
2051 config ZBOOT_ROM_SH_MOBILE_SDHI
2052         bool "Include SuperH Mobile SDHI loader in zImage (EXPERIMENTAL)"
2053         help
2054           Load image from SDHI hardware block
2055
2056 endchoice
2057
2058 config ARM_APPENDED_DTB
2059         bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
2060         depends on OF && !ZBOOT_ROM && EXPERIMENTAL
2061         help
2062           With this option, the boot code will look for a device tree binary
2063           (DTB) appended to zImage
2064           (e.g. cat zImage <filename>.dtb > zImage_w_dtb).
2065
2066           This is meant as a backward compatibility convenience for those
2067           systems with a bootloader that can't be upgraded to accommodate
2068           the documented boot protocol using a device tree.
2069
2070           Beware that there is very little in terms of protection against
2071           this option being confused by leftover garbage in memory that might
2072           look like a DTB header after a reboot if no actual DTB is appended
2073           to zImage.  Do not leave this option active in a production kernel
2074           if you don't intend to always append a DTB.  Proper passing of the
2075           location into r2 of a bootloader provided DTB is always preferable
2076           to this option.
2077
2078 config ARM_ATAG_DTB_COMPAT
2079         bool "Supplement the appended DTB with traditional ATAG information"
2080         depends on ARM_APPENDED_DTB
2081         help
2082           Some old bootloaders can't be updated to a DTB capable one, yet
2083           they provide ATAGs with memory configuration, the ramdisk address,
2084           the kernel cmdline string, etc.  Such information is dynamically
2085           provided by the bootloader and can't always be stored in a static
2086           DTB.  To allow a device tree enabled kernel to be used with such
2087           bootloaders, this option allows zImage to extract the information
2088           from the ATAG list and store it at run time into the appended DTB.
2089
2090 config CMDLINE
2091         string "Default kernel command string"
2092         default ""
2093         help
2094           On some architectures (EBSA110 and CATS), there is currently no way
2095           for the boot loader to pass arguments to the kernel. For these
2096           architectures, you should supply some command-line options at build
2097           time by entering them here. As a minimum, you should specify the
2098           memory size and the root device (e.g., mem=64M root=/dev/nfs).
2099
2100 choice
2101         prompt "Kernel command line type" if CMDLINE != ""
2102         default CMDLINE_FROM_BOOTLOADER
2103
2104 config CMDLINE_FROM_BOOTLOADER
2105         bool "Use bootloader kernel arguments if available"
2106         help
2107           Uses the command-line options passed by the boot loader. If
2108           the boot loader doesn't provide any, the default kernel command
2109           string provided in CMDLINE will be used.
2110
2111 config CMDLINE_EXTEND
2112         bool "Extend bootloader kernel arguments"
2113         help
2114           The command-line arguments provided by the boot loader will be
2115           appended to the default kernel command string.
2116
2117 config CMDLINE_FORCE
2118         bool "Always use the default kernel command string"
2119         help
2120           Always use the default kernel command string, even if the boot
2121           loader passes other arguments to the kernel.
2122           This is useful if you cannot or don't want to change the
2123           command-line options your boot loader passes to the kernel.
2124 endchoice
2125
2126 config XIP_KERNEL
2127         bool "Kernel Execute-In-Place from ROM"
2128         depends on !ZBOOT_ROM && !ARM_LPAE
2129         help
2130           Execute-In-Place allows the kernel to run from non-volatile storage
2131           directly addressable by the CPU, such as NOR flash. This saves RAM
2132           space since the text section of the kernel is not loaded from flash
2133           to RAM.  Read-write sections, such as the data section and stack,
2134           are still copied to RAM.  The XIP kernel is not compressed since
2135           it has to run directly from flash, so it will take more space to
2136           store it.  The flash address used to link the kernel object files,
2137           and for storing it, is configuration dependent. Therefore, if you
2138           say Y here, you must know the proper physical address where to
2139           store the kernel image depending on your own flash memory usage.
2140
2141           Also note that the make target becomes "make xipImage" rather than
2142           "make zImage" or "make Image".  The final kernel binary to put in
2143           ROM memory will be arch/arm/boot/xipImage.
2144
2145           If unsure, say N.
2146
2147 config XIP_PHYS_ADDR
2148         hex "XIP Kernel Physical Location"
2149         depends on XIP_KERNEL
2150         default "0x00080000"
2151         help
2152           This is the physical address in your flash memory the kernel will
2153           be linked for and stored to.  This address is dependent on your
2154           own flash usage.
2155
2156 config KEXEC
2157         bool "Kexec system call (EXPERIMENTAL)"
2158         depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU)
2159         help
2160           kexec is a system call that implements the ability to shutdown your
2161           current kernel, and to start another kernel.  It is like a reboot
2162           but it is independent of the system firmware.   And like a reboot
2163           you can start any kernel with it, not just Linux.
2164
2165           It is an ongoing process to be certain the hardware in a machine
2166           is properly shutdown, so do not be surprised if this code does not
2167           initially work for you.  It may help to enable device hotplugging
2168           support.
2169
2170 config ATAGS_PROC
2171         bool "Export atags in procfs"
2172         depends on KEXEC
2173         default y
2174         help
2175           Should the atags used to boot the kernel be exported in an "atags"
2176           file in procfs. Useful with kexec.
2177
2178 config CRASH_DUMP
2179         bool "Build kdump crash kernel (EXPERIMENTAL)"
2180         depends on EXPERIMENTAL
2181         help
2182           Generate crash dump after being started by kexec. This should
2183           be normally only set in special crash dump kernels which are
2184           loaded in the main kernel with kexec-tools into a specially
2185           reserved region and then later executed after a crash by
2186           kdump/kexec. The crash dump kernel must be compiled to a
2187           memory address not used by the main kernel
2188
2189           For more details see Documentation/kdump/kdump.txt
2190
2191 config AUTO_ZRELADDR
2192         bool "Auto calculation of the decompressed kernel image address"
2193         depends on !ZBOOT_ROM && !ARCH_U300
2194         help
2195           ZRELADDR is the physical address where the decompressed kernel
2196           image will be placed. If AUTO_ZRELADDR is selected, the address
2197           will be determined at run-time by masking the current IP with
2198           0xf8000000. This assumes the zImage being placed in the first 128MB
2199           from start of memory.
2200
2201 endmenu
2202
2203 menu "CPU Power Management"
2204
2205 if ARCH_HAS_CPUFREQ
2206
2207 source "drivers/cpufreq/Kconfig"
2208
2209 config CPU_FREQ_IMX
2210         tristate "CPUfreq driver for i.MX CPUs"
2211         depends on ARCH_MXC && CPU_FREQ
2212         help
2213           This enables the CPUfreq driver for i.MX CPUs.
2214
2215 config CPU_FREQ_SA1100
2216         bool
2217
2218 config CPU_FREQ_SA1110
2219         bool
2220
2221 config CPU_FREQ_INTEGRATOR
2222         tristate "CPUfreq driver for ARM Integrator CPUs"
2223         depends on ARCH_INTEGRATOR && CPU_FREQ
2224         default y
2225         help
2226           This enables the CPUfreq driver for ARM Integrator CPUs.
2227
2228           For details, take a look at <file:Documentation/cpu-freq>.
2229
2230           If in doubt, say Y.
2231
2232 config CPU_FREQ_PXA
2233         bool
2234         depends on CPU_FREQ && ARCH_PXA && PXA25x
2235         default y
2236         select CPU_FREQ_TABLE
2237         select CPU_FREQ_DEFAULT_GOV_USERSPACE
2238
2239 config CPU_FREQ_S3C
2240         bool
2241         help
2242           Internal configuration node for common cpufreq on Samsung SoC
2243
2244 config CPU_FREQ_S3C24XX
2245         bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
2246         depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL
2247         select CPU_FREQ_S3C
2248         help
2249           This enables the CPUfreq driver for the Samsung S3C24XX family
2250           of CPUs.
2251
2252           For details, take a look at <file:Documentation/cpu-freq>.
2253
2254           If in doubt, say N.
2255
2256 config CPU_FREQ_S3C24XX_PLL
2257         bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
2258         depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
2259         help
2260           Compile in support for changing the PLL frequency from the
2261           S3C24XX series CPUfreq driver. The PLL takes time to settle
2262           after a frequency change, so by default it is not enabled.
2263
2264           This also means that the PLL tables for the selected CPU(s) will
2265           be built which may increase the size of the kernel image.
2266
2267 config CPU_FREQ_S3C24XX_DEBUG
2268         bool "Debug CPUfreq Samsung driver core"
2269         depends on CPU_FREQ_S3C24XX
2270         help
2271           Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
2272
2273 config CPU_FREQ_S3C24XX_IODEBUG
2274         bool "Debug CPUfreq Samsung driver IO timing"
2275         depends on CPU_FREQ_S3C24XX
2276         help
2277           Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
2278
2279 config CPU_FREQ_S3C24XX_DEBUGFS
2280         bool "Export debugfs for CPUFreq"
2281         depends on CPU_FREQ_S3C24XX && DEBUG_FS
2282         help
2283           Export status information via debugfs.
2284
2285 endif
2286
2287 source "drivers/cpuidle/Kconfig"
2288
2289 source "drivers/cpuquiet/Kconfig"
2290
2291 source "drivers/edp/Kconfig"
2292
2293 endmenu
2294
2295 menu "Floating point emulation"
2296
2297 comment "At least one emulation must be selected"
2298
2299 config FPE_NWFPE
2300         bool "NWFPE math emulation"
2301         depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL
2302         ---help---
2303           Say Y to include the NWFPE floating point emulator in the kernel.
2304           This is necessary to run most binaries. Linux does not currently
2305           support floating point hardware so you need to say Y here even if
2306           your machine has an FPA or floating point co-processor podule.
2307
2308           You may say N here if you are going to load the Acorn FPEmulator
2309           early in the bootup.
2310
2311 config FPE_NWFPE_XP
2312         bool "Support extended precision"
2313         depends on FPE_NWFPE
2314         help
2315           Say Y to include 80-bit support in the kernel floating-point
2316           emulator.  Otherwise, only 32 and 64-bit support is compiled in.
2317           Note that gcc does not generate 80-bit operations by default,
2318           so in most cases this option only enlarges the size of the
2319           floating point emulator without any good reason.
2320
2321           You almost surely want to say N here.
2322
2323 config FPE_FASTFPE
2324         bool "FastFPE math emulation (EXPERIMENTAL)"
2325         depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
2326         ---help---
2327           Say Y here to include the FAST floating point emulator in the kernel.
2328           This is an experimental much faster emulator which now also has full
2329           precision for the mantissa.  It does not support any exceptions.
2330           It is very simple, and approximately 3-6 times faster than NWFPE.
2331
2332           It should be sufficient for most programs.  It may be not suitable
2333           for scientific calculations, but you have to check this for yourself.
2334           If you do not feel you need a faster FP emulation you should better
2335           choose NWFPE.
2336
2337 config VFP
2338         bool "VFP-format floating point maths"
2339         depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
2340         help
2341           Say Y to include VFP support code in the kernel. This is needed
2342           if your hardware includes a VFP unit.
2343
2344           Please see <file:Documentation/arm/VFP/release-notes.txt> for
2345           release notes and additional status information.
2346
2347           Say N if your target does not have VFP hardware.
2348
2349 config VFPv3
2350         bool
2351         depends on VFP
2352         default y if CPU_V7
2353
2354 config NEON
2355         bool "Advanced SIMD (NEON) Extension support"
2356         depends on VFPv3 && CPU_V7
2357         help
2358           Say Y to include support code for NEON, the ARMv7 Advanced SIMD
2359           Extension.
2360
2361 endmenu
2362
2363 menu "Userspace binary formats"
2364
2365 source "fs/Kconfig.binfmt"
2366
2367 config ARTHUR
2368         tristate "RISC OS personality"
2369         depends on !AEABI
2370         help
2371           Say Y here to include the kernel code necessary if you want to run
2372           Acorn RISC OS/Arthur binaries under Linux. This code is still very
2373           experimental; if this sounds frightening, say N and sleep in peace.
2374           You can also say M here to compile this support as a module (which
2375           will be called arthur).
2376
2377 endmenu
2378
2379 menu "Power management options"
2380
2381 source "kernel/power/Kconfig"
2382
2383 config ARCH_SUSPEND_POSSIBLE
2384         depends on !ARCH_S5PC100
2385         depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
2386                 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE
2387         def_bool y
2388
2389 config ARM_CPU_SUSPEND
2390         def_bool PM_SLEEP
2391
2392 endmenu
2393
2394 source "net/Kconfig"
2395
2396 source "drivers/Kconfig"
2397
2398 source "fs/Kconfig"
2399
2400 source "arch/arm/Kconfig.debug"
2401
2402 source "security/Kconfig"
2403
2404 source "crypto/Kconfig"
2405
2406 source "lib/Kconfig"