xref: /linux/arch/arm/Kconfig (revision 14c6b5e7add9ec393ad61bceb6106b47c7f14bd3)
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6mainmenu "Linux Kernel Configuration"
7
8config ARM
9	bool
10	default y
11	select HAVE_AOUT
12	select HAVE_IDE
13	select RTC_LIB
14	select SYS_SUPPORTS_APM_EMULATION
15	select HAVE_OPROFILE
16	select HAVE_ARCH_KGDB
17	select HAVE_KPROBES if (!XIP_KERNEL)
18	select HAVE_KRETPROBES if (HAVE_KPROBES)
19	select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
20	select HAVE_GENERIC_DMA_COHERENT
21	help
22	  The ARM series is a line of low-power-consumption RISC chip designs
23	  licensed by ARM Ltd and targeted at embedded applications and
24	  handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
25	  manufactured, but legacy ARM-based PC hardware remains popular in
26	  Europe.  There is an ARM Linux project with a web page at
27	  <http://www.arm.linux.org.uk/>.
28
29config HAVE_PWM
30	bool
31
32config SYS_SUPPORTS_APM_EMULATION
33	bool
34
35config GENERIC_GPIO
36	bool
37	default n
38
39config GENERIC_TIME
40	bool
41	default n
42
43config GENERIC_CLOCKEVENTS
44	bool
45	default n
46
47config GENERIC_CLOCKEVENTS_BROADCAST
48	bool
49	depends on GENERIC_CLOCKEVENTS
50	default y if SMP && !LOCAL_TIMERS
51
52config MMU
53	bool
54	default y
55
56config NO_IOPORT
57	bool
58	default n
59
60config EISA
61	bool
62	---help---
63	  The Extended Industry Standard Architecture (EISA) bus was
64	  developed as an open alternative to the IBM MicroChannel bus.
65
66	  The EISA bus provided some of the features of the IBM MicroChannel
67	  bus while maintaining backward compatibility with cards made for
68	  the older ISA bus.  The EISA bus saw limited use between 1988 and
69	  1995 when it was made obsolete by the PCI bus.
70
71	  Say Y here if you are building a kernel for an EISA-based machine.
72
73	  Otherwise, say N.
74
75config SBUS
76	bool
77
78config MCA
79	bool
80	help
81	  MicroChannel Architecture is found in some IBM PS/2 machines and
82	  laptops.  It is a bus system similar to PCI or ISA. See
83	  <file:Documentation/mca.txt> (and especially the web page given
84	  there) before attempting to build an MCA bus kernel.
85
86config GENERIC_HARDIRQS
87	bool
88	default y
89
90config STACKTRACE_SUPPORT
91	bool
92	default y
93
94config HAVE_LATENCYTOP_SUPPORT
95	bool
96	depends on !SMP
97	default y
98
99config LOCKDEP_SUPPORT
100	bool
101	default y
102
103config TRACE_IRQFLAGS_SUPPORT
104	bool
105	default y
106
107config HARDIRQS_SW_RESEND
108	bool
109	default y
110
111config GENERIC_IRQ_PROBE
112	bool
113	default y
114
115config GENERIC_LOCKBREAK
116	bool
117	default y
118	depends on SMP && PREEMPT
119
120config RWSEM_GENERIC_SPINLOCK
121	bool
122	default y
123
124config RWSEM_XCHGADD_ALGORITHM
125	bool
126
127config ARCH_HAS_ILOG2_U32
128	bool
129	default n
130
131config ARCH_HAS_ILOG2_U64
132	bool
133	default n
134
135config GENERIC_HWEIGHT
136	bool
137	default y
138
139config GENERIC_CALIBRATE_DELAY
140	bool
141	default y
142
143config ARCH_MAY_HAVE_PC_FDC
144	bool
145
146config ZONE_DMA
147	bool
148
149config GENERIC_ISA_DMA
150	bool
151
152config FIQ
153	bool
154
155config ARCH_MTD_XIP
156	bool
157
158config GENERIC_HARDIRQS_NO__DO_IRQ
159	def_bool y
160
161if OPROFILE
162
163config OPROFILE_ARMV6
164	def_bool y
165	depends on CPU_V6 && !SMP
166	select OPROFILE_ARM11_CORE
167
168config OPROFILE_MPCORE
169	def_bool y
170	depends on CPU_V6 && SMP
171	select OPROFILE_ARM11_CORE
172
173config OPROFILE_ARM11_CORE
174	bool
175
176config OPROFILE_ARMV7
177	def_bool y
178	depends on CPU_V7 && !SMP
179	bool
180
181endif
182
183config VECTORS_BASE
184	hex
185	default 0xffff0000 if MMU || CPU_HIGH_VECTOR
186	default DRAM_BASE if REMAP_VECTORS_TO_RAM
187	default 0x00000000
188	help
189	  The base address of exception vectors.
190
191source "init/Kconfig"
192
193source "kernel/Kconfig.freezer"
194
195menu "System Type"
196
197choice
198	prompt "ARM system type"
199	default ARCH_VERSATILE
200
201config ARCH_AAEC2000
202	bool "Agilent AAEC-2000 based"
203	select CPU_ARM920T
204	select ARM_AMBA
205	select HAVE_CLK
206	help
207	  This enables support for systems based on the Agilent AAEC-2000
208
209config ARCH_INTEGRATOR
210	bool "ARM Ltd. Integrator family"
211	select ARM_AMBA
212	select HAVE_CLK
213	select COMMON_CLKDEV
214	select ICST525
215	help
216	  Support for ARM's Integrator platform.
217
218config ARCH_REALVIEW
219	bool "ARM Ltd. RealView family"
220	select ARM_AMBA
221	select HAVE_CLK
222	select COMMON_CLKDEV
223	select ICST307
224	select GENERIC_TIME
225	select GENERIC_CLOCKEVENTS
226	help
227	  This enables support for ARM Ltd RealView boards.
228
229config ARCH_VERSATILE
230	bool "ARM Ltd. Versatile family"
231	select ARM_AMBA
232	select ARM_VIC
233	select HAVE_CLK
234	select COMMON_CLKDEV
235	select ICST307
236	select GENERIC_TIME
237	select GENERIC_CLOCKEVENTS
238	help
239	  This enables support for ARM Ltd Versatile board.
240
241config ARCH_AT91
242	bool "Atmel AT91"
243	select GENERIC_GPIO
244	select ARCH_REQUIRE_GPIOLIB
245	select HAVE_CLK
246	help
247	  This enables support for systems based on the Atmel AT91RM9200,
248	  AT91SAM9 and AT91CAP9 processors.
249
250config ARCH_CLPS711X
251	bool "Cirrus Logic CLPS711x/EP721x-based"
252	select CPU_ARM720T
253	help
254	  Support for Cirrus Logic 711x/721x based boards.
255
256config ARCH_EBSA110
257	bool "EBSA-110"
258	select CPU_SA110
259	select ISA
260	select NO_IOPORT
261	help
262	  This is an evaluation board for the StrongARM processor available
263	  from Digital. It has limited hardware on-board, including an
264	  Ethernet interface, two PCMCIA sockets, two serial ports and a
265	  parallel port.
266
267config ARCH_EP93XX
268	bool "EP93xx-based"
269	select CPU_ARM920T
270	select ARM_AMBA
271	select ARM_VIC
272	select GENERIC_GPIO
273	select HAVE_CLK
274	select COMMON_CLKDEV
275	select ARCH_REQUIRE_GPIOLIB
276	help
277	  This enables support for the Cirrus EP93xx series of CPUs.
278
279config ARCH_FOOTBRIDGE
280	bool "FootBridge"
281	select CPU_SA110
282	select FOOTBRIDGE
283	help
284	  Support for systems based on the DC21285 companion chip
285	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
286
287config ARCH_NETX
288	bool "Hilscher NetX based"
289	select CPU_ARM926T
290	select ARM_VIC
291	select GENERIC_CLOCKEVENTS
292	select GENERIC_TIME
293	help
294	  This enables support for systems based on the Hilscher NetX Soc
295
296config ARCH_H720X
297	bool "Hynix HMS720x-based"
298	select CPU_ARM720T
299	select ISA_DMA_API
300	help
301	  This enables support for systems based on the Hynix HMS720x
302
303config ARCH_IMX
304	bool "IMX"
305	select CPU_ARM920T
306	select GENERIC_GPIO
307	select GENERIC_TIME
308	select GENERIC_CLOCKEVENTS
309	help
310	  Support for Motorola's i.MX family of processors (MX1, MXL).
311
312config ARCH_IOP13XX
313	bool "IOP13xx-based"
314	depends on MMU
315	select CPU_XSC3
316	select PLAT_IOP
317	select PCI
318	select ARCH_SUPPORTS_MSI
319	select VMSPLIT_1G
320	help
321	  Support for Intel's IOP13XX (XScale) family of processors.
322
323config ARCH_IOP32X
324	bool "IOP32x-based"
325	depends on MMU
326	select CPU_XSCALE
327	select PLAT_IOP
328	select PCI
329	select GENERIC_GPIO
330	select ARCH_REQUIRE_GPIOLIB
331	help
332	  Support for Intel's 80219 and IOP32X (XScale) family of
333	  processors.
334
335config ARCH_IOP33X
336	bool "IOP33x-based"
337	depends on MMU
338	select CPU_XSCALE
339	select PLAT_IOP
340	select PCI
341	select GENERIC_GPIO
342	select ARCH_REQUIRE_GPIOLIB
343	help
344	  Support for Intel's IOP33X (XScale) family of processors.
345
346config ARCH_IXP23XX
347 	bool "IXP23XX-based"
348	depends on MMU
349	select CPU_XSC3
350 	select PCI
351	help
352	  Support for Intel's IXP23xx (XScale) family of processors.
353
354config ARCH_IXP2000
355	bool "IXP2400/2800-based"
356	depends on MMU
357	select CPU_XSCALE
358	select PCI
359	help
360	  Support for Intel's IXP2400/2800 (XScale) family of processors.
361
362config ARCH_IXP4XX
363	bool "IXP4xx-based"
364	depends on MMU
365	select CPU_XSCALE
366	select GENERIC_GPIO
367	select GENERIC_TIME
368	select GENERIC_CLOCKEVENTS
369	select DMABOUNCE if PCI
370	help
371	  Support for Intel's IXP4XX (XScale) family of processors.
372
373config ARCH_L7200
374	bool "LinkUp-L7200"
375	select CPU_ARM720T
376	select FIQ
377	help
378	  Say Y here if you intend to run this kernel on a LinkUp Systems
379	  L7200 Software Development Board which uses an ARM720T processor.
380	  Information on this board can be obtained at:
381
382	  <http://www.linkupsys.com/>
383
384	  If you have any questions or comments about the Linux kernel port
385	  to this board, send e-mail to <sjhill@cotw.com>.
386
387config ARCH_KIRKWOOD
388	bool "Marvell Kirkwood"
389	select CPU_FEROCEON
390	select PCI
391	select GENERIC_GPIO
392	select GENERIC_TIME
393	select GENERIC_CLOCKEVENTS
394	select PLAT_ORION
395	help
396	  Support for the following Marvell Kirkwood series SoCs:
397	  88F6180, 88F6192 and 88F6281.
398
399config ARCH_KS8695
400	bool "Micrel/Kendin KS8695"
401	select CPU_ARM922T
402	select GENERIC_GPIO
403        select ARCH_REQUIRE_GPIOLIB
404	help
405	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
406	  System-on-Chip devices.
407
408config ARCH_NS9XXX
409	bool "NetSilicon NS9xxx"
410	select CPU_ARM926T
411	select GENERIC_GPIO
412	select GENERIC_TIME
413	select GENERIC_CLOCKEVENTS
414	select HAVE_CLK
415	help
416	  Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
417	  System.
418
419	  <http://www.digi.com/products/microprocessors/index.jsp>
420
421config ARCH_LOKI
422	bool "Marvell Loki (88RC8480)"
423	select CPU_FEROCEON
424	select GENERIC_TIME
425	select GENERIC_CLOCKEVENTS
426	select PLAT_ORION
427	help
428	  Support for the Marvell Loki (88RC8480) SoC.
429
430config ARCH_MV78XX0
431	bool "Marvell MV78xx0"
432	select CPU_FEROCEON
433	select PCI
434	select GENERIC_GPIO
435	select GENERIC_TIME
436	select GENERIC_CLOCKEVENTS
437	select PLAT_ORION
438	help
439	  Support for the following Marvell MV78xx0 series SoCs:
440	  MV781x0, MV782x0.
441
442config ARCH_MXC
443	bool "Freescale MXC/iMX-based"
444	select GENERIC_TIME
445	select GENERIC_CLOCKEVENTS
446	select ARCH_MTD_XIP
447	select GENERIC_GPIO
448	select ARCH_REQUIRE_GPIOLIB
449	help
450	  Support for Freescale MXC/iMX-based family of processors
451
452config ARCH_ORION5X
453	bool "Marvell Orion"
454	depends on MMU
455	select CPU_FEROCEON
456	select PCI
457	select GENERIC_GPIO
458	select GENERIC_TIME
459	select GENERIC_CLOCKEVENTS
460	select PLAT_ORION
461	help
462	  Support for the following Marvell Orion 5x series SoCs:
463	  Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
464	  Orion-2 (5281), Orion-1-90 (6183).
465
466config ARCH_PNX4008
467	bool "Philips Nexperia PNX4008 Mobile"
468	select CPU_ARM926T
469	select HAVE_CLK
470	help
471	  This enables support for Philips PNX4008 mobile platform.
472
473config ARCH_PXA
474	bool "PXA2xx/PXA3xx-based"
475	depends on MMU
476	select ARCH_MTD_XIP
477	select GENERIC_GPIO
478	select HAVE_CLK
479	select COMMON_CLKDEV
480	select ARCH_REQUIRE_GPIOLIB
481	select HAVE_CLK
482	select COMMON_CLKDEV
483	select GENERIC_TIME
484	select GENERIC_CLOCKEVENTS
485	select TICK_ONESHOT
486	select PLAT_PXA
487	help
488	  Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
489
490config ARCH_MMP
491	bool "Marvell PXA168/910"
492	depends on MMU
493	select GENERIC_GPIO
494	select ARCH_REQUIRE_GPIOLIB
495	select HAVE_CLK
496	select COMMON_CLKDEV
497	select GENERIC_TIME
498	select GENERIC_CLOCKEVENTS
499	select TICK_ONESHOT
500	select PLAT_PXA
501	help
502	  Support for Marvell's PXA168/910 processor line.
503
504config ARCH_RPC
505	bool "RiscPC"
506	select ARCH_ACORN
507	select FIQ
508	select TIMER_ACORN
509	select ARCH_MAY_HAVE_PC_FDC
510	select HAVE_PATA_PLATFORM
511	select ISA_DMA_API
512	select NO_IOPORT
513	select ARCH_SPARSEMEM_ENABLE
514	help
515	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
516	  CD-ROM interface, serial and parallel port, and the floppy drive.
517
518config ARCH_SA1100
519	bool "SA1100-based"
520	select CPU_SA1100
521	select ISA
522	select ARCH_SPARSEMEM_ENABLE
523	select ARCH_MTD_XIP
524	select GENERIC_GPIO
525	select GENERIC_TIME
526	select GENERIC_CLOCKEVENTS
527	select HAVE_CLK
528	select TICK_ONESHOT
529	select ARCH_REQUIRE_GPIOLIB
530	help
531	  Support for StrongARM 11x0 based boards.
532
533config ARCH_S3C2410
534	bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
535	select GENERIC_GPIO
536	select HAVE_CLK
537	help
538	  Samsung S3C2410X CPU based systems, such as the Simtec Electronics
539	  BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
540	  the Samsung SMDK2410 development board (and derivatives).
541
542config ARCH_S3C64XX
543	bool "Samsung S3C64XX"
544	select GENERIC_GPIO
545	select HAVE_CLK
546	help
547	  Samsung S3C64XX series based systems
548
549config ARCH_SHARK
550	bool "Shark"
551	select CPU_SA110
552	select ISA
553	select ISA_DMA
554	select ZONE_DMA
555	select PCI
556	help
557	  Support for the StrongARM based Digital DNARD machine, also known
558	  as "Shark" (<http://www.shark-linux.de/shark.html>).
559
560config ARCH_LH7A40X
561	bool "Sharp LH7A40X"
562	select CPU_ARM922T
563	select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM
564	select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
565	help
566	  Say Y here for systems based on one of the Sharp LH7A40X
567	  System on a Chip processors.  These CPUs include an ARM922T
568	  core with a wide array of integrated devices for
569	  hand-held and low-power applications.
570
571config ARCH_DAVINCI
572	bool "TI DaVinci"
573	select CPU_ARM926T
574	select GENERIC_TIME
575	select GENERIC_CLOCKEVENTS
576	select GENERIC_GPIO
577	select ARCH_REQUIRE_GPIOLIB
578	select HAVE_CLK
579	select ZONE_DMA
580	help
581	  Support for TI's DaVinci platform.
582
583config ARCH_OMAP
584	bool "TI OMAP"
585	select GENERIC_GPIO
586	select HAVE_CLK
587	select ARCH_REQUIRE_GPIOLIB
588	select GENERIC_TIME
589	select GENERIC_CLOCKEVENTS
590	help
591	  Support for TI's OMAP platform (OMAP1 and OMAP2).
592
593config ARCH_MSM
594	bool "Qualcomm MSM"
595	select CPU_V6
596	select GENERIC_TIME
597	select GENERIC_CLOCKEVENTS
598	help
599	  Support for Qualcomm MSM7K based systems.  This runs on the ARM11
600	  apps processor of the MSM7K and depends on a shared memory
601	  interface to the ARM9 modem processor which runs the baseband stack
602	  and controls some vital subsystems (clock and power control, etc).
603
604config ARCH_W90X900
605	bool "Nuvoton W90X900 CPU"
606	select CPU_ARM926T
607	help
608		Support for Nuvoton (Winbond logic dept.) ARM9 processor,You
609		can login www.mcuos.com or www.nuvoton.com to know more.
610
611endchoice
612
613source "arch/arm/mach-clps711x/Kconfig"
614
615source "arch/arm/mach-ep93xx/Kconfig"
616
617source "arch/arm/mach-footbridge/Kconfig"
618
619source "arch/arm/mach-integrator/Kconfig"
620
621source "arch/arm/mach-iop32x/Kconfig"
622
623source "arch/arm/mach-iop33x/Kconfig"
624
625source "arch/arm/mach-iop13xx/Kconfig"
626
627source "arch/arm/mach-ixp4xx/Kconfig"
628
629source "arch/arm/mach-ixp2000/Kconfig"
630
631source "arch/arm/mach-ixp23xx/Kconfig"
632
633source "arch/arm/mach-loki/Kconfig"
634
635source "arch/arm/mach-mv78xx0/Kconfig"
636
637source "arch/arm/mach-pxa/Kconfig"
638source "arch/arm/plat-pxa/Kconfig"
639
640source "arch/arm/mach-mmp/Kconfig"
641
642source "arch/arm/mach-sa1100/Kconfig"
643
644source "arch/arm/plat-omap/Kconfig"
645
646source "arch/arm/mach-omap1/Kconfig"
647
648source "arch/arm/mach-omap2/Kconfig"
649
650source "arch/arm/mach-orion5x/Kconfig"
651
652source "arch/arm/mach-kirkwood/Kconfig"
653
654source "arch/arm/plat-s3c24xx/Kconfig"
655source "arch/arm/plat-s3c64xx/Kconfig"
656source "arch/arm/plat-s3c/Kconfig"
657
658if ARCH_S3C2410
659source "arch/arm/mach-s3c2400/Kconfig"
660source "arch/arm/mach-s3c2410/Kconfig"
661source "arch/arm/mach-s3c2412/Kconfig"
662source "arch/arm/mach-s3c2440/Kconfig"
663source "arch/arm/mach-s3c2442/Kconfig"
664source "arch/arm/mach-s3c2443/Kconfig"
665endif
666
667if ARCH_S3C64XX
668source "arch/arm/mach-s3c6400/Kconfig"
669source "arch/arm/mach-s3c6410/Kconfig"
670endif
671
672source "arch/arm/mach-lh7a40x/Kconfig"
673
674source "arch/arm/mach-imx/Kconfig"
675
676source "arch/arm/mach-h720x/Kconfig"
677
678source "arch/arm/mach-versatile/Kconfig"
679
680source "arch/arm/mach-aaec2000/Kconfig"
681
682source "arch/arm/mach-realview/Kconfig"
683
684source "arch/arm/mach-at91/Kconfig"
685
686source "arch/arm/plat-mxc/Kconfig"
687
688source "arch/arm/mach-netx/Kconfig"
689
690source "arch/arm/mach-ns9xxx/Kconfig"
691
692source "arch/arm/mach-davinci/Kconfig"
693
694source "arch/arm/mach-ks8695/Kconfig"
695
696source "arch/arm/mach-msm/Kconfig"
697
698source "arch/arm/mach-w90x900/Kconfig"
699
700# Definitions to make life easier
701config ARCH_ACORN
702	bool
703
704config PLAT_IOP
705	bool
706
707config PLAT_ORION
708	bool
709
710config PLAT_PXA
711	bool
712
713source arch/arm/mm/Kconfig
714
715config IWMMXT
716	bool "Enable iWMMXt support"
717	depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
718	default y if PXA27x || PXA3xx || ARCH_MMP
719	help
720	  Enable support for iWMMXt context switching at run time if
721	  running on a CPU that supports it.
722
723#  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
724config XSCALE_PMU
725	bool
726	depends on CPU_XSCALE && !XSCALE_PMU_TIMER
727	default y
728
729if !MMU
730source "arch/arm/Kconfig-nommu"
731endif
732
733endmenu
734
735source "arch/arm/common/Kconfig"
736
737config FORCE_MAX_ZONEORDER
738	int
739	depends on SA1111
740	default "9"
741
742menu "Bus support"
743
744config ARM_AMBA
745	bool
746
747config ISA
748	bool
749	help
750	  Find out whether you have ISA slots on your motherboard.  ISA is the
751	  name of a bus system, i.e. the way the CPU talks to the other stuff
752	  inside your box.  Other bus systems are PCI, EISA, MicroChannel
753	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
754	  newer boards don't support it.  If you have ISA, say Y, otherwise N.
755
756# Select ISA DMA controller support
757config ISA_DMA
758	bool
759	select ISA_DMA_API
760
761# Select ISA DMA interface
762config ISA_DMA_API
763	bool
764
765config PCI
766	bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
767	help
768	  Find out whether you have a PCI motherboard. PCI is the name of a
769	  bus system, i.e. the way the CPU talks to the other stuff inside
770	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
771	  VESA. If you have PCI, say Y, otherwise N.
772
773config PCI_SYSCALL
774	def_bool PCI
775
776# Select the host bridge type
777config PCI_HOST_VIA82C505
778	bool
779	depends on PCI && ARCH_SHARK
780	default y
781
782config PCI_HOST_ITE8152
783	bool
784	depends on PCI && MACH_ARMCORE
785	default y
786	select DMABOUNCE
787
788source "drivers/pci/Kconfig"
789
790source "drivers/pcmcia/Kconfig"
791
792endmenu
793
794menu "Kernel Features"
795
796source "kernel/time/Kconfig"
797
798config SMP
799	bool "Symmetric Multi-Processing (EXPERIMENTAL)"
800	depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
801	select USE_GENERIC_SMP_HELPERS
802	help
803	  This enables support for systems with more than one CPU. If you have
804	  a system with only one CPU, like most personal computers, say N. If
805	  you have a system with more than one CPU, say Y.
806
807	  If you say N here, the kernel will run on single and multiprocessor
808	  machines, but will use only one CPU of a multiprocessor machine. If
809	  you say Y here, the kernel will run on many, but not all, single
810	  processor machines. On a single processor machine, the kernel will
811	  run faster if you say N here.
812
813	  See also <file:Documentation/i386/IO-APIC.txt>,
814	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
815	  <http://www.linuxdoc.org/docs.html#howto>.
816
817	  If you don't know what to do here, say N.
818
819choice
820	prompt "Memory split"
821	default VMSPLIT_3G
822	help
823	  Select the desired split between kernel and user memory.
824
825	  If you are not absolutely sure what you are doing, leave this
826	  option alone!
827
828	config VMSPLIT_3G
829		bool "3G/1G user/kernel split"
830	config VMSPLIT_2G
831		bool "2G/2G user/kernel split"
832	config VMSPLIT_1G
833		bool "1G/3G user/kernel split"
834endchoice
835
836config PAGE_OFFSET
837	hex
838	default 0x40000000 if VMSPLIT_1G
839	default 0x80000000 if VMSPLIT_2G
840	default 0xC0000000
841
842config NR_CPUS
843	int "Maximum number of CPUs (2-32)"
844	range 2 32
845	depends on SMP
846	default "4"
847
848config HOTPLUG_CPU
849	bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
850	depends on SMP && HOTPLUG && EXPERIMENTAL
851	help
852	  Say Y here to experiment with turning CPUs off and on.  CPUs
853	  can be controlled through /sys/devices/system/cpu.
854
855config LOCAL_TIMERS
856	bool "Use local timer interrupts"
857	depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || REALVIEW_EB_A9MP)
858	default y
859	help
860	  Enable support for local timers on SMP platforms, rather then the
861	  legacy IPI broadcast method.  Local timers allows the system
862	  accounting to be spread across the timer interval, preventing a
863	  "thundering herd" at every timer tick.
864
865config PREEMPT
866	bool "Preemptible Kernel (EXPERIMENTAL)"
867	depends on EXPERIMENTAL
868	help
869	  This option reduces the latency of the kernel when reacting to
870	  real-time or interactive events by allowing a low priority process to
871	  be preempted even if it is in kernel mode executing a system call.
872	  This allows applications to run more reliably even when the system is
873	  under load.
874
875	  Say Y here if you are building a kernel for a desktop, embedded
876	  or real-time system.  Say N if you are unsure.
877
878config HZ
879	int
880	default 128 if ARCH_L7200
881	default 200 if ARCH_EBSA110 || ARCH_S3C2410
882	default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
883	default AT91_TIMER_HZ if ARCH_AT91
884	default 100
885
886config AEABI
887	bool "Use the ARM EABI to compile the kernel"
888	help
889	  This option allows for the kernel to be compiled using the latest
890	  ARM ABI (aka EABI).  This is only useful if you are using a user
891	  space environment that is also compiled with EABI.
892
893	  Since there are major incompatibilities between the legacy ABI and
894	  EABI, especially with regard to structure member alignment, this
895	  option also changes the kernel syscall calling convention to
896	  disambiguate both ABIs and allow for backward compatibility support
897	  (selected with CONFIG_OABI_COMPAT).
898
899	  To use this you need GCC version 4.0.0 or later.
900
901config OABI_COMPAT
902	bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
903	depends on AEABI && EXPERIMENTAL
904	default y
905	help
906	  This option preserves the old syscall interface along with the
907	  new (ARM EABI) one. It also provides a compatibility layer to
908	  intercept syscalls that have structure arguments which layout
909	  in memory differs between the legacy ABI and the new ARM EABI
910	  (only for non "thumb" binaries). This option adds a tiny
911	  overhead to all syscalls and produces a slightly larger kernel.
912	  If you know you'll be using only pure EABI user space then you
913	  can say N here. If this option is not selected and you attempt
914	  to execute a legacy ABI binary then the result will be
915	  UNPREDICTABLE (in fact it can be predicted that it won't work
916	  at all). If in doubt say Y.
917
918config ARCH_FLATMEM_HAS_HOLES
919	bool
920	default y
921	depends on FLATMEM
922
923# Discontigmem is deprecated
924config ARCH_DISCONTIGMEM_ENABLE
925	bool
926
927config ARCH_SPARSEMEM_ENABLE
928	bool
929
930config ARCH_SPARSEMEM_DEFAULT
931	def_bool ARCH_SPARSEMEM_ENABLE
932
933config ARCH_SELECT_MEMORY_MODEL
934	def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE
935
936config NODES_SHIFT
937	int
938	default "4" if ARCH_LH7A40X
939	default "2"
940	depends on NEED_MULTIPLE_NODES
941
942source "mm/Kconfig"
943
944config LEDS
945	bool "Timer and CPU usage LEDs"
946	depends on ARCH_CDB89712 || ARCH_EBSA110 || \
947		   ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
948		   ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
949		   ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
950		   ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
951		   ARCH_AT91 || ARCH_DAVINCI || \
952		   ARCH_KS8695 || MACH_RD88F5182
953	help
954	  If you say Y here, the LEDs on your machine will be used
955	  to provide useful information about your current system status.
956
957	  If you are compiling a kernel for a NetWinder or EBSA-285, you will
958	  be able to select which LEDs are active using the options below. If
959	  you are compiling a kernel for the EBSA-110 or the LART however, the
960	  red LED will simply flash regularly to indicate that the system is
961	  still functional. It is safe to say Y here if you have a CATS
962	  system, but the driver will do nothing.
963
964config LEDS_TIMER
965	bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
966			    OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
967			    || MACH_OMAP_PERSEUS2
968	depends on LEDS
969	depends on !GENERIC_CLOCKEVENTS
970	default y if ARCH_EBSA110
971	help
972	  If you say Y here, one of the system LEDs (the green one on the
973	  NetWinder, the amber one on the EBSA285, or the red one on the LART)
974	  will flash regularly to indicate that the system is still
975	  operational. This is mainly useful to kernel hackers who are
976	  debugging unstable kernels.
977
978	  The LART uses the same LED for both Timer LED and CPU usage LED
979	  functions. You may choose to use both, but the Timer LED function
980	  will overrule the CPU usage LED.
981
982config LEDS_CPU
983	bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
984			!ARCH_OMAP) \
985			|| OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
986			|| MACH_OMAP_PERSEUS2
987	depends on LEDS
988	help
989	  If you say Y here, the red LED will be used to give a good real
990	  time indication of CPU usage, by lighting whenever the idle task
991	  is not currently executing.
992
993	  The LART uses the same LED for both Timer LED and CPU usage LED
994	  functions. You may choose to use both, but the Timer LED function
995	  will overrule the CPU usage LED.
996
997config ALIGNMENT_TRAP
998	bool
999	depends on CPU_CP15_MMU
1000	default y if !ARCH_EBSA110
1001	help
1002	  ARM processors cannot fetch/store information which is not
1003	  naturally aligned on the bus, i.e., a 4 byte fetch must start at an
1004	  address divisible by 4. On 32-bit ARM processors, these non-aligned
1005	  fetch/store instructions will be emulated in software if you say
1006	  here, which has a severe performance impact. This is necessary for
1007	  correct operation of some network protocols. With an IP-only
1008	  configuration it is safe to say N, otherwise say Y.
1009
1010endmenu
1011
1012menu "Boot options"
1013
1014# Compressed boot loader in ROM.  Yes, we really want to ask about
1015# TEXT and BSS so we preserve their values in the config files.
1016config ZBOOT_ROM_TEXT
1017	hex "Compressed ROM boot loader base address"
1018	default "0"
1019	help
1020	  The physical address at which the ROM-able zImage is to be
1021	  placed in the target.  Platforms which normally make use of
1022	  ROM-able zImage formats normally set this to a suitable
1023	  value in their defconfig file.
1024
1025	  If ZBOOT_ROM is not enabled, this has no effect.
1026
1027config ZBOOT_ROM_BSS
1028	hex "Compressed ROM boot loader BSS address"
1029	default "0"
1030	help
1031	  The base address of an area of read/write memory in the target
1032	  for the ROM-able zImage which must be available while the
1033	  decompressor is running. It must be large enough to hold the
1034	  entire decompressed kernel plus an additional 128 KiB.
1035	  Platforms which normally make use of ROM-able zImage formats
1036	  normally set this to a suitable value in their defconfig file.
1037
1038	  If ZBOOT_ROM is not enabled, this has no effect.
1039
1040config ZBOOT_ROM
1041	bool "Compressed boot loader in ROM/flash"
1042	depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
1043	help
1044	  Say Y here if you intend to execute your compressed kernel image
1045	  (zImage) directly from ROM or flash.  If unsure, say N.
1046
1047config CMDLINE
1048	string "Default kernel command string"
1049	default ""
1050	help
1051	  On some architectures (EBSA110 and CATS), there is currently no way
1052	  for the boot loader to pass arguments to the kernel. For these
1053	  architectures, you should supply some command-line options at build
1054	  time by entering them here. As a minimum, you should specify the
1055	  memory size and the root device (e.g., mem=64M root=/dev/nfs).
1056
1057config XIP_KERNEL
1058	bool "Kernel Execute-In-Place from ROM"
1059	depends on !ZBOOT_ROM
1060	help
1061	  Execute-In-Place allows the kernel to run from non-volatile storage
1062	  directly addressable by the CPU, such as NOR flash. This saves RAM
1063	  space since the text section of the kernel is not loaded from flash
1064	  to RAM.  Read-write sections, such as the data section and stack,
1065	  are still copied to RAM.  The XIP kernel is not compressed since
1066	  it has to run directly from flash, so it will take more space to
1067	  store it.  The flash address used to link the kernel object files,
1068	  and for storing it, is configuration dependent. Therefore, if you
1069	  say Y here, you must know the proper physical address where to
1070	  store the kernel image depending on your own flash memory usage.
1071
1072	  Also note that the make target becomes "make xipImage" rather than
1073	  "make zImage" or "make Image".  The final kernel binary to put in
1074	  ROM memory will be arch/arm/boot/xipImage.
1075
1076	  If unsure, say N.
1077
1078config XIP_PHYS_ADDR
1079	hex "XIP Kernel Physical Location"
1080	depends on XIP_KERNEL
1081	default "0x00080000"
1082	help
1083	  This is the physical address in your flash memory the kernel will
1084	  be linked for and stored to.  This address is dependent on your
1085	  own flash usage.
1086
1087config KEXEC
1088	bool "Kexec system call (EXPERIMENTAL)"
1089	depends on EXPERIMENTAL
1090	help
1091	  kexec is a system call that implements the ability to shutdown your
1092	  current kernel, and to start another kernel.  It is like a reboot
1093	  but it is independent of the system firmware.   And like a reboot
1094	  you can start any kernel with it, not just Linux.
1095
1096	  It is an ongoing process to be certain the hardware in a machine
1097	  is properly shutdown, so do not be surprised if this code does not
1098	  initially work for you.  It may help to enable device hotplugging
1099	  support.
1100
1101config ATAGS_PROC
1102	bool "Export atags in procfs"
1103	depends on KEXEC
1104	default y
1105	help
1106	  Should the atags used to boot the kernel be exported in an "atags"
1107	  file in procfs. Useful with kexec.
1108
1109endmenu
1110
1111menu "CPU Power Management"
1112
1113if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
1114
1115source "drivers/cpufreq/Kconfig"
1116
1117config CPU_FREQ_SA1100
1118	bool
1119	depends on CPU_FREQ && (SA1100_H3100 || SA1100_H3600 || SA1100_LART || SA1100_PLEB || SA1100_BADGE4 || SA1100_HACKKIT)
1120	default y
1121
1122config CPU_FREQ_SA1110
1123	bool
1124	depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
1125	default y
1126
1127config CPU_FREQ_INTEGRATOR
1128	tristate "CPUfreq driver for ARM Integrator CPUs"
1129	depends on ARCH_INTEGRATOR && CPU_FREQ
1130	default y
1131	help
1132	  This enables the CPUfreq driver for ARM Integrator CPUs.
1133
1134	  For details, take a look at <file:Documentation/cpu-freq>.
1135
1136	  If in doubt, say Y.
1137
1138config CPU_FREQ_IMX
1139	tristate "CPUfreq driver for i.MX CPUs"
1140	depends on ARCH_IMX && CPU_FREQ
1141	default n
1142	help
1143	  This enables the CPUfreq driver for i.MX CPUs.
1144
1145	  If in doubt, say N.
1146
1147config CPU_FREQ_PXA
1148	bool
1149	depends on CPU_FREQ && ARCH_PXA && PXA25x
1150	default y
1151	select CPU_FREQ_DEFAULT_GOV_USERSPACE
1152
1153endif
1154
1155source "drivers/cpuidle/Kconfig"
1156
1157endmenu
1158
1159menu "Floating point emulation"
1160
1161comment "At least one emulation must be selected"
1162
1163config FPE_NWFPE
1164	bool "NWFPE math emulation"
1165	depends on !AEABI || OABI_COMPAT
1166	---help---
1167	  Say Y to include the NWFPE floating point emulator in the kernel.
1168	  This is necessary to run most binaries. Linux does not currently
1169	  support floating point hardware so you need to say Y here even if
1170	  your machine has an FPA or floating point co-processor podule.
1171
1172	  You may say N here if you are going to load the Acorn FPEmulator
1173	  early in the bootup.
1174
1175config FPE_NWFPE_XP
1176	bool "Support extended precision"
1177	depends on FPE_NWFPE
1178	help
1179	  Say Y to include 80-bit support in the kernel floating-point
1180	  emulator.  Otherwise, only 32 and 64-bit support is compiled in.
1181	  Note that gcc does not generate 80-bit operations by default,
1182	  so in most cases this option only enlarges the size of the
1183	  floating point emulator without any good reason.
1184
1185	  You almost surely want to say N here.
1186
1187config FPE_FASTFPE
1188	bool "FastFPE math emulation (EXPERIMENTAL)"
1189	depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
1190	---help---
1191	  Say Y here to include the FAST floating point emulator in the kernel.
1192	  This is an experimental much faster emulator which now also has full
1193	  precision for the mantissa.  It does not support any exceptions.
1194	  It is very simple, and approximately 3-6 times faster than NWFPE.
1195
1196	  It should be sufficient for most programs.  It may be not suitable
1197	  for scientific calculations, but you have to check this for yourself.
1198	  If you do not feel you need a faster FP emulation you should better
1199	  choose NWFPE.
1200
1201config VFP
1202	bool "VFP-format floating point maths"
1203	depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
1204	help
1205	  Say Y to include VFP support code in the kernel. This is needed
1206	  if your hardware includes a VFP unit.
1207
1208	  Please see <file:Documentation/arm/VFP/release-notes.txt> for
1209	  release notes and additional status information.
1210
1211	  Say N if your target does not have VFP hardware.
1212
1213config VFPv3
1214	bool
1215	depends on VFP
1216	default y if CPU_V7
1217
1218config NEON
1219	bool "Advanced SIMD (NEON) Extension support"
1220	depends on VFPv3 && CPU_V7
1221	help
1222	  Say Y to include support code for NEON, the ARMv7 Advanced SIMD
1223	  Extension.
1224
1225endmenu
1226
1227menu "Userspace binary formats"
1228
1229source "fs/Kconfig.binfmt"
1230
1231config ARTHUR
1232	tristate "RISC OS personality"
1233	depends on !AEABI
1234	help
1235	  Say Y here to include the kernel code necessary if you want to run
1236	  Acorn RISC OS/Arthur binaries under Linux. This code is still very
1237	  experimental; if this sounds frightening, say N and sleep in peace.
1238	  You can also say M here to compile this support as a module (which
1239	  will be called arthur).
1240
1241endmenu
1242
1243menu "Power management options"
1244
1245source "kernel/power/Kconfig"
1246
1247config ARCH_SUSPEND_POSSIBLE
1248	def_bool y
1249
1250endmenu
1251
1252source "net/Kconfig"
1253
1254menu "Device Drivers"
1255
1256source "drivers/base/Kconfig"
1257
1258source "drivers/connector/Kconfig"
1259
1260if ALIGNMENT_TRAP || !CPU_CP15_MMU
1261source "drivers/mtd/Kconfig"
1262endif
1263
1264source "drivers/parport/Kconfig"
1265
1266source "drivers/pnp/Kconfig"
1267
1268source "drivers/block/Kconfig"
1269
1270# misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4
1271
1272source "drivers/misc/Kconfig"
1273
1274source "drivers/ide/Kconfig"
1275
1276source "drivers/scsi/Kconfig"
1277
1278source "drivers/ata/Kconfig"
1279
1280source "drivers/md/Kconfig"
1281
1282source "drivers/message/fusion/Kconfig"
1283
1284source "drivers/ieee1394/Kconfig"
1285
1286source "drivers/message/i2o/Kconfig"
1287
1288source "drivers/net/Kconfig"
1289
1290source "drivers/isdn/Kconfig"
1291
1292# input before char - char/joystick depends on it. As does USB.
1293
1294source "drivers/input/Kconfig"
1295
1296source "drivers/char/Kconfig"
1297
1298source "drivers/i2c/Kconfig"
1299
1300source "drivers/spi/Kconfig"
1301
1302source "drivers/gpio/Kconfig"
1303
1304source "drivers/w1/Kconfig"
1305
1306source "drivers/power/Kconfig"
1307
1308source "drivers/hwmon/Kconfig"
1309
1310source "drivers/thermal/Kconfig"
1311
1312source "drivers/watchdog/Kconfig"
1313
1314source "drivers/ssb/Kconfig"
1315
1316#source "drivers/l3/Kconfig"
1317
1318source "drivers/mfd/Kconfig"
1319
1320source "drivers/media/Kconfig"
1321
1322source "drivers/video/Kconfig"
1323
1324source "sound/Kconfig"
1325
1326source "drivers/hid/Kconfig"
1327
1328source "drivers/usb/Kconfig"
1329
1330source "drivers/uwb/Kconfig"
1331
1332source "drivers/mmc/Kconfig"
1333
1334source "drivers/memstick/Kconfig"
1335
1336source "drivers/accessibility/Kconfig"
1337
1338source "drivers/leds/Kconfig"
1339
1340source "drivers/rtc/Kconfig"
1341
1342source "drivers/dma/Kconfig"
1343
1344source "drivers/dca/Kconfig"
1345
1346source "drivers/auxdisplay/Kconfig"
1347
1348source "drivers/regulator/Kconfig"
1349
1350source "drivers/uio/Kconfig"
1351
1352source "drivers/staging/Kconfig"
1353
1354endmenu
1355
1356source "fs/Kconfig"
1357
1358source "arch/arm/Kconfig.debug"
1359
1360source "security/Kconfig"
1361
1362source "crypto/Kconfig"
1363
1364source "lib/Kconfig"
1365