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