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