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