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