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