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