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