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