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