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