[PATCH] xtensa must set RWSEM_GENERIC_SPINLOCK=y
[linux-3.10.git] / arch / xtensa / Kconfig
1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/config-language.txt.
3
4 mainmenu "Linux/Xtensa Kernel Configuration"
5
6 config FRAME_POINTER
7         bool
8         default n
9
10 config XTENSA
11         bool
12         default y
13         help
14           Xtensa processors are 32-bit RISC machines designed by Tensilica
15           primarily for embedded systems.  These processors are both
16           configurable and extensible.  The Linux port to the Xtensa
17           architecture supports all processor configurations and extensions,
18           with reasonable minimum requirements.  The Xtensa Linux project has
19           a home page at <http://xtensa.sourceforge.net/>.
20
21 config RWSEM_XCHGADD_ALGORITHM
22         bool
23         default y
24
25 config GENERIC_HARDIRQS
26         bool
27         default y
28
29 config RWSEM_GENERIC_SPINLOCK
30        bool
31        default y
32
33 source "init/Kconfig"
34
35 menu "Processor type and features"
36
37 choice
38         prompt "Xtensa Processor Configuration"
39         default XTENSA_CPU_LINUX_BE
40
41 config XTENSA_CPU_LINUX_BE
42         bool "linux_be"
43         ---help---
44           The linux_be processor configuration is the baseline Xtensa
45           configurations included in this kernel and also used by
46           binutils, gcc, and gdb. It contains no TIE, no coprocessors,
47           and the following configuration options:
48
49           Code Density Option                2 Misc Special Registers
50           NSA/NSAU Instructions              128-bit Data Bus Width
51           Processor ID                       8K, 2-way I and D Caches
52           Zero-Overhead Loops                2 Inst Address Break Registers
53           Big Endian                         2 Data Address Break Registers
54           64 General-Purpose Registers       JTAG Interface and Trace Port
55           17 Interrupts                      MMU w/ TLBs and Autorefill
56           3 Interrupt Levels                 8 Autorefill Ways (I/D TLBs)
57           3 Timers                           Unaligned Exceptions
58 endchoice
59
60 config MMU
61         bool
62         default y
63
64 config XTENSA_UNALIGNED_USER
65         bool "Unaligned memory access in use space"
66         ---help---
67            The Xtensa architecture currently does not handle unaligned
68            memory accesses in hardware but through an exception handler.
69            Per default, unaligned memory accesses are disabled in user space.
70
71            Say Y here to enable unaligned memory access in user space.
72
73 config PREEMPT
74         bool "Preemptible Kernel"
75         ---help---
76            This option reduces the latency of the kernel when reacting to
77            real-time or interactive events by allowing a low priority process to
78            be preempted even if it is in kernel mode executing a system call.
79            Unfortunately the kernel code has some race conditions if both
80            CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is
81            currently disabled if you are building an SMP kernel.
82
83            Say Y here if you are building a kernel for a desktop, embedded
84            or real-time system.  Say N if you are unsure.
85
86 config MATH_EMULATION
87         bool "Math emulation"
88         help
89         Can we use information of configuration file?
90
91 config HIGHMEM
92         bool "High memory support"
93
94 endmenu
95
96 menu "Platform options"
97
98 choice
99         prompt "Xtensa System Type"
100         default XTENSA_PLATFORM_ISS
101
102 config XTENSA_PLATFORM_ISS
103         bool "ISS"
104         help
105           ISS is an acronym for Tensilica's Instruction Set Simulator.
106
107 config XTENSA_PLATFORM_XT2000
108         bool "XT2000"
109         help
110           XT2000 is the name of Tensilica's feature-rich emulation platform.
111           This hardware is capable of running a full Linux distribution.
112
113 endchoice
114
115
116 config XTENSA_CALIBRATE_CCOUNT
117         bool "Auto calibration of the CPU clock rate"
118         ---help---
119           On some platforms (XT2000, for example), the CPU clock rate can
120           vary.  The frequency can be determined, however, by measuring
121           against a well known, fixed frequency, such as an UART oscillator.
122
123 config XTENSA_CPU_CLOCK
124         int "CPU clock rate [MHz]"
125         depends on !XTENSA_CALIBRATE_CCOUNT
126         default "16"
127
128 config GENERIC_CALIBRATE_DELAY
129         bool "Auto calibration of the BogoMIPS value"
130         ---help---
131           The BogoMIPS value can easily be derived from the CPU frequency.
132
133 config CMDLINE_BOOL
134         bool "Default bootloader kernel arguments"
135
136 config CMDLINE
137         string "Initial kernel command string"
138         depends on CMDLINE_BOOL
139         default "console=ttyS0,38400 root=/dev/ram"
140         help
141           On some architectures (EBSA110 and CATS), there is currently no way
142           for the boot loader to pass arguments to the kernel. For these
143           architectures, you should supply some command-line options at build
144           time by entering them here. As a minimum, you should specify the
145           memory size and the root device (e.g., mem=64M root=/dev/nfs).
146
147 config SERIAL_CONSOLE
148         bool
149         depends on XTENSA_PLATFORM_ISS
150         default y
151
152 config XTENSA_ISS_NETWORK
153         bool
154         depends on XTENSA_PLATFORM_ISS
155         default y
156
157 source "mm/Kconfig"
158
159 endmenu
160
161 menu "Bus options"
162
163 config PCI
164         bool "PCI support" if !XTENSA_PLATFORM_ISS
165         depends on !XTENSA_PLATFORM_ISS
166         default y
167         help
168           Find out whether you have a PCI motherboard. PCI is the name of a
169           bus system, i.e. the way the CPU talks to the other stuff inside
170           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
171           VESA. If you have PCI, say Y, otherwise N.
172
173           The PCI-HOWTO, available from
174           <http://www.linuxdoc.org/docs.html#howto>, contains valuable
175           information about which PCI hardware does work under Linux and which
176           doesn't
177
178 source "drivers/pci/Kconfig"
179
180 config HOTPLUG
181
182         bool "Support for hot-pluggable devices"
183         ---help---
184         Say Y here if you want to plug devices into your computer while
185         the system is running, and be able to use them quickly.  In many
186         cases, the devices can likewise be unplugged at any time too.
187
188         One well known example of this is PCMCIA- or PC-cards, credit-card
189         size devices such as network cards, modems or hard drives which are
190         plugged into slots found on all modern laptop computers.  Another
191         example, used on modern desktops as well as laptops, is USB.
192
193         Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent
194         software (at <http://linux-hotplug.sourceforge.net/>) and install it.
195         Then your kernel will automatically call out to a user mode "policy
196         agent" (/sbin/hotplug) to load modules and set up software needed
197         to use devices as you hotplug them.
198
199 source "drivers/pcmcia/Kconfig"
200
201 source "drivers/pci/hotplug/Kconfig"
202
203 endmenu
204
205 menu "Exectuable file formats"
206
207 # only elf supported
208 config KCORE_ELF
209         bool
210         depends on PROC_FS
211         default y
212         help
213           If you enabled support for /proc file system then the file
214           /proc/kcore will contain the kernel core image in ELF format. This
215           can be used in gdb:
216
217           $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
218
219           This is especially useful if you have compiled the kernel with the
220           "-g" option to preserve debugging information. It is mainly used
221           for examining kernel data structures on the live kernel.
222
223 source "fs/Kconfig.binfmt"
224
225 endmenu
226
227 source "net/Kconfig"
228
229 source "drivers/Kconfig"
230
231 source "fs/Kconfig"
232
233 menu "Xtensa initrd options"
234         depends on BLK_DEV_INITRD
235
236         config EMBEDDED_RAMDISK
237         bool "Embed root filesystem ramdisk into the kernel"
238
239 config EMBEDDED_RAMDISK_IMAGE
240         string "Filename of gziped ramdisk image"
241         depends on EMBEDDED_RAMDISK
242         default "ramdisk.gz"
243         help
244           This is the filename of the ramdisk image to be built into the
245           kernel.  Relative pathnames are relative to arch/xtensa/boot/ramdisk/.
246           The ramdisk image is not part of the kernel distribution; you must
247           provide one yourself.
248 endmenu
249
250 source "arch/xtensa/Kconfig.debug"
251
252 source "security/Kconfig"
253
254 source "crypto/Kconfig"
255
256 source "lib/Kconfig"
257
258