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