m32r: fix switch_to macro to push/pop frame pointer if needed
[linux-2.6.git] / arch / m32r / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux/M32R Kernel Configuration"
7
8 config M32R
9         bool
10         default y
11
12 config SBUS
13         bool
14
15 config GENERIC_ISA_DMA
16         bool
17         default y
18
19 config ZONE_DMA
20         bool
21         default y
22
23 config GENERIC_HARDIRQS
24         bool
25         default y
26
27 config GENERIC_IRQ_PROBE
28         bool
29         default y
30
31 config NO_IOPORT
32         def_bool y
33
34 source "init/Kconfig"
35
36
37 menu "Processor type and features"
38
39 choice
40         prompt "Platform Type"
41         default PLAT_MAPPI
42
43 config PLAT_MAPPI
44         bool "Mappi-I"
45         help
46           The Mappi-I is an FPGA board for SOC (System-On-a-Chip) prototyping.
47           You can operate a Linux system on this board by using an M32R
48           softmacro core, which is a fully-synthesizable functional model
49           described in Verilog-HDL.
50
51           The Mappi-I board was the first platform, which had been used
52           to port and develop a Linux system for the M32R processor.
53           Currently, the Mappi-II, an heir to the Mappi-I, is available.
54
55 config PLAT_USRV
56         bool "uServer"
57
58 config PLAT_M32700UT
59         bool "M32700UT"
60         help
61           The M3T-M32700UT is an evaluation board based on uT-Engine
62           specification.  This board has an M32700 (Chaos) evaluation chip.
63           You can say Y for SMP, because the M32700 is a single chip
64           multiprocessor.
65
66 config PLAT_OPSPUT
67         bool "OPSPUT"
68         help
69           The OPSPUT is an evaluation board based on uT-Engine
70           specification.  This board has a OPSP-REP chip.
71
72 config PLAT_OAKS32R
73         bool "OAKS32R"
74         help
75           The OAKS32R is a tiny, inexpensive evaluation board.
76           Please note that if you say Y here and choose chip "M32102",
77           say N for MMU and select a no-MMU version kernel, otherwise
78           a kernel with MMU support will not work, because the M32102
79           is a microcontroller for embedded systems and it has no MMU.
80
81 config PLAT_MAPPI2
82        bool "Mappi-II(M3A-ZA36/M3A-ZA52)"
83
84 config PLAT_MAPPI3
85        bool "Mappi-III(M3A-2170)"
86
87 config PLAT_M32104UT
88         bool "M32104UT"
89         help
90           The M3T-M32104UT is an reference board based on uT-Engine
91           specification.  This board has a M32104 chip.
92
93 endchoice
94
95 choice
96         prompt "Processor family"
97         default CHIP_M32700
98
99 config CHIP_M32700
100         bool "M32700 (Chaos)"
101
102 config CHIP_M32102
103         bool "M32102"
104
105 config CHIP_M32104
106         bool "M32104"
107         depends on PLAT_M32104UT
108
109 config CHIP_VDEC2
110        bool "VDEC2"
111
112 config CHIP_OPSP
113        bool "OPSP"
114
115 endchoice
116
117 config MMU
118         bool "Support for memory management hardware"
119         depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP
120         default y
121
122 config TLB_ENTRIES
123        int "TLB Entries"
124        depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP
125        default 32 if CHIP_M32700 || CHIP_OPSP
126        default 16 if CHIP_VDEC2
127
128
129 config ISA_M32R
130         bool
131         depends on CHIP_M32102 || CHIP_M32104
132         default y
133
134 config ISA_M32R2
135         bool
136         depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP
137         default y
138
139 config ISA_DSP_LEVEL2
140         bool
141         depends on CHIP_M32700 || CHIP_OPSP
142         default y
143
144 config ISA_DUAL_ISSUE
145         bool
146         depends on CHIP_M32700 || CHIP_OPSP
147         default y
148
149 config BUS_CLOCK
150         int "Bus Clock [Hz] (integer)"
151         default "70000000" if PLAT_MAPPI
152         default "25000000" if PLAT_USRV
153         default "50000000" if PLAT_MAPPI3
154         default "50000000" if PLAT_M32700UT
155         default "50000000" if PLAT_OPSPUT
156         default "54000000" if PLAT_M32104UT
157         default "33333333" if PLAT_OAKS32R
158         default "20000000" if PLAT_MAPPI2
159
160 config TIMER_DIVIDE
161         int "Timer divider (integer)"
162         default "128"
163
164 config CPU_LITTLE_ENDIAN
165         bool "Generate little endian code"
166         default n
167
168 config MEMORY_START
169         hex "Physical memory start address (hex)"
170         default "08000000" if PLAT_MAPPI || PLAT_MAPPI2 || PLAT_MAPPI3
171         default "08000000" if PLAT_USRV
172         default "08000000" if PLAT_M32700UT
173         default "08000000" if PLAT_OPSPUT
174         default "04000000" if PLAT_M32104UT
175         default "01000000" if PLAT_OAKS32R
176
177 config MEMORY_SIZE
178         hex "Physical memory size (hex)"
179         default "08000000" if PLAT_MAPPI3
180         default "04000000" if PLAT_MAPPI || PLAT_MAPPI2
181         default "02000000" if PLAT_USRV
182         default "01000000" if PLAT_M32700UT
183         default "01000000" if PLAT_OPSPUT
184         default "01000000" if PLAT_M32104UT
185         default "00800000" if PLAT_OAKS32R
186
187 config NOHIGHMEM
188         bool
189         default y
190
191 config ARCH_DISCONTIGMEM_ENABLE
192         bool "Internal RAM Support"
193         depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104
194         default y
195
196 source "mm/Kconfig"
197
198 config IRAM_START
199         hex "Internal memory start address (hex)"
200         default "00f00000" if !CHIP_M32104
201         default "00700000" if CHIP_M32104
202         depends on (CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104) && DISCONTIGMEM
203
204 config IRAM_SIZE
205         hex "Internal memory size (hex)"
206         depends on (CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104) && DISCONTIGMEM
207         default "00080000" if CHIP_M32700
208         default "00010000" if CHIP_M32102 || CHIP_OPSP || CHIP_M32104
209         default "00008000" if CHIP_VDEC2
210
211 #
212 # Define implied options from the CPU selection here
213 #
214
215 config RWSEM_GENERIC_SPINLOCK
216         bool
217         depends on M32R
218         default y
219
220 config RWSEM_XCHGADD_ALGORITHM
221         bool
222         default n
223
224 config ARCH_HAS_ILOG2_U32
225         bool
226         default n
227
228 config ARCH_HAS_ILOG2_U64
229         bool
230         default n
231
232 config GENERIC_FIND_NEXT_BIT
233         bool
234         default y
235
236 config GENERIC_HWEIGHT
237         bool
238         default y
239
240 config GENERIC_CALIBRATE_DELAY
241         bool
242         default y
243
244 config SCHED_NO_NO_OMIT_FRAME_POINTER
245         bool
246         default y
247
248 config PREEMPT
249         bool "Preemptible Kernel"
250         help
251           This option reduces the latency of the kernel when reacting to
252           real-time or interactive events by allowing a low priority process to
253           be preempted even if it is in kernel mode executing a system call.
254           This allows applications to run more reliably even when the system is
255           under load.
256
257           Say Y here if you are building a kernel for a desktop, embedded
258           or real-time system.  Say N if you are unsure.
259
260 config SMP
261         bool "Symmetric multi-processing support"
262         ---help---
263           This enables support for systems with more than one CPU. If you have
264           a system with only one CPU, like most personal computers, say N. If
265           you have a system with more than one CPU, say Y.
266
267           If you say N here, the kernel will run on single and multiprocessor
268           machines, but will use only one CPU of a multiprocessor machine. If
269           you say Y here, the kernel will run on many, but not all,
270           singleprocessor machines. On a singleprocessor machine, the kernel
271           will run faster if you say N here.
272
273           People using multiprocessor machines who say Y here should also say
274           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
275           Management" code will be disabled if you say Y here.
276
277           See also the <file:Documentation/smp.txt>,
278           and the SMP-HOWTO available at
279           <http://www.linuxdoc.org/docs.html#howto>.
280
281           If you don't know what to do here, say N.
282
283 config CHIP_M32700_TS1
284         bool "Workaround code for the M32700 TS1 chip's bug"
285         depends on (CHIP_M32700 && SMP)
286         default n
287
288 config NR_CPUS
289         int "Maximum number of CPUs (2-32)"
290         range 2 32
291         depends on SMP
292         default "2"
293         help
294           This allows you to specify the maximum number of CPUs which this
295           kernel will support.  The maximum supported value is 32 and the
296           minimum value which makes sense is 2.
297
298           This is purely to save memory - each supported CPU adds
299           approximately eight kilobytes to the kernel image.
300
301 # Common NUMA Features
302 config NUMA
303         bool "Numa Memory Allocation Support"
304         depends on SMP && BROKEN
305         default n
306
307 config NODES_SHIFT
308         int
309         default "1"
310         depends on NEED_MULTIPLE_NODES
311
312 # turning this on wastes a bunch of space.
313 # Summit needs it only when NUMA is on
314 config BOOT_IOREMAP
315         bool
316         depends on NUMA
317         default n
318
319 endmenu
320
321
322 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
323
324 config PCI
325         bool "PCI support"
326         depends on BROKEN
327         default n
328         help
329           Find out whether you have a PCI motherboard. PCI is the name of a
330           bus system, i.e. the way the CPU talks to the other stuff inside
331           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
332           VESA. If you have PCI, say Y, otherwise N.
333
334           The PCI-HOWTO, available from
335           <http://www.linuxdoc.org/docs.html#howto>, contains valuable
336           information about which PCI hardware does work under Linux and which
337           doesn't.
338
339 choice
340         prompt "PCI access mode"
341         depends on PCI
342         default PCI_GOANY
343
344 config PCI_GOBIOS
345         bool "BIOS"
346         ---help---
347           On PCI systems, the BIOS can be used to detect the PCI devices and
348           determine their configuration. However, some old PCI motherboards
349           have BIOS bugs and may crash if this is done. Also, some embedded
350           PCI-based systems don't have any BIOS at all. Linux can also try to
351           detect the PCI hardware directly without using the BIOS.
352
353           With this option, you can specify how Linux should detect the PCI
354           devices. If you choose "BIOS", the BIOS will be used, if you choose
355           "Direct", the BIOS won't be used, and if you choose "Any", the
356           kernel will try the direct access method and falls back to the BIOS
357           if that doesn't work. If unsure, go with the default, which is
358           "Any".
359
360 config PCI_GODIRECT
361         bool "Direct"
362
363 config PCI_GOANY
364         bool "Any"
365
366 endchoice
367
368 config PCI_BIOS
369         bool
370         depends on PCI && (PCI_GOBIOS || PCI_GOANY)
371         default y
372
373 config PCI_DIRECT
374         bool
375         depends on PCI && (PCI_GODIRECT || PCI_GOANY)
376         default y
377
378 source "drivers/pci/Kconfig"
379
380 config ISA
381         bool "ISA support"
382         help
383           Find out whether you have ISA slots on your motherboard.  ISA is the
384           name of a bus system, i.e. the way the CPU talks to the other stuff
385           inside your box.  If you have ISA, say Y, otherwise N.
386
387 source "drivers/pcmcia/Kconfig"
388
389 source "drivers/pci/hotplug/Kconfig"
390
391 endmenu
392
393
394 menu "Executable file formats"
395
396 source "fs/Kconfig.binfmt"
397
398 endmenu
399
400 source "net/Kconfig"
401
402 source "drivers/Kconfig"
403
404 source "fs/Kconfig"
405
406 source "arch/m32r/oprofile/Kconfig"
407
408 source "arch/m32r/Kconfig.debug"
409
410 source "security/Kconfig"
411
412 source "crypto/Kconfig"
413
414 source "lib/Kconfig"