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