1config MN10300
2	def_bool y
3	select HAVE_OPROFILE
4	select HAVE_UID16
5	select GENERIC_IRQ_SHOW
6	select ARCH_WANT_IPC_PARSE_VERSION
7	select HAVE_ARCH_TRACEHOOK
8	select HAVE_ARCH_KGDB
9	select GENERIC_ATOMIC64
10	select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
11	select VIRT_TO_BUS
12	select GENERIC_CLOCKEVENTS
13	select MODULES_USE_ELF_RELA
14	select OLD_SIGSUSPEND3
15	select OLD_SIGACTION
16	select HAVE_DEBUG_STACKOVERFLOW
17
18config AM33_2
19	def_bool n
20
21config AM33_3
22	def_bool n
23
24config AM34_2
25	def_bool n
26	select MN10300_HAS_ATOMIC_OPS_UNIT
27	select MN10300_HAS_CACHE_SNOOP
28
29config ERRATUM_NEED_TO_RELOAD_MMUCTR
30	def_bool y if AM33_3 || AM34_2
31
32config MMU
33	def_bool y
34
35config HIGHMEM
36	def_bool n
37
38config NUMA
39	def_bool n
40
41config RWSEM_GENERIC_SPINLOCK
42	def_bool y
43
44config RWSEM_XCHGADD_ALGORITHM
45	bool
46
47config GENERIC_CALIBRATE_DELAY
48	def_bool y
49
50config GENERIC_HWEIGHT
51	def_bool y
52
53config GENERIC_BUG
54	def_bool y
55
56config QUICKLIST
57	def_bool y
58
59config ARCH_HAS_ILOG2_U32
60	def_bool y
61
62config HOTPLUG_CPU
63	def_bool n
64
65source "init/Kconfig"
66
67source "kernel/Kconfig.freezer"
68
69
70menu "Panasonic MN10300 system setup"
71
72choice
73	prompt "Unit type"
74	default MN10300_UNIT_ASB2303
75	help
76	  This option specifies board for which the kernel will be
77	  compiled. It affects the external peripherals catered for.
78
79config MN10300_UNIT_ASB2303
80	bool "ASB2303"
81
82config MN10300_UNIT_ASB2305
83	bool "ASB2305"
84
85config MN10300_UNIT_ASB2364
86	bool "ASB2364"
87	select SMSC911X_ARCH_HOOKS if SMSC911X
88
89endchoice
90
91choice
92	prompt "Processor support"
93	default MN10300_PROC_MN103E010
94	help
95	  This option specifies the processor for which the kernel will be
96	  compiled. It affects the on-chip peripherals catered for.
97
98config MN10300_PROC_MN103E010
99	bool "MN103E010"
100	depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
101	select AM33_2
102	select MN10300_PROC_HAS_TTYSM0
103	select MN10300_PROC_HAS_TTYSM1
104	select MN10300_PROC_HAS_TTYSM2
105
106config MN10300_PROC_MN2WS0050
107	bool "MN2WS0050"
108	depends on MN10300_UNIT_ASB2364
109	select AM34_2
110	select MN10300_PROC_HAS_TTYSM0
111	select MN10300_PROC_HAS_TTYSM1
112	select MN10300_PROC_HAS_TTYSM2
113
114endchoice
115
116config MN10300_HAS_ATOMIC_OPS_UNIT
117	def_bool n
118	help
119	  This should be enabled if the processor has an atomic ops unit
120	  capable of doing LL/SC equivalent operations.
121
122config FPU
123	bool "FPU present"
124	default y
125	depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
126
127config LAZY_SAVE_FPU
128	bool "Save FPU state lazily"
129	default y
130	depends on FPU && !SMP
131	help
132	  Enable this to be lazy in the saving of the FPU state to the owning
133	  task's thread struct.  This is useful if most tasks on the system
134	  don't use the FPU as only those tasks that use it will pass it
135	  between them, and the state needn't be saved for a task that isn't
136	  using it.
137
138	  This can't be so easily used on SMP as the process that owns the FPU
139	  state on a CPU may be currently running on another CPU, so for the
140	  moment, it is disabled.
141
142source "arch/mn10300/mm/Kconfig.cache"
143
144config MN10300_TLB_USE_PIDR
145	def_bool y
146
147menu "Memory layout options"
148
149config KERNEL_RAM_BASE_ADDRESS
150	hex "Base address of kernel RAM"
151	default "0x90000000"
152
153config INTERRUPT_VECTOR_BASE
154	hex "Base address of vector table"
155	default "0x90000000"
156	help
157	  The base address of the vector table will be programmed into
158          the TBR register. It must be on 16MiB address boundary.
159
160config KERNEL_TEXT_ADDRESS
161	hex "Base address of kernel"
162	default "0x90001000"
163
164config KERNEL_ZIMAGE_BASE_ADDRESS
165	hex "Base address of compressed vmlinux image"
166	default "0x50700000"
167
168config BOOT_STACK_OFFSET
169	hex
170	default	"0xF00"	if SMP
171	default	"0xFF0" if !SMP
172
173config BOOT_STACK_SIZE
174	hex
175	depends on SMP
176	default	"0x100"
177endmenu
178
179config SMP
180	bool "Symmetric multi-processing support"
181	default y
182	depends on MN10300_PROC_MN2WS0050
183	---help---
184	  This enables support for systems with more than one CPU. If you have
185	  a system with only one CPU, say N. If you have a system with more
186	  than one CPU, say Y.
187
188	  If you say N here, the kernel will run on uni- and multiprocessor
189	  machines, but will use only one CPU of a multiprocessor machine. If
190	  you say Y here, the kernel will run on many, but not all,
191	  uniprocessor machines. On a uniprocessor machine, the kernel
192	  will run faster if you say N here.
193
194	  See also <file:Documentation/x86/i386/IO-APIC.txt>,
195	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
196	  <http://www.tldp.org/docs.html#howto>.
197
198	  If you don't know what to do here, say N.
199
200config NR_CPUS
201	int
202	depends on SMP
203	default "2"
204
205source "kernel/Kconfig.preempt"
206
207config MN10300_CURRENT_IN_E2
208	bool "Hold current task address in E2 register"
209	depends on !SMP
210	default y
211	help
212	  This option removes the E2/R2 register from the set available to gcc
213	  for normal use and instead uses it to store the address of the
214	  current process's task_struct whilst in the kernel.
215
216	  This means the kernel doesn't need to calculate the address each time
217	  "current" is used (take SP, AND with mask and dereference pointer
218	  just to get the address), and instead can just use E2+offset
219	  addressing each time.
220
221	  This has no effect on userspace.
222
223config MN10300_USING_JTAG
224	bool "Using JTAG to debug kernel"
225	default y
226	help
227	  This options indicates that JTAG will be used to debug the kernel. It
228	  suppresses the use of certain hardware debugging features, such as
229	  single-stepping, which are taken over completely by the JTAG unit.
230
231source "kernel/Kconfig.hz"
232
233config MN10300_RTC
234	bool "Using MN10300 RTC"
235	depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
236	select GENERIC_CMOS_UPDATE
237	default n
238	help
239	  This option enables support for the RTC, thus enabling time to be
240	  tracked, even when system is powered down. This is available on-chip
241	  on the MN103E010.
242
243config MN10300_WD_TIMER
244	bool "Using MN10300 watchdog timer"
245	default y
246	help
247	  This options indicates that the watchdog timer will be used.
248
249config PCI
250	bool "Use PCI"
251	depends on MN10300_UNIT_ASB2305
252	default y
253	select GENERIC_PCI_IOMAP
254	help
255	  Some systems (such as the ASB2305) have PCI onboard. If you have one
256	  of these boards and you wish to use the PCI facilities, say Y here.
257
258	  The PCI-HOWTO, available from
259	  <http://www.tldp.org/docs.html#howto>, contains valuable
260	  information about which PCI hardware does work under Linux and which
261	  doesn't.
262
263source "drivers/pci/Kconfig"
264
265source "drivers/pcmcia/Kconfig"
266
267menu "MN10300 internal serial options"
268
269config MN10300_PROC_HAS_TTYSM0
270	bool
271	default n
272
273config MN10300_PROC_HAS_TTYSM1
274	bool
275	default n
276
277config MN10300_PROC_HAS_TTYSM2
278	bool
279	default n
280
281config MN10300_TTYSM
282	bool "Support for ttySM serial ports"
283	depends on MN10300
284	default y
285	select SERIAL_CORE
286	help
287	  This option enables support for the on-chip serial ports that the
288	  MN10300 has available.
289
290config MN10300_TTYSM_CONSOLE
291	bool "Support for console on ttySM serial ports"
292	depends on MN10300_TTYSM
293	select SERIAL_CORE_CONSOLE
294	help
295	  This option enables support for a console on the on-chip serial ports
296	  that the MN10300 has available.
297
298#
299# /dev/ttySM0
300#
301config MN10300_TTYSM0
302	bool "Enable SIF0 (/dev/ttySM0)"
303	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
304	help
305	  Enable access to SIF0 through /dev/ttySM0 or gdb-stub
306
307choice
308	prompt "Select the timer to supply the clock for SIF0"
309	default MN10300_TTYSM0_TIMER8
310	depends on MN10300_TTYSM0
311
312config MN10300_TTYSM0_TIMER8
313	bool "Use timer 8 (16-bit)"
314
315config MN10300_TTYSM0_TIMER2
316	bool "Use timer 2 (8-bit)"
317
318endchoice
319
320#
321# /dev/ttySM1
322#
323config MN10300_TTYSM1
324	bool "Enable SIF1 (/dev/ttySM1)"
325	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
326	help
327	  Enable access to SIF1 through /dev/ttySM1 or gdb-stub
328
329choice
330	prompt "Select the timer to supply the clock for SIF1"
331	default MN10300_TTYSM1_TIMER12 \
332		if !(AM33_2 || AM33_3)
333	default MN10300_TTYSM1_TIMER9 \
334		if AM33_2 || AM33_3
335	depends on MN10300_TTYSM1
336
337config MN10300_TTYSM1_TIMER12
338	bool "Use timer 12 (16-bit)"
339	depends on !(AM33_2 || AM33_3)
340
341config MN10300_TTYSM1_TIMER9
342	bool "Use timer 9 (16-bit)"
343	depends on AM33_2 || AM33_3
344
345config MN10300_TTYSM1_TIMER3
346	bool "Use timer 3 (8-bit)"
347	depends on AM33_2 || AM33_3
348
349endchoice
350
351#
352# /dev/ttySM2
353#
354config MN10300_TTYSM2
355	bool "Enable SIF2 (/dev/ttySM2)"
356	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
357	help
358	  Enable access to SIF2 through /dev/ttySM2 or gdb-stub
359
360choice
361	prompt "Select the timer to supply the clock for SIF2"
362	default MN10300_TTYSM2_TIMER3 \
363		if !(AM33_2 || AM33_3)
364	default MN10300_TTYSM2_TIMER10 \
365		if AM33_2 || AM33_3
366	depends on MN10300_TTYSM2
367
368config MN10300_TTYSM2_TIMER9
369	bool "Use timer 9 (16-bit)"
370	depends on !(AM33_2 || AM33_3)
371
372config MN10300_TTYSM2_TIMER1
373	bool "Use timer 1 (8-bit)"
374	depends on !(AM33_2 || AM33_3)
375
376config MN10300_TTYSM2_TIMER3
377	bool "Use timer 3 (8-bit)"
378	depends on !(AM33_2 || AM33_3)
379
380config MN10300_TTYSM2_TIMER10
381	bool "Use timer 10 (16-bit)"
382	depends on AM33_2 || AM33_3
383
384endchoice
385
386config MN10300_TTYSM2_CTS
387	bool "Enable the use of the CTS line /dev/ttySM2"
388	depends on MN10300_TTYSM2 && AM33_2
389
390endmenu
391
392menu "Interrupt request priority options"
393
394comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
395
396comment "____Non-maskable interrupt levels____"
397comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
398
399config DEBUGGER_IRQ_LEVEL
400	int "DEBUGGER interrupt priority"
401	depends on KERNEL_DEBUGGER
402	range 0 1 if LINUX_CLI_LEVEL = 2
403	range 0 2 if LINUX_CLI_LEVEL = 3
404	range 0 3 if LINUX_CLI_LEVEL = 4
405	range 0 4 if LINUX_CLI_LEVEL = 5
406	range 0 5 if LINUX_CLI_LEVEL = 6
407	default 0
408
409comment "The following must be set to a higher priority than local_irq_disable()"
410
411config MN10300_SERIAL_IRQ_LEVEL
412	int "MN10300 on-chip serial interrupt priority"
413	depends on MN10300_TTYSM
414	range 1 1 if LINUX_CLI_LEVEL = 2
415	range 1 2 if LINUX_CLI_LEVEL = 3
416	range 1 3 if LINUX_CLI_LEVEL = 4
417	range 1 4 if LINUX_CLI_LEVEL = 5
418	range 1 5 if LINUX_CLI_LEVEL = 6
419	default 1
420
421comment "-"
422comment "____Maskable interrupt levels____"
423
424config LINUX_CLI_LEVEL
425	int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
426	range 2 6
427	default 2
428	help
429	  local_irq_disable() doesn't actually disable maskable interrupts -
430	  what it does is restrict the levels of interrupt which are permitted
431	  (a lower level indicates a higher priority) by lowering the value in
432	  EPSW.IM from 7.  Any interrupt is permitted for which the level is
433	  lower than EPSW.IM.
434
435	  Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
436	  serial DMA interrupts are allowed to interrupt normal disabled
437	  sections.
438
439comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
440
441config TIMER_IRQ_LEVEL
442	int "Kernel timer interrupt priority"
443	range LINUX_CLI_LEVEL 6
444	default 4
445
446config PCI_IRQ_LEVEL
447	int "PCI interrupt priority"
448	depends on PCI
449	range LINUX_CLI_LEVEL 6
450	default 5
451
452config ETHERNET_IRQ_LEVEL
453	int "Ethernet interrupt priority"
454	depends on SMC91X || SMC911X || SMSC911X
455	range LINUX_CLI_LEVEL 6
456	default 6
457
458config EXT_SERIAL_IRQ_LEVEL
459	int "External serial port interrupt priority"
460	depends on SERIAL_8250
461	range LINUX_CLI_LEVEL 6
462	default 6
463
464endmenu
465
466source "mm/Kconfig"
467
468menu "Power management options"
469source kernel/power/Kconfig
470endmenu
471
472endmenu
473
474
475menu "Executable formats"
476
477source "fs/Kconfig.binfmt"
478
479endmenu
480
481source "net/Kconfig"
482
483source "drivers/Kconfig"
484
485source "fs/Kconfig"
486
487source "arch/mn10300/Kconfig.debug"
488
489source "security/Kconfig"
490
491source "crypto/Kconfig"
492
493source "lib/Kconfig"
494