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