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