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