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