]> bbs.cooldavid.org Git - net-next-2.6.git/blob - arch/arm/Kconfig
kbuild: convert `arch/tile' to the kconfig mainmenu upgrade
[net-next-2.6.git] / arch / arm / Kconfig
1 config ARM
2         bool
3         default y
4         select HAVE_AOUT
5         select HAVE_IDE
6         select HAVE_MEMBLOCK
7         select RTC_LIB
8         select SYS_SUPPORTS_APM_EMULATION
9         select GENERIC_ATOMIC64 if (!CPU_32v6K)
10         select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
11         select HAVE_ARCH_KGDB
12         select HAVE_KPROBES if (!XIP_KERNEL)
13         select HAVE_KRETPROBES if (HAVE_KPROBES)
14         select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
15         select HAVE_GENERIC_DMA_COHERENT
16         select HAVE_KERNEL_GZIP
17         select HAVE_KERNEL_LZO
18         select HAVE_KERNEL_LZMA
19         select HAVE_PERF_EVENTS
20         select PERF_USE_VMALLOC
21         select HAVE_REGS_AND_STACK_ACCESS_API
22         help
23           The ARM series is a line of low-power-consumption RISC chip designs
24           licensed by ARM Ltd and targeted at embedded applications and
25           handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
26           manufactured, but legacy ARM-based PC hardware remains popular in
27           Europe.  There is an ARM Linux project with a web page at
28           <http://www.arm.linux.org.uk/>.
29
30 config HAVE_PWM
31         bool
32
33 config SYS_SUPPORTS_APM_EMULATION
34         bool
35
36 config GENERIC_GPIO
37         bool
38
39 config ARCH_USES_GETTIMEOFFSET
40         bool
41         default n
42
43 config GENERIC_CLOCKEVENTS
44         bool
45
46 config GENERIC_CLOCKEVENTS_BROADCAST
47         bool
48         depends on GENERIC_CLOCKEVENTS
49         default y if SMP
50
51 config HAVE_TCM
52         bool
53         select GENERIC_ALLOCATOR
54
55 config HAVE_PROC_CPU
56         bool
57
58 config NO_IOPORT
59         bool
60
61 config EISA
62         bool
63         ---help---
64           The Extended Industry Standard Architecture (EISA) bus was
65           developed as an open alternative to the IBM MicroChannel bus.
66
67           The EISA bus provided some of the features of the IBM MicroChannel
68           bus while maintaining backward compatibility with cards made for
69           the older ISA bus.  The EISA bus saw limited use between 1988 and
70           1995 when it was made obsolete by the PCI bus.
71
72           Say Y here if you are building a kernel for an EISA-based machine.
73
74           Otherwise, say N.
75
76 config SBUS
77         bool
78
79 config MCA
80         bool
81         help
82           MicroChannel Architecture is found in some IBM PS/2 machines and
83           laptops.  It is a bus system similar to PCI or ISA. See
84           <file:Documentation/mca.txt> (and especially the web page given
85           there) before attempting to build an MCA bus kernel.
86
87 config GENERIC_HARDIRQS
88         bool
89         default y
90
91 config STACKTRACE_SUPPORT
92         bool
93         default y
94
95 config HAVE_LATENCYTOP_SUPPORT
96         bool
97         depends on !SMP
98         default y
99
100 config LOCKDEP_SUPPORT
101         bool
102         default y
103
104 config TRACE_IRQFLAGS_SUPPORT
105         bool
106         default y
107
108 config HARDIRQS_SW_RESEND
109         bool
110         default y
111
112 config GENERIC_IRQ_PROBE
113         bool
114         default y
115
116 config GENERIC_LOCKBREAK
117         bool
118         default y
119         depends on SMP && PREEMPT
120
121 config RWSEM_GENERIC_SPINLOCK
122         bool
123         default y
124
125 config RWSEM_XCHGADD_ALGORITHM
126         bool
127
128 config ARCH_HAS_ILOG2_U32
129         bool
130
131 config ARCH_HAS_ILOG2_U64
132         bool
133
134 config ARCH_HAS_CPUFREQ
135         bool
136         help
137           Internal node to signify that the ARCH has CPUFREQ support
138           and that the relevant menu configurations are displayed for
139           it.
140
141 config GENERIC_HWEIGHT
142         bool
143         default y
144
145 config GENERIC_CALIBRATE_DELAY
146         bool
147         default y
148
149 config ARCH_MAY_HAVE_PC_FDC
150         bool
151
152 config ZONE_DMA
153         bool
154
155 config NEED_DMA_MAP_STATE
156        def_bool y
157
158 config GENERIC_ISA_DMA
159         bool
160
161 config FIQ
162         bool
163
164 config ARCH_MTD_XIP
165         bool
166
167 config GENERIC_HARDIRQS_NO__DO_IRQ
168         def_bool y
169
170 config ARM_L1_CACHE_SHIFT_6
171         bool
172         help
173           Setting ARM L1 cache line size to 64 Bytes.
174
175 config VECTORS_BASE
176         hex
177         default 0xffff0000 if MMU || CPU_HIGH_VECTOR
178         default DRAM_BASE if REMAP_VECTORS_TO_RAM
179         default 0x00000000
180         help
181           The base address of exception vectors.
182
183 source "init/Kconfig"
184
185 source "kernel/Kconfig.freezer"
186
187 menu "System Type"
188
189 config MMU
190         bool "MMU-based Paged Memory Management Support"
191         default y
192         help
193           Select if you want MMU-based virtualised addressing space
194           support by paged memory management. If unsure, say 'Y'.
195
196 #
197 # The "ARM system type" choice list is ordered alphabetically by option
198 # text.  Please add new entries in the option alphabetic order.
199 #
200 choice
201         prompt "ARM system type"
202         default ARCH_VERSATILE
203
204 config ARCH_AAEC2000
205         bool "Agilent AAEC-2000 based"
206         select CPU_ARM920T
207         select ARM_AMBA
208         select HAVE_CLK
209         select ARCH_USES_GETTIMEOFFSET
210         help
211           This enables support for systems based on the Agilent AAEC-2000
212
213 config ARCH_INTEGRATOR
214         bool "ARM Ltd. Integrator family"
215         select ARM_AMBA
216         select ARCH_HAS_CPUFREQ
217         select COMMON_CLKDEV
218         select ICST
219         select GENERIC_CLOCKEVENTS
220         select PLAT_VERSATILE
221         help
222           Support for ARM's Integrator platform.
223
224 config ARCH_REALVIEW
225         bool "ARM Ltd. RealView family"
226         select ARM_AMBA
227         select COMMON_CLKDEV
228         select ICST
229         select GENERIC_CLOCKEVENTS
230         select ARCH_WANT_OPTIONAL_GPIOLIB
231         select PLAT_VERSATILE
232         select ARM_TIMER_SP804
233         select GPIO_PL061 if GPIOLIB
234         help
235           This enables support for ARM Ltd RealView boards.
236
237 config ARCH_VERSATILE
238         bool "ARM Ltd. Versatile family"
239         select ARM_AMBA
240         select ARM_VIC
241         select COMMON_CLKDEV
242         select ICST
243         select GENERIC_CLOCKEVENTS
244         select ARCH_WANT_OPTIONAL_GPIOLIB
245         select PLAT_VERSATILE
246         select ARM_TIMER_SP804
247         help
248           This enables support for ARM Ltd Versatile board.
249
250 config ARCH_VEXPRESS
251         bool "ARM Ltd. Versatile Express family"
252         select ARCH_WANT_OPTIONAL_GPIOLIB
253         select ARM_AMBA
254         select ARM_TIMER_SP804
255         select COMMON_CLKDEV
256         select GENERIC_CLOCKEVENTS
257         select HAVE_CLK
258         select ICST
259         select PLAT_VERSATILE
260         help
261           This enables support for the ARM Ltd Versatile Express boards.
262
263 config ARCH_AT91
264         bool "Atmel AT91"
265         select ARCH_REQUIRE_GPIOLIB
266         select HAVE_CLK
267         select ARCH_USES_GETTIMEOFFSET
268         help
269           This enables support for systems based on the Atmel AT91RM9200,
270           AT91SAM9 and AT91CAP9 processors.
271
272 config ARCH_BCMRING
273         bool "Broadcom BCMRING"
274         depends on MMU
275         select CPU_V6
276         select ARM_AMBA
277         select COMMON_CLKDEV
278         select GENERIC_CLOCKEVENTS
279         select ARCH_WANT_OPTIONAL_GPIOLIB
280         help
281           Support for Broadcom's BCMRing platform.
282
283 config ARCH_CLPS711X
284         bool "Cirrus Logic CLPS711x/EP721x-based"
285         select CPU_ARM720T
286         select ARCH_USES_GETTIMEOFFSET
287         help
288           Support for Cirrus Logic 711x/721x based boards.
289
290 config ARCH_CNS3XXX
291         bool "Cavium Networks CNS3XXX family"
292         select CPU_V6
293         select GENERIC_CLOCKEVENTS
294         select ARM_GIC
295         select PCI_DOMAINS if PCI
296         help
297           Support for Cavium Networks CNS3XXX platform.
298
299 config ARCH_GEMINI
300         bool "Cortina Systems Gemini"
301         select CPU_FA526
302         select ARCH_REQUIRE_GPIOLIB
303         select ARCH_USES_GETTIMEOFFSET
304         help
305           Support for the Cortina Systems Gemini family SoCs
306
307 config ARCH_EBSA110
308         bool "EBSA-110"
309         select CPU_SA110
310         select ISA
311         select NO_IOPORT
312         select ARCH_USES_GETTIMEOFFSET
313         help
314           This is an evaluation board for the StrongARM processor available
315           from Digital. It has limited hardware on-board, including an
316           Ethernet interface, two PCMCIA sockets, two serial ports and a
317           parallel port.
318
319 config ARCH_EP93XX
320         bool "EP93xx-based"
321         select CPU_ARM920T
322         select ARM_AMBA
323         select ARM_VIC
324         select COMMON_CLKDEV
325         select ARCH_REQUIRE_GPIOLIB
326         select ARCH_HAS_HOLES_MEMORYMODEL
327         select ARCH_USES_GETTIMEOFFSET
328         help
329           This enables support for the Cirrus EP93xx series of CPUs.
330
331 config ARCH_FOOTBRIDGE
332         bool "FootBridge"
333         select CPU_SA110
334         select FOOTBRIDGE
335         select ARCH_USES_GETTIMEOFFSET
336         help
337           Support for systems based on the DC21285 companion chip
338           ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
339
340 config ARCH_MXC
341         bool "Freescale MXC/iMX-based"
342         select GENERIC_CLOCKEVENTS
343         select ARCH_REQUIRE_GPIOLIB
344         select COMMON_CLKDEV
345         help
346           Support for Freescale MXC/iMX-based family of processors
347
348 config ARCH_STMP3XXX
349         bool "Freescale STMP3xxx"
350         select CPU_ARM926T
351         select COMMON_CLKDEV
352         select ARCH_REQUIRE_GPIOLIB
353         select GENERIC_CLOCKEVENTS
354         select USB_ARCH_HAS_EHCI
355         help
356           Support for systems based on the Freescale 3xxx CPUs.
357
358 config ARCH_NETX
359         bool "Hilscher NetX based"
360         select CPU_ARM926T
361         select ARM_VIC
362         select GENERIC_CLOCKEVENTS
363         help
364           This enables support for systems based on the Hilscher NetX Soc
365
366 config ARCH_H720X
367         bool "Hynix HMS720x-based"
368         select CPU_ARM720T
369         select ISA_DMA_API
370         select ARCH_USES_GETTIMEOFFSET
371         help
372           This enables support for systems based on the Hynix HMS720x
373
374 config ARCH_IOP13XX
375         bool "IOP13xx-based"
376         depends on MMU
377         select CPU_XSC3
378         select PLAT_IOP
379         select PCI
380         select ARCH_SUPPORTS_MSI
381         select VMSPLIT_1G
382         help
383           Support for Intel's IOP13XX (XScale) family of processors.
384
385 config ARCH_IOP32X
386         bool "IOP32x-based"
387         depends on MMU
388         select CPU_XSCALE
389         select PLAT_IOP
390         select PCI
391         select ARCH_REQUIRE_GPIOLIB
392         help
393           Support for Intel's 80219 and IOP32X (XScale) family of
394           processors.
395
396 config ARCH_IOP33X
397         bool "IOP33x-based"
398         depends on MMU
399         select CPU_XSCALE
400         select PLAT_IOP
401         select PCI
402         select ARCH_REQUIRE_GPIOLIB
403         help
404           Support for Intel's IOP33X (XScale) family of processors.
405
406 config ARCH_IXP23XX
407         bool "IXP23XX-based"
408         depends on MMU
409         select CPU_XSC3
410         select PCI
411         select ARCH_USES_GETTIMEOFFSET
412         help
413           Support for Intel's IXP23xx (XScale) family of processors.
414
415 config ARCH_IXP2000
416         bool "IXP2400/2800-based"
417         depends on MMU
418         select CPU_XSCALE
419         select PCI
420         select ARCH_USES_GETTIMEOFFSET
421         help
422           Support for Intel's IXP2400/2800 (XScale) family of processors.
423
424 config ARCH_IXP4XX
425         bool "IXP4xx-based"
426         depends on MMU
427         select CPU_XSCALE
428         select GENERIC_GPIO
429         select GENERIC_CLOCKEVENTS
430         select DMABOUNCE if PCI
431         help
432           Support for Intel's IXP4XX (XScale) family of processors.
433
434 config ARCH_DOVE
435         bool "Marvell Dove"
436         select PCI
437         select ARCH_REQUIRE_GPIOLIB
438         select GENERIC_CLOCKEVENTS
439         select PLAT_ORION
440         help
441           Support for the Marvell Dove SoC 88AP510
442
443 config ARCH_KIRKWOOD
444         bool "Marvell Kirkwood"
445         select CPU_FEROCEON
446         select PCI
447         select ARCH_REQUIRE_GPIOLIB
448         select GENERIC_CLOCKEVENTS
449         select PLAT_ORION
450         help
451           Support for the following Marvell Kirkwood series SoCs:
452           88F6180, 88F6192 and 88F6281.
453
454 config ARCH_LOKI
455         bool "Marvell Loki (88RC8480)"
456         select CPU_FEROCEON
457         select GENERIC_CLOCKEVENTS
458         select PLAT_ORION
459         help
460           Support for the Marvell Loki (88RC8480) SoC.
461
462 config ARCH_LPC32XX
463         bool "NXP LPC32XX"
464         select CPU_ARM926T
465         select ARCH_REQUIRE_GPIOLIB
466         select HAVE_IDE
467         select ARM_AMBA
468         select USB_ARCH_HAS_OHCI
469         select COMMON_CLKDEV
470         select GENERIC_TIME
471         select GENERIC_CLOCKEVENTS
472         help
473           Support for the NXP LPC32XX family of processors
474
475 config ARCH_MV78XX0
476         bool "Marvell MV78xx0"
477         select CPU_FEROCEON
478         select PCI
479         select ARCH_REQUIRE_GPIOLIB
480         select GENERIC_CLOCKEVENTS
481         select PLAT_ORION
482         help
483           Support for the following Marvell MV78xx0 series SoCs:
484           MV781x0, MV782x0.
485
486 config ARCH_ORION5X
487         bool "Marvell Orion"
488         depends on MMU
489         select CPU_FEROCEON
490         select PCI
491         select ARCH_REQUIRE_GPIOLIB
492         select GENERIC_CLOCKEVENTS
493         select PLAT_ORION
494         help
495           Support for the following Marvell Orion 5x series SoCs:
496           Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
497           Orion-2 (5281), Orion-1-90 (6183).
498
499 config ARCH_MMP
500         bool "Marvell PXA168/910/MMP2"
501         depends on MMU
502         select ARCH_REQUIRE_GPIOLIB
503         select COMMON_CLKDEV
504         select GENERIC_CLOCKEVENTS
505         select TICK_ONESHOT
506         select PLAT_PXA
507         help
508           Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
509
510 config ARCH_KS8695
511         bool "Micrel/Kendin KS8695"
512         select CPU_ARM922T
513         select ARCH_REQUIRE_GPIOLIB
514         select ARCH_USES_GETTIMEOFFSET
515         help
516           Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
517           System-on-Chip devices.
518
519 config ARCH_NS9XXX
520         bool "NetSilicon NS9xxx"
521         select CPU_ARM926T
522         select GENERIC_GPIO
523         select GENERIC_CLOCKEVENTS
524         select HAVE_CLK
525         help
526           Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
527           System.
528
529           <http://www.digi.com/products/microprocessors/index.jsp>
530
531 config ARCH_W90X900
532         bool "Nuvoton W90X900 CPU"
533         select CPU_ARM926T
534         select ARCH_REQUIRE_GPIOLIB
535         select COMMON_CLKDEV
536         select GENERIC_CLOCKEVENTS
537         help
538           Support for Nuvoton (Winbond logic dept.) ARM9 processor,
539           At present, the w90x900 has been renamed nuc900, regarding
540           the ARM series product line, you can login the following
541           link address to know more.
542
543           <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
544                 ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
545
546 config ARCH_NUC93X
547         bool "Nuvoton NUC93X CPU"
548         select CPU_ARM926T
549         select COMMON_CLKDEV
550         help
551           Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
552           low-power and high performance MPEG-4/JPEG multimedia controller chip.
553
554 config ARCH_TEGRA
555         bool "NVIDIA Tegra"
556         select GENERIC_TIME
557         select GENERIC_CLOCKEVENTS
558         select GENERIC_GPIO
559         select HAVE_CLK
560         select COMMON_CLKDEV
561         select ARCH_HAS_BARRIERS if CACHE_L2X0
562         help
563           This enables support for NVIDIA Tegra based systems (Tegra APX,
564           Tegra 6xx and Tegra 2 series).
565
566 config ARCH_PNX4008
567         bool "Philips Nexperia PNX4008 Mobile"
568         select CPU_ARM926T
569         select COMMON_CLKDEV
570         select ARCH_USES_GETTIMEOFFSET
571         help
572           This enables support for Philips PNX4008 mobile platform.
573
574 config ARCH_PXA
575         bool "PXA2xx/PXA3xx-based"
576         depends on MMU
577         select ARCH_MTD_XIP
578         select ARCH_HAS_CPUFREQ
579         select COMMON_CLKDEV
580         select ARCH_REQUIRE_GPIOLIB
581         select GENERIC_CLOCKEVENTS
582         select TICK_ONESHOT
583         select PLAT_PXA
584         help
585           Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
586
587 config ARCH_MSM
588         bool "Qualcomm MSM"
589         select HAVE_CLK
590         select GENERIC_CLOCKEVENTS
591         select ARCH_REQUIRE_GPIOLIB
592         help
593           Support for Qualcomm MSM/QSD based systems.  This runs on the
594           apps processor of the MSM/QSD and depends on a shared memory
595           interface to the modem processor which runs the baseband
596           stack and controls some vital subsystems
597           (clock and power control, etc).
598
599 config ARCH_SHMOBILE
600         bool "Renesas SH-Mobile"
601         help
602           Support for Renesas's SH-Mobile ARM platforms
603
604 config ARCH_RPC
605         bool "RiscPC"
606         select ARCH_ACORN
607         select FIQ
608         select TIMER_ACORN
609         select ARCH_MAY_HAVE_PC_FDC
610         select HAVE_PATA_PLATFORM
611         select ISA_DMA_API
612         select NO_IOPORT
613         select ARCH_SPARSEMEM_ENABLE
614         select ARCH_USES_GETTIMEOFFSET
615         help
616           On the Acorn Risc-PC, Linux can support the internal IDE disk and
617           CD-ROM interface, serial and parallel port, and the floppy drive.
618
619 config ARCH_SA1100
620         bool "SA1100-based"
621         select CPU_SA1100
622         select ISA
623         select ARCH_SPARSEMEM_ENABLE
624         select ARCH_MTD_XIP
625         select ARCH_HAS_CPUFREQ
626         select CPU_FREQ
627         select GENERIC_CLOCKEVENTS
628         select HAVE_CLK
629         select TICK_ONESHOT
630         select ARCH_REQUIRE_GPIOLIB
631         help
632           Support for StrongARM 11x0 based boards.
633
634 config ARCH_S3C2410
635         bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450"
636         select GENERIC_GPIO
637         select ARCH_HAS_CPUFREQ
638         select HAVE_CLK
639         select ARCH_USES_GETTIMEOFFSET
640         select HAVE_S3C2410_I2C
641         help
642           Samsung S3C2410X CPU based systems, such as the Simtec Electronics
643           BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
644           the Samsung SMDK2410 development board (and derivatives).
645
646           Note, the S3C2416 and the S3C2450 are so close that they even share
647           the same SoC ID code. This means that there is no seperate machine
648           directory (no arch/arm/mach-s3c2450) as the S3C2416 was first.
649
650 config ARCH_S3C64XX
651         bool "Samsung S3C64XX"
652         select PLAT_SAMSUNG
653         select CPU_V6
654         select ARM_VIC
655         select HAVE_CLK
656         select NO_IOPORT
657         select ARCH_USES_GETTIMEOFFSET
658         select ARCH_HAS_CPUFREQ
659         select ARCH_REQUIRE_GPIOLIB
660         select SAMSUNG_CLKSRC
661         select SAMSUNG_IRQ_VIC_TIMER
662         select SAMSUNG_IRQ_UART
663         select S3C_GPIO_TRACK
664         select S3C_GPIO_PULL_UPDOWN
665         select S3C_GPIO_CFG_S3C24XX
666         select S3C_GPIO_CFG_S3C64XX
667         select S3C_DEV_NAND
668         select USB_ARCH_HAS_OHCI
669         select SAMSUNG_GPIOLIB_4BIT
670         select HAVE_S3C2410_I2C
671         select HAVE_S3C2410_WATCHDOG
672         help
673           Samsung S3C64XX series based systems
674
675 config ARCH_S5P6440
676         bool "Samsung S5P6440"
677         select CPU_V6
678         select GENERIC_GPIO
679         select HAVE_CLK
680         select HAVE_S3C2410_WATCHDOG
681         select ARCH_USES_GETTIMEOFFSET
682         select HAVE_S3C2410_I2C
683         select HAVE_S3C_RTC
684         help
685           Samsung S5P6440 CPU based systems
686
687 config ARCH_S5P6442
688         bool "Samsung S5P6442"
689         select CPU_V6
690         select GENERIC_GPIO
691         select HAVE_CLK
692         select ARCH_USES_GETTIMEOFFSET
693         select HAVE_S3C2410_WATCHDOG
694         help
695           Samsung S5P6442 CPU based systems
696
697 config ARCH_S5PC100
698         bool "Samsung S5PC100"
699         select GENERIC_GPIO
700         select HAVE_CLK
701         select CPU_V7
702         select ARM_L1_CACHE_SHIFT_6
703         select ARCH_USES_GETTIMEOFFSET
704         select HAVE_S3C2410_I2C
705         select HAVE_S3C_RTC
706         select HAVE_S3C2410_WATCHDOG
707         help
708           Samsung S5PC100 series based systems
709
710 config ARCH_S5PV210
711         bool "Samsung S5PV210/S5PC110"
712         select CPU_V7
713         select GENERIC_GPIO
714         select HAVE_CLK
715         select ARM_L1_CACHE_SHIFT_6
716         select ARCH_USES_GETTIMEOFFSET
717         select HAVE_S3C2410_I2C
718         select HAVE_S3C_RTC
719         select HAVE_S3C2410_WATCHDOG
720         help
721           Samsung S5PV210/S5PC110 series based systems
722
723 config ARCH_S5PV310
724         bool "Samsung S5PV310/S5PC210"
725         select CPU_V7
726         select GENERIC_GPIO
727         select HAVE_CLK
728         select GENERIC_CLOCKEVENTS
729         help
730           Samsung S5PV310 series based systems
731
732 config ARCH_SHARK
733         bool "Shark"
734         select CPU_SA110
735         select ISA
736         select ISA_DMA
737         select ZONE_DMA
738         select PCI
739         select ARCH_USES_GETTIMEOFFSET
740         help
741           Support for the StrongARM based Digital DNARD machine, also known
742           as "Shark" (<http://www.shark-linux.de/shark.html>).
743
744 config ARCH_LH7A40X
745         bool "Sharp LH7A40X"
746         select CPU_ARM922T
747         select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
748         select ARCH_USES_GETTIMEOFFSET
749         help
750           Say Y here for systems based on one of the Sharp LH7A40X
751           System on a Chip processors.  These CPUs include an ARM922T
752           core with a wide array of integrated devices for
753           hand-held and low-power applications.
754
755 config ARCH_U300
756         bool "ST-Ericsson U300 Series"
757         depends on MMU
758         select CPU_ARM926T
759         select HAVE_TCM
760         select ARM_AMBA
761         select ARM_VIC
762         select GENERIC_CLOCKEVENTS
763         select COMMON_CLKDEV
764         select GENERIC_GPIO
765         help
766           Support for ST-Ericsson U300 series mobile platforms.
767
768 config ARCH_U8500
769         bool "ST-Ericsson U8500 Series"
770         select CPU_V7
771         select ARM_AMBA
772         select GENERIC_CLOCKEVENTS
773         select COMMON_CLKDEV
774         select ARCH_REQUIRE_GPIOLIB
775         help
776           Support for ST-Ericsson's Ux500 architecture
777
778 config ARCH_NOMADIK
779         bool "STMicroelectronics Nomadik"
780         select ARM_AMBA
781         select ARM_VIC
782         select CPU_ARM926T
783         select COMMON_CLKDEV
784         select GENERIC_CLOCKEVENTS
785         select ARCH_REQUIRE_GPIOLIB
786         help
787           Support for the Nomadik platform by ST-Ericsson
788
789 config ARCH_DAVINCI
790         bool "TI DaVinci"
791         select GENERIC_CLOCKEVENTS
792         select ARCH_REQUIRE_GPIOLIB
793         select ZONE_DMA
794         select HAVE_IDE
795         select COMMON_CLKDEV
796         select GENERIC_ALLOCATOR
797         select ARCH_HAS_HOLES_MEMORYMODEL
798         help
799           Support for TI's DaVinci platform.
800
801 config ARCH_OMAP
802         bool "TI OMAP"
803         select HAVE_CLK
804         select ARCH_REQUIRE_GPIOLIB
805         select ARCH_HAS_CPUFREQ
806         select GENERIC_CLOCKEVENTS
807         select ARCH_HAS_HOLES_MEMORYMODEL
808         help
809           Support for TI's OMAP platform (OMAP1 and OMAP2).
810
811 config PLAT_SPEAR
812         bool "ST SPEAr"
813         select ARM_AMBA
814         select ARCH_REQUIRE_GPIOLIB
815         select COMMON_CLKDEV
816         select GENERIC_CLOCKEVENTS
817         select HAVE_CLK
818         help
819           Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
820
821 endchoice
822
823 #
824 # This is sorted alphabetically by mach-* pathname.  However, plat-*
825 # Kconfigs may be included either alphabetically (according to the
826 # plat- suffix) or along side the corresponding mach-* source.
827 #
828 source "arch/arm/mach-aaec2000/Kconfig"
829
830 source "arch/arm/mach-at91/Kconfig"
831
832 source "arch/arm/mach-bcmring/Kconfig"
833
834 source "arch/arm/mach-clps711x/Kconfig"
835
836 source "arch/arm/mach-cns3xxx/Kconfig"
837
838 source "arch/arm/mach-davinci/Kconfig"
839
840 source "arch/arm/mach-dove/Kconfig"
841
842 source "arch/arm/mach-ep93xx/Kconfig"
843
844 source "arch/arm/mach-footbridge/Kconfig"
845
846 source "arch/arm/mach-gemini/Kconfig"
847
848 source "arch/arm/mach-h720x/Kconfig"
849
850 source "arch/arm/mach-integrator/Kconfig"
851
852 source "arch/arm/mach-iop32x/Kconfig"
853
854 source "arch/arm/mach-iop33x/Kconfig"
855
856 source "arch/arm/mach-iop13xx/Kconfig"
857
858 source "arch/arm/mach-ixp4xx/Kconfig"
859
860 source "arch/arm/mach-ixp2000/Kconfig"
861
862 source "arch/arm/mach-ixp23xx/Kconfig"
863
864 source "arch/arm/mach-kirkwood/Kconfig"
865
866 source "arch/arm/mach-ks8695/Kconfig"
867
868 source "arch/arm/mach-lh7a40x/Kconfig"
869
870 source "arch/arm/mach-loki/Kconfig"
871
872 source "arch/arm/mach-lpc32xx/Kconfig"
873
874 source "arch/arm/mach-msm/Kconfig"
875
876 source "arch/arm/mach-mv78xx0/Kconfig"
877
878 source "arch/arm/plat-mxc/Kconfig"
879
880 source "arch/arm/mach-netx/Kconfig"
881
882 source "arch/arm/mach-nomadik/Kconfig"
883 source "arch/arm/plat-nomadik/Kconfig"
884
885 source "arch/arm/mach-ns9xxx/Kconfig"
886
887 source "arch/arm/mach-nuc93x/Kconfig"
888
889 source "arch/arm/plat-omap/Kconfig"
890
891 source "arch/arm/mach-omap1/Kconfig"
892
893 source "arch/arm/mach-omap2/Kconfig"
894
895 source "arch/arm/mach-orion5x/Kconfig"
896
897 source "arch/arm/mach-pxa/Kconfig"
898 source "arch/arm/plat-pxa/Kconfig"
899
900 source "arch/arm/mach-mmp/Kconfig"
901
902 source "arch/arm/mach-realview/Kconfig"
903
904 source "arch/arm/mach-sa1100/Kconfig"
905
906 source "arch/arm/plat-samsung/Kconfig"
907 source "arch/arm/plat-s3c24xx/Kconfig"
908 source "arch/arm/plat-s5p/Kconfig"
909
910 source "arch/arm/plat-spear/Kconfig"
911
912 if ARCH_S3C2410
913 source "arch/arm/mach-s3c2400/Kconfig"
914 source "arch/arm/mach-s3c2410/Kconfig"
915 source "arch/arm/mach-s3c2412/Kconfig"
916 source "arch/arm/mach-s3c2416/Kconfig"
917 source "arch/arm/mach-s3c2440/Kconfig"
918 source "arch/arm/mach-s3c2443/Kconfig"
919 endif
920
921 if ARCH_S3C64XX
922 source "arch/arm/mach-s3c64xx/Kconfig"
923 endif
924
925 source "arch/arm/mach-s5p6440/Kconfig"
926
927 source "arch/arm/mach-s5p6442/Kconfig"
928
929 source "arch/arm/mach-s5pc100/Kconfig"
930
931 source "arch/arm/mach-s5pv210/Kconfig"
932
933 source "arch/arm/mach-s5pv310/Kconfig"
934
935 source "arch/arm/mach-shmobile/Kconfig"
936
937 source "arch/arm/plat-stmp3xxx/Kconfig"
938
939 source "arch/arm/mach-tegra/Kconfig"
940
941 source "arch/arm/mach-u300/Kconfig"
942
943 source "arch/arm/mach-ux500/Kconfig"
944
945 source "arch/arm/mach-versatile/Kconfig"
946
947 source "arch/arm/mach-vexpress/Kconfig"
948
949 source "arch/arm/mach-w90x900/Kconfig"
950
951 # Definitions to make life easier
952 config ARCH_ACORN
953         bool
954
955 config PLAT_IOP
956         bool
957         select GENERIC_CLOCKEVENTS
958
959 config PLAT_ORION
960         bool
961
962 config PLAT_PXA
963         bool
964
965 config PLAT_VERSATILE
966         bool
967
968 config ARM_TIMER_SP804
969         bool
970
971 source arch/arm/mm/Kconfig
972
973 config IWMMXT
974         bool "Enable iWMMXt support"
975         depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
976         default y if PXA27x || PXA3xx || ARCH_MMP
977         help
978           Enable support for iWMMXt context switching at run time if
979           running on a CPU that supports it.
980
981 #  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
982 config XSCALE_PMU
983         bool
984         depends on CPU_XSCALE && !XSCALE_PMU_TIMER
985         default y
986
987 config CPU_HAS_PMU
988         depends on (CPU_V6 || CPU_V7 || XSCALE_PMU) && \
989                    (!ARCH_OMAP3 || OMAP3_EMU)
990         default y
991         bool
992
993 if !MMU
994 source "arch/arm/Kconfig-nommu"
995 endif
996
997 config ARM_ERRATA_411920
998         bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
999         depends on CPU_V6 && !SMP
1000         help
1001           Invalidation of the Instruction Cache operation can
1002           fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
1003           It does not affect the MPCore. This option enables the ARM Ltd.
1004           recommended workaround.
1005
1006 config ARM_ERRATA_430973
1007         bool "ARM errata: Stale prediction on replaced interworking branch"
1008         depends on CPU_V7
1009         help
1010           This option enables the workaround for the 430973 Cortex-A8
1011           (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
1012           interworking branch is replaced with another code sequence at the
1013           same virtual address, whether due to self-modifying code or virtual
1014           to physical address re-mapping, Cortex-A8 does not recover from the
1015           stale interworking branch prediction. This results in Cortex-A8
1016           executing the new code sequence in the incorrect ARM or Thumb state.
1017           The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
1018           and also flushes the branch target cache at every context switch.
1019           Note that setting specific bits in the ACTLR register may not be
1020           available in non-secure mode.
1021
1022 config ARM_ERRATA_458693
1023         bool "ARM errata: Processor deadlock when a false hazard is created"
1024         depends on CPU_V7
1025         help
1026           This option enables the workaround for the 458693 Cortex-A8 (r2p0)
1027           erratum. For very specific sequences of memory operations, it is
1028           possible for a hazard condition intended for a cache line to instead
1029           be incorrectly associated with a different cache line. This false
1030           hazard might then cause a processor deadlock. The workaround enables
1031           the L1 caching of the NEON accesses and disables the PLD instruction
1032           in the ACTLR register. Note that setting specific bits in the ACTLR
1033           register may not be available in non-secure mode.
1034
1035 config ARM_ERRATA_460075
1036         bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
1037         depends on CPU_V7
1038         help
1039           This option enables the workaround for the 460075 Cortex-A8 (r2p0)
1040           erratum. Any asynchronous access to the L2 cache may encounter a
1041           situation in which recent store transactions to the L2 cache are lost
1042           and overwritten with stale memory contents from external memory. The
1043           workaround disables the write-allocate mode for the L2 cache via the
1044           ACTLR register. Note that setting specific bits in the ACTLR register
1045           may not be available in non-secure mode.
1046
1047 config PL310_ERRATA_588369
1048         bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
1049         depends on CACHE_L2X0 && ARCH_OMAP4
1050         help
1051            The PL310 L2 cache controller implements three types of Clean &
1052            Invalidate maintenance operations: by Physical Address
1053            (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
1054            They are architecturally defined to behave as the execution of a
1055            clean operation followed immediately by an invalidate operation,
1056            both performing to the same memory location. This functionality
1057            is not correctly implemented in PL310 as clean lines are not
1058            invalidated as a result of these operations. Note that this errata
1059            uses Texas Instrument's secure monitor api.
1060
1061 config ARM_ERRATA_720789
1062         bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
1063         depends on CPU_V7 && SMP
1064         help
1065           This option enables the workaround for the 720789 Cortex-A9 (prior to
1066           r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
1067           broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS.
1068           As a consequence of this erratum, some TLB entries which should be
1069           invalidated are not, resulting in an incoherency in the system page
1070           tables. The workaround changes the TLB flushing routines to invalidate
1071           entries regardless of the ASID.
1072 endmenu
1073
1074 source "arch/arm/common/Kconfig"
1075
1076 menu "Bus support"
1077
1078 config ARM_AMBA
1079         bool
1080
1081 config ISA
1082         bool
1083         help
1084           Find out whether you have ISA slots on your motherboard.  ISA is the
1085           name of a bus system, i.e. the way the CPU talks to the other stuff
1086           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1087           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1088           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1089
1090 # Select ISA DMA controller support
1091 config ISA_DMA
1092         bool
1093         select ISA_DMA_API
1094
1095 # Select ISA DMA interface
1096 config ISA_DMA_API
1097         bool
1098
1099 config PCI
1100         bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE || ARCH_CNS3XXX
1101         help
1102           Find out whether you have a PCI motherboard. PCI is the name of a
1103           bus system, i.e. the way the CPU talks to the other stuff inside
1104           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1105           VESA. If you have PCI, say Y, otherwise N.
1106
1107 config PCI_DOMAINS
1108         bool
1109         depends on PCI
1110
1111 config PCI_SYSCALL
1112         def_bool PCI
1113
1114 # Select the host bridge type
1115 config PCI_HOST_VIA82C505
1116         bool
1117         depends on PCI && ARCH_SHARK
1118         default y
1119
1120 config PCI_HOST_ITE8152
1121         bool
1122         depends on PCI && MACH_ARMCORE
1123         default y
1124         select DMABOUNCE
1125
1126 source "drivers/pci/Kconfig"
1127
1128 source "drivers/pcmcia/Kconfig"
1129
1130 endmenu
1131
1132 menu "Kernel Features"
1133
1134 source "kernel/time/Kconfig"
1135
1136 config SMP
1137         bool "Symmetric Multi-Processing (EXPERIMENTAL)"
1138         depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
1139                  MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
1140                  ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
1141         depends on GENERIC_CLOCKEVENTS
1142         select USE_GENERIC_SMP_HELPERS
1143         select HAVE_ARM_SCU if ARCH_REALVIEW || ARCH_OMAP4 || ARCH_S5PV310 ||\
1144                  ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4
1145         help
1146           This enables support for systems with more than one CPU. If you have
1147           a system with only one CPU, like most personal computers, say N. If
1148           you have a system with more than one CPU, say Y.
1149
1150           If you say N here, the kernel will run on single and multiprocessor
1151           machines, but will use only one CPU of a multiprocessor machine. If
1152           you say Y here, the kernel will run on many, but not all, single
1153           processor machines. On a single processor machine, the kernel will
1154           run faster if you say N here.
1155
1156           See also <file:Documentation/i386/IO-APIC.txt>,
1157           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
1158           <http://www.linuxdoc.org/docs.html#howto>.
1159
1160           If you don't know what to do here, say N.
1161
1162 config HAVE_ARM_SCU
1163         bool
1164         depends on SMP
1165         help
1166           This option enables support for the ARM system coherency unit
1167
1168 config HAVE_ARM_TWD
1169         bool
1170         depends on SMP
1171         help
1172           This options enables support for the ARM timer and watchdog unit
1173
1174 choice
1175         prompt "Memory split"
1176         default VMSPLIT_3G
1177         help
1178           Select the desired split between kernel and user memory.
1179
1180           If you are not absolutely sure what you are doing, leave this
1181           option alone!
1182
1183         config VMSPLIT_3G
1184                 bool "3G/1G user/kernel split"
1185         config VMSPLIT_2G
1186                 bool "2G/2G user/kernel split"
1187         config VMSPLIT_1G
1188                 bool "1G/3G user/kernel split"
1189 endchoice
1190
1191 config PAGE_OFFSET
1192         hex
1193         default 0x40000000 if VMSPLIT_1G
1194         default 0x80000000 if VMSPLIT_2G
1195         default 0xC0000000
1196
1197 config NR_CPUS
1198         int "Maximum number of CPUs (2-32)"
1199         range 2 32
1200         depends on SMP
1201         default "4"
1202
1203 config HOTPLUG_CPU
1204         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
1205         depends on SMP && HOTPLUG && EXPERIMENTAL
1206         help
1207           Say Y here to experiment with turning CPUs off and on.  CPUs
1208           can be controlled through /sys/devices/system/cpu.
1209
1210 config LOCAL_TIMERS
1211         bool "Use local timer interrupts"
1212         depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
1213                 REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
1214                 ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
1215         default y
1216         select HAVE_ARM_TWD if ARCH_REALVIEW || ARCH_OMAP4 || ARCH_S5PV310 || \
1217                 ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS
1218         help
1219           Enable support for local timers on SMP platforms, rather then the
1220           legacy IPI broadcast method.  Local timers allows the system
1221           accounting to be spread across the timer interval, preventing a
1222           "thundering herd" at every timer tick.
1223
1224 source kernel/Kconfig.preempt
1225
1226 config HZ
1227         int
1228         default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || \
1229                 ARCH_S5P6442 || ARCH_S5PV210 || ARCH_S5PV310
1230         default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
1231         default AT91_TIMER_HZ if ARCH_AT91
1232         default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
1233         default 100
1234
1235 config THUMB2_KERNEL
1236         bool "Compile the kernel in Thumb-2 mode"
1237         depends on CPU_V7 && EXPERIMENTAL
1238         select AEABI
1239         select ARM_ASM_UNIFIED
1240         help
1241           By enabling this option, the kernel will be compiled in
1242           Thumb-2 mode. A compiler/assembler that understand the unified
1243           ARM-Thumb syntax is needed.
1244
1245           If unsure, say N.
1246
1247 config ARM_ASM_UNIFIED
1248         bool
1249
1250 config AEABI
1251         bool "Use the ARM EABI to compile the kernel"
1252         help
1253           This option allows for the kernel to be compiled using the latest
1254           ARM ABI (aka EABI).  This is only useful if you are using a user
1255           space environment that is also compiled with EABI.
1256
1257           Since there are major incompatibilities between the legacy ABI and
1258           EABI, especially with regard to structure member alignment, this
1259           option also changes the kernel syscall calling convention to
1260           disambiguate both ABIs and allow for backward compatibility support
1261           (selected with CONFIG_OABI_COMPAT).
1262
1263           To use this you need GCC version 4.0.0 or later.
1264
1265 config OABI_COMPAT
1266         bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1267         depends on AEABI && EXPERIMENTAL
1268         default y
1269         help
1270           This option preserves the old syscall interface along with the
1271           new (ARM EABI) one. It also provides a compatibility layer to
1272           intercept syscalls that have structure arguments which layout
1273           in memory differs between the legacy ABI and the new ARM EABI
1274           (only for non "thumb" binaries). This option adds a tiny
1275           overhead to all syscalls and produces a slightly larger kernel.
1276           If you know you'll be using only pure EABI user space then you
1277           can say N here. If this option is not selected and you attempt
1278           to execute a legacy ABI binary then the result will be
1279           UNPREDICTABLE (in fact it can be predicted that it won't work
1280           at all). If in doubt say Y.
1281
1282 config ARCH_HAS_HOLES_MEMORYMODEL
1283         bool
1284
1285 config ARCH_SPARSEMEM_ENABLE
1286         bool
1287
1288 config ARCH_SPARSEMEM_DEFAULT
1289         def_bool ARCH_SPARSEMEM_ENABLE
1290
1291 config ARCH_SELECT_MEMORY_MODEL
1292         def_bool ARCH_SPARSEMEM_ENABLE
1293
1294 config HIGHMEM
1295         bool "High Memory Support (EXPERIMENTAL)"
1296         depends on MMU && EXPERIMENTAL
1297         help
1298           The address space of ARM processors is only 4 Gigabytes large
1299           and it has to accommodate user address space, kernel address
1300           space as well as some memory mapped IO. That means that, if you
1301           have a large amount of physical memory and/or IO, not all of the
1302           memory can be "permanently mapped" by the kernel. The physical
1303           memory that is not permanently mapped is called "high memory".
1304
1305           Depending on the selected kernel/user memory split, minimum
1306           vmalloc space and actual amount of RAM, you may not need this
1307           option which should result in a slightly faster kernel.
1308
1309           If unsure, say n.
1310
1311 config HIGHPTE
1312         bool "Allocate 2nd-level pagetables from highmem"
1313         depends on HIGHMEM
1314         depends on !OUTER_CACHE
1315
1316 config HW_PERF_EVENTS
1317         bool "Enable hardware performance counter support for perf events"
1318         depends on PERF_EVENTS && CPU_HAS_PMU
1319         default y
1320         help
1321           Enable hardware performance counter support for perf events. If
1322           disabled, perf events will use software events only.
1323
1324 config SPARSE_IRQ
1325         def_bool n
1326         help
1327           This enables support for sparse irqs. This is useful in general
1328           as most CPUs have a fairly sparse array of IRQ vectors, which
1329           the irq_desc then maps directly on to. Systems with a high
1330           number of off-chip IRQs will want to treat this as
1331           experimental until they have been independently verified.
1332
1333 source "mm/Kconfig"
1334
1335 config FORCE_MAX_ZONEORDER
1336         int "Maximum zone order" if ARCH_SHMOBILE
1337         range 11 64 if ARCH_SHMOBILE
1338         default "9" if SA1111
1339         default "11"
1340         help
1341           The kernel memory allocator divides physically contiguous memory
1342           blocks into "zones", where each zone is a power of two number of
1343           pages.  This option selects the largest power of two that the kernel
1344           keeps in the memory allocator.  If you need to allocate very large
1345           blocks of physically contiguous memory, then you may need to
1346           increase this value.
1347
1348           This config option is actually maximum order plus one. For example,
1349           a value of 11 means that the largest free memory block is 2^10 pages.
1350
1351 config LEDS
1352         bool "Timer and CPU usage LEDs"
1353         depends on ARCH_CDB89712 || ARCH_EBSA110 || \
1354                    ARCH_EBSA285 || ARCH_INTEGRATOR || \
1355                    ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
1356                    ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
1357                    ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
1358                    ARCH_AT91 || ARCH_DAVINCI || \
1359                    ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
1360         help
1361           If you say Y here, the LEDs on your machine will be used
1362           to provide useful information about your current system status.
1363
1364           If you are compiling a kernel for a NetWinder or EBSA-285, you will
1365           be able to select which LEDs are active using the options below. If
1366           you are compiling a kernel for the EBSA-110 or the LART however, the
1367           red LED will simply flash regularly to indicate that the system is
1368           still functional. It is safe to say Y here if you have a CATS
1369           system, but the driver will do nothing.
1370
1371 config LEDS_TIMER
1372         bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
1373                             OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1374                             || MACH_OMAP_PERSEUS2
1375         depends on LEDS
1376         depends on !GENERIC_CLOCKEVENTS
1377         default y if ARCH_EBSA110
1378         help
1379           If you say Y here, one of the system LEDs (the green one on the
1380           NetWinder, the amber one on the EBSA285, or the red one on the LART)
1381           will flash regularly to indicate that the system is still
1382           operational. This is mainly useful to kernel hackers who are
1383           debugging unstable kernels.
1384
1385           The LART uses the same LED for both Timer LED and CPU usage LED
1386           functions. You may choose to use both, but the Timer LED function
1387           will overrule the CPU usage LED.
1388
1389 config LEDS_CPU
1390         bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
1391                         !ARCH_OMAP) \
1392                         || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1393                         || MACH_OMAP_PERSEUS2
1394         depends on LEDS
1395         help
1396           If you say Y here, the red LED will be used to give a good real
1397           time indication of CPU usage, by lighting whenever the idle task
1398           is not currently executing.
1399
1400           The LART uses the same LED for both Timer LED and CPU usage LED
1401           functions. You may choose to use both, but the Timer LED function
1402           will overrule the CPU usage LED.
1403
1404 config ALIGNMENT_TRAP
1405         bool
1406         depends on CPU_CP15_MMU
1407         default y if !ARCH_EBSA110
1408         select HAVE_PROC_CPU if PROC_FS
1409         help
1410           ARM processors cannot fetch/store information which is not
1411           naturally aligned on the bus, i.e., a 4 byte fetch must start at an
1412           address divisible by 4. On 32-bit ARM processors, these non-aligned
1413           fetch/store instructions will be emulated in software if you say
1414           here, which has a severe performance impact. This is necessary for
1415           correct operation of some network protocols. With an IP-only
1416           configuration it is safe to say N, otherwise say Y.
1417
1418 config UACCESS_WITH_MEMCPY
1419         bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
1420         depends on MMU && EXPERIMENTAL
1421         default y if CPU_FEROCEON
1422         help
1423           Implement faster copy_to_user and clear_user methods for CPU
1424           cores where a 8-word STM instruction give significantly higher
1425           memory write throughput than a sequence of individual 32bit stores.
1426
1427           A possible side effect is a slight increase in scheduling latency
1428           between threads sharing the same address space if they invoke
1429           such copy operations with large buffers.
1430
1431           However, if the CPU data cache is using a write-allocate mode,
1432           this option is unlikely to provide any performance gain.
1433
1434 config CC_STACKPROTECTOR
1435         bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1436         help
1437           This option turns on the -fstack-protector GCC feature. This
1438           feature puts, at the beginning of functions, a canary value on
1439           the stack just before the return address, and validates
1440           the value just before actually returning.  Stack based buffer
1441           overflows (that need to overwrite this return address) now also
1442           overwrite the canary, which gets detected and the attack is then
1443           neutralized via a kernel panic.
1444           This feature requires gcc version 4.2 or above.
1445
1446 config DEPRECATED_PARAM_STRUCT
1447         bool "Provide old way to pass kernel parameters"
1448         help
1449           This was deprecated in 2001 and announced to live on for 5 years.
1450           Some old boot loaders still use this way.
1451
1452 endmenu
1453
1454 menu "Boot options"
1455
1456 # Compressed boot loader in ROM.  Yes, we really want to ask about
1457 # TEXT and BSS so we preserve their values in the config files.
1458 config ZBOOT_ROM_TEXT
1459         hex "Compressed ROM boot loader base address"
1460         default "0"
1461         help
1462           The physical address at which the ROM-able zImage is to be
1463           placed in the target.  Platforms which normally make use of
1464           ROM-able zImage formats normally set this to a suitable
1465           value in their defconfig file.
1466
1467           If ZBOOT_ROM is not enabled, this has no effect.
1468
1469 config ZBOOT_ROM_BSS
1470         hex "Compressed ROM boot loader BSS address"
1471         default "0"
1472         help
1473           The base address of an area of read/write memory in the target
1474           for the ROM-able zImage which must be available while the
1475           decompressor is running. It must be large enough to hold the
1476           entire decompressed kernel plus an additional 128 KiB.
1477           Platforms which normally make use of ROM-able zImage formats
1478           normally set this to a suitable value in their defconfig file.
1479
1480           If ZBOOT_ROM is not enabled, this has no effect.
1481
1482 config ZBOOT_ROM
1483         bool "Compressed boot loader in ROM/flash"
1484         depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
1485         help
1486           Say Y here if you intend to execute your compressed kernel image
1487           (zImage) directly from ROM or flash.  If unsure, say N.
1488
1489 config CMDLINE
1490         string "Default kernel command string"
1491         default ""
1492         help
1493           On some architectures (EBSA110 and CATS), there is currently no way
1494           for the boot loader to pass arguments to the kernel. For these
1495           architectures, you should supply some command-line options at build
1496           time by entering them here. As a minimum, you should specify the
1497           memory size and the root device (e.g., mem=64M root=/dev/nfs).
1498
1499 config CMDLINE_FORCE
1500         bool "Always use the default kernel command string"
1501         depends on CMDLINE != ""
1502         help
1503           Always use the default kernel command string, even if the boot
1504           loader passes other arguments to the kernel.
1505           This is useful if you cannot or don't want to change the
1506           command-line options your boot loader passes to the kernel.
1507
1508           If unsure, say N.
1509
1510 config XIP_KERNEL
1511         bool "Kernel Execute-In-Place from ROM"
1512         depends on !ZBOOT_ROM
1513         help
1514           Execute-In-Place allows the kernel to run from non-volatile storage
1515           directly addressable by the CPU, such as NOR flash. This saves RAM
1516           space since the text section of the kernel is not loaded from flash
1517           to RAM.  Read-write sections, such as the data section and stack,
1518           are still copied to RAM.  The XIP kernel is not compressed since
1519           it has to run directly from flash, so it will take more space to
1520           store it.  The flash address used to link the kernel object files,
1521           and for storing it, is configuration dependent. Therefore, if you
1522           say Y here, you must know the proper physical address where to
1523           store the kernel image depending on your own flash memory usage.
1524
1525           Also note that the make target becomes "make xipImage" rather than
1526           "make zImage" or "make Image".  The final kernel binary to put in
1527           ROM memory will be arch/arm/boot/xipImage.
1528
1529           If unsure, say N.
1530
1531 config XIP_PHYS_ADDR
1532         hex "XIP Kernel Physical Location"
1533         depends on XIP_KERNEL
1534         default "0x00080000"
1535         help
1536           This is the physical address in your flash memory the kernel will
1537           be linked for and stored to.  This address is dependent on your
1538           own flash usage.
1539
1540 config KEXEC
1541         bool "Kexec system call (EXPERIMENTAL)"
1542         depends on EXPERIMENTAL
1543         help
1544           kexec is a system call that implements the ability to shutdown your
1545           current kernel, and to start another kernel.  It is like a reboot
1546           but it is independent of the system firmware.   And like a reboot
1547           you can start any kernel with it, not just Linux.
1548
1549           It is an ongoing process to be certain the hardware in a machine
1550           is properly shutdown, so do not be surprised if this code does not
1551           initially work for you.  It may help to enable device hotplugging
1552           support.
1553
1554 config ATAGS_PROC
1555         bool "Export atags in procfs"
1556         depends on KEXEC
1557         default y
1558         help
1559           Should the atags used to boot the kernel be exported in an "atags"
1560           file in procfs. Useful with kexec.
1561
1562 config AUTO_ZRELADDR
1563         bool "Auto calculation of the decompressed kernel image address"
1564         depends on !ZBOOT_ROM && !ARCH_U300
1565         help
1566           ZRELADDR is the physical address where the decompressed kernel
1567           image will be placed. If AUTO_ZRELADDR is selected, the address
1568           will be determined at run-time by masking the current IP with
1569           0xf8000000. This assumes the zImage being placed in the first 128MB
1570           from start of memory.
1571
1572 config ZRELADDR
1573         hex "Physical address of the decompressed kernel image"
1574         depends on !AUTO_ZRELADDR
1575         default 0x00008000 if ARCH_BCMRING ||\
1576                 ARCH_CNS3XXX ||\
1577                 ARCH_DOVE ||\
1578                 ARCH_EBSA110 ||\
1579                 ARCH_FOOTBRIDGE ||\
1580                 ARCH_INTEGRATOR ||\
1581                 ARCH_IOP13XX ||\
1582                 ARCH_IOP33X ||\
1583                 ARCH_IXP2000 ||\
1584                 ARCH_IXP23XX ||\
1585                 ARCH_IXP4XX ||\
1586                 ARCH_KIRKWOOD ||\
1587                 ARCH_KS8695 ||\
1588                 ARCH_LOKI ||\
1589                 ARCH_MMP ||\
1590                 ARCH_MV78XX0 ||\
1591                 ARCH_NOMADIK ||\
1592                 ARCH_NUC93X ||\
1593                 ARCH_NS9XXX ||\
1594                 ARCH_ORION5X ||\
1595                 ARCH_SPEAR3XX ||\
1596                 ARCH_SPEAR6XX ||\
1597                 ARCH_U8500 ||\
1598                 ARCH_VERSATILE ||\
1599                 ARCH_W90X900
1600         default 0x08008000 if ARCH_MX1 ||\
1601                 ARCH_SHARK
1602         default 0x10008000 if ARCH_MSM ||\
1603                 ARCH_OMAP1 ||\
1604                 ARCH_RPC
1605         default 0x20008000 if ARCH_S5P6440 ||\
1606                 ARCH_S5P6442 ||\
1607                 ARCH_S5PC100 ||\
1608                 ARCH_S5PV210
1609         default 0x30008000 if ARCH_S3C2410 ||\
1610                 ARCH_S3C2400 ||\
1611                 ARCH_S3C2412 ||\
1612                 ARCH_S3C2416 ||\
1613                 ARCH_S3C2440 ||\
1614                 ARCH_S3C2443
1615         default 0x40008000 if ARCH_STMP378X ||\
1616                 ARCH_STMP37XX ||\
1617                 ARCH_SH7372 ||\
1618                 ARCH_SH7377
1619         default 0x50008000 if ARCH_S3C64XX ||\
1620                 ARCH_SH7367
1621         default 0x60008000 if ARCH_VEXPRESS
1622         default 0x80008000 if ARCH_MX25 ||\
1623                 ARCH_MX3 ||\
1624                 ARCH_NETX ||\
1625                 ARCH_OMAP2PLUS ||\
1626                 ARCH_PNX4008
1627         default 0x90008000 if ARCH_MX5 ||\
1628                 ARCH_MX91231
1629         default 0xa0008000 if ARCH_IOP32X ||\
1630                 ARCH_PXA ||\
1631                 MACH_MX27
1632         default 0xc0008000 if ARCH_LH7A40X ||\
1633                 MACH_MX21
1634         default 0xf0008000 if ARCH_AAEC2000 ||\
1635                 ARCH_L7200
1636         default 0xc0028000 if ARCH_CLPS711X
1637         default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
1638         default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
1639         default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
1640         default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
1641         default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
1642         default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
1643         default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
1644         default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
1645         default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
1646         default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
1647         default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
1648         default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
1649         default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
1650         default 0xc0208000 if ARCH_SA1100 && SA1111
1651         default 0xc0008000 if ARCH_SA1100 && !SA1111
1652         default 0x30108000 if ARCH_S3C2410 && PM_H1940
1653         default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
1654         default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
1655         help
1656           ZRELADDR is the physical address where the decompressed kernel
1657           image will be placed. ZRELADDR has to be specified when the
1658           assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
1659           selected.
1660
1661 endmenu
1662
1663 menu "CPU Power Management"
1664
1665 if ARCH_HAS_CPUFREQ
1666
1667 source "drivers/cpufreq/Kconfig"
1668
1669 config CPU_FREQ_SA1100
1670         bool
1671
1672 config CPU_FREQ_SA1110
1673         bool
1674
1675 config CPU_FREQ_INTEGRATOR
1676         tristate "CPUfreq driver for ARM Integrator CPUs"
1677         depends on ARCH_INTEGRATOR && CPU_FREQ
1678         default y
1679         help
1680           This enables the CPUfreq driver for ARM Integrator CPUs.
1681
1682           For details, take a look at <file:Documentation/cpu-freq>.
1683
1684           If in doubt, say Y.
1685
1686 config CPU_FREQ_PXA
1687         bool
1688         depends on CPU_FREQ && ARCH_PXA && PXA25x
1689         default y
1690         select CPU_FREQ_DEFAULT_GOV_USERSPACE
1691
1692 config CPU_FREQ_S3C64XX
1693         bool "CPUfreq support for Samsung S3C64XX CPUs"
1694         depends on CPU_FREQ && CPU_S3C6410
1695
1696 config CPU_FREQ_S3C
1697         bool
1698         help
1699           Internal configuration node for common cpufreq on Samsung SoC
1700
1701 config CPU_FREQ_S3C24XX
1702         bool "CPUfreq driver for Samsung S3C24XX series CPUs"
1703         depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
1704         select CPU_FREQ_S3C
1705         help
1706           This enables the CPUfreq driver for the Samsung S3C24XX family
1707           of CPUs.
1708
1709           For details, take a look at <file:Documentation/cpu-freq>.
1710
1711           If in doubt, say N.
1712
1713 config CPU_FREQ_S3C24XX_PLL
1714         bool "Support CPUfreq changing of PLL frequency"
1715         depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
1716         help
1717           Compile in support for changing the PLL frequency from the
1718           S3C24XX series CPUfreq driver. The PLL takes time to settle
1719           after a frequency change, so by default it is not enabled.
1720
1721           This also means that the PLL tables for the selected CPU(s) will
1722           be built which may increase the size of the kernel image.
1723
1724 config CPU_FREQ_S3C24XX_DEBUG
1725         bool "Debug CPUfreq Samsung driver core"
1726         depends on CPU_FREQ_S3C24XX
1727         help
1728           Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
1729
1730 config CPU_FREQ_S3C24XX_IODEBUG
1731         bool "Debug CPUfreq Samsung driver IO timing"
1732         depends on CPU_FREQ_S3C24XX
1733         help
1734           Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
1735
1736 config CPU_FREQ_S3C24XX_DEBUGFS
1737         bool "Export debugfs for CPUFreq"
1738         depends on CPU_FREQ_S3C24XX && DEBUG_FS
1739         help
1740           Export status information via debugfs.
1741
1742 endif
1743
1744 source "drivers/cpuidle/Kconfig"
1745
1746 endmenu
1747
1748 menu "Floating point emulation"
1749
1750 comment "At least one emulation must be selected"
1751
1752 config FPE_NWFPE
1753         bool "NWFPE math emulation"
1754         depends on !AEABI || OABI_COMPAT
1755         ---help---
1756           Say Y to include the NWFPE floating point emulator in the kernel.
1757           This is necessary to run most binaries. Linux does not currently
1758           support floating point hardware so you need to say Y here even if
1759           your machine has an FPA or floating point co-processor podule.
1760
1761           You may say N here if you are going to load the Acorn FPEmulator
1762           early in the bootup.
1763
1764 config FPE_NWFPE_XP
1765         bool "Support extended precision"
1766         depends on FPE_NWFPE
1767         help
1768           Say Y to include 80-bit support in the kernel floating-point
1769           emulator.  Otherwise, only 32 and 64-bit support is compiled in.
1770           Note that gcc does not generate 80-bit operations by default,
1771           so in most cases this option only enlarges the size of the
1772           floating point emulator without any good reason.
1773
1774           You almost surely want to say N here.
1775
1776 config FPE_FASTFPE
1777         bool "FastFPE math emulation (EXPERIMENTAL)"
1778         depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
1779         ---help---
1780           Say Y here to include the FAST floating point emulator in the kernel.
1781           This is an experimental much faster emulator which now also has full
1782           precision for the mantissa.  It does not support any exceptions.
1783           It is very simple, and approximately 3-6 times faster than NWFPE.
1784
1785           It should be sufficient for most programs.  It may be not suitable
1786           for scientific calculations, but you have to check this for yourself.
1787           If you do not feel you need a faster FP emulation you should better
1788           choose NWFPE.
1789
1790 config VFP
1791         bool "VFP-format floating point maths"
1792         depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
1793         help
1794           Say Y to include VFP support code in the kernel. This is needed
1795           if your hardware includes a VFP unit.
1796
1797           Please see <file:Documentation/arm/VFP/release-notes.txt> for
1798           release notes and additional status information.
1799
1800           Say N if your target does not have VFP hardware.
1801
1802 config VFPv3
1803         bool
1804         depends on VFP
1805         default y if CPU_V7
1806
1807 config NEON
1808         bool "Advanced SIMD (NEON) Extension support"
1809         depends on VFPv3 && CPU_V7
1810         help
1811           Say Y to include support code for NEON, the ARMv7 Advanced SIMD
1812           Extension.
1813
1814 endmenu
1815
1816 menu "Userspace binary formats"
1817
1818 source "fs/Kconfig.binfmt"
1819
1820 config ARTHUR
1821         tristate "RISC OS personality"
1822         depends on !AEABI
1823         help
1824           Say Y here to include the kernel code necessary if you want to run
1825           Acorn RISC OS/Arthur binaries under Linux. This code is still very
1826           experimental; if this sounds frightening, say N and sleep in peace.
1827           You can also say M here to compile this support as a module (which
1828           will be called arthur).
1829
1830 endmenu
1831
1832 menu "Power management options"
1833
1834 source "kernel/power/Kconfig"
1835
1836 config ARCH_SUSPEND_POSSIBLE
1837         def_bool y
1838
1839 endmenu
1840
1841 source "net/Kconfig"
1842
1843 source "drivers/Kconfig"
1844
1845 source "fs/Kconfig"
1846
1847 source "arch/arm/Kconfig.debug"
1848
1849 source "security/Kconfig"
1850
1851 source "crypto/Kconfig"
1852
1853 source "lib/Kconfig"