blob: e9d8d60bd28b4711ce2be03fd257e74ff4b71f18 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
David Howellsb920de12008-02-08 04:19:31 -08002config MN10300
3 def_bool y
Jiri Slaby5f56a5d2016-05-20 17:00:16 -07004 select HAVE_EXIT_THREAD
David Howells58bafe72009-02-20 15:38:38 -08005 select HAVE_OPROFILE
Guenter Roeckc86576e2015-11-28 08:52:04 -08006 select HAVE_UID16
Thomas Gleixner2a8f55b2011-03-24 18:54:24 +01007 select GENERIC_IRQ_SHOW
Will Deaconc1d7e012012-07-30 14:42:46 -07008 select ARCH_WANT_IPC_PARSE_VERSION
David Howellse460d642011-03-18 16:54:31 +00009 select HAVE_ARCH_TRACEHOOK
10 select HAVE_ARCH_KGDB
Andrew Mortonfef6c122013-01-11 14:31:54 -080011 select GENERIC_ATOMIC64
Cong Wangd314d742012-03-23 15:01:51 -070012 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
Stephen Rothwell4febd952013-03-07 15:48:16 +110013 select VIRT_TO_BUS
Anna-Maria Gleixnerea533202012-05-18 16:45:50 +000014 select GENERIC_CLOCKEVENTS
David Howells786d35d2012-09-28 14:31:03 +093015 select MODULES_USE_ELF_RELA
Al Viro7d1d9902012-12-25 16:24:21 -050016 select OLD_SIGSUSPEND3
Al Viro33f9f782012-12-25 19:28:15 -050017 select OLD_SIGACTION
Dave Hansend1a1dc02013-07-01 13:04:42 -070018 select HAVE_DEBUG_STACKOVERFLOW
Christoph Hellwigf1513412016-01-20 15:01:50 -080019 select ARCH_NO_COHERENT_DMA_MMAP
David Howellsb920de12008-02-08 04:19:31 -080020
Akira Takeuchi22d42252010-10-27 17:28:38 +010021config AM33_2
22 def_bool n
23
24config AM33_3
25 def_bool n
26
27config AM34_2
28 def_bool n
Akira Takeuchi8fbbf7c2010-10-27 17:28:40 +010029 select MN10300_HAS_ATOMIC_OPS_UNIT
David Howellsb4784912010-10-27 17:28:46 +010030 select MN10300_HAS_CACHE_SNOOP
David Howellsb920de12008-02-08 04:19:31 -080031
Akira Takeuchi8f19e3d2010-10-27 17:28:48 +010032config ERRATUM_NEED_TO_RELOAD_MMUCTR
33 def_bool y if AM33_3 || AM34_2
34
David Howellsb920de12008-02-08 04:19:31 -080035config MMU
36 def_bool y
37
38config HIGHMEM
39 def_bool n
40
41config NUMA
42 def_bool n
43
David Howellsb920de12008-02-08 04:19:31 -080044config RWSEM_GENERIC_SPINLOCK
45 def_bool y
46
47config RWSEM_XCHGADD_ALGORITHM
48 bool
49
David Howellsb920de12008-02-08 04:19:31 -080050config GENERIC_CALIBRATE_DELAY
51 def_bool y
52
David Howellsb920de12008-02-08 04:19:31 -080053config GENERIC_HWEIGHT
54 def_bool y
55
David Howellsb920de12008-02-08 04:19:31 -080056config GENERIC_BUG
57 def_bool y
Andrew Morton8b9e6d52016-03-17 14:21:06 -070058 depends on BUG
David Howellsb920de12008-02-08 04:19:31 -080059
60config QUICKLIST
61 def_bool y
62
63config ARCH_HAS_ILOG2_U32
64 def_bool y
65
David Howellsb920de12008-02-08 04:19:31 -080066config HOTPLUG_CPU
67 def_bool n
68
David Howellsb920de12008-02-08 04:19:31 -080069source "init/Kconfig"
70
Matt Helsleydc52ddc2008-10-18 20:27:21 -070071source "kernel/Kconfig.freezer"
72
David Howellsb920de12008-02-08 04:19:31 -080073
Akira Takeuchia5e03ca2010-10-27 17:29:00 +010074menu "Panasonic MN10300 system setup"
David Howellsb920de12008-02-08 04:19:31 -080075
76choice
77 prompt "Unit type"
78 default MN10300_UNIT_ASB2303
79 help
80 This option specifies board for which the kernel will be
81 compiled. It affects the external peripherals catered for.
82
83config MN10300_UNIT_ASB2303
84 bool "ASB2303"
85
86config MN10300_UNIT_ASB2305
87 bool "ASB2305"
88
Akira Takeuchi368dd5a2010-10-27 17:28:55 +010089config MN10300_UNIT_ASB2364
90 bool "ASB2364"
Akira Takeuchi62747cd2010-10-27 17:28:58 +010091 select SMSC911X_ARCH_HOOKS if SMSC911X
Akira Takeuchi368dd5a2010-10-27 17:28:55 +010092
David Howellsb920de12008-02-08 04:19:31 -080093endchoice
94
95choice
96 prompt "Processor support"
97 default MN10300_PROC_MN103E010
98 help
99 This option specifies the processor for which the kernel will be
100 compiled. It affects the on-chip peripherals catered for.
101
102config MN10300_PROC_MN103E010
103 bool "MN103E010"
104 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
Akira Takeuchi22d42252010-10-27 17:28:38 +0100105 select AM33_2
David Howellsb920de12008-02-08 04:19:31 -0800106 select MN10300_PROC_HAS_TTYSM0
107 select MN10300_PROC_HAS_TTYSM1
108 select MN10300_PROC_HAS_TTYSM2
109
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100110config MN10300_PROC_MN2WS0050
111 bool "MN2WS0050"
112 depends on MN10300_UNIT_ASB2364
113 select AM34_2
114 select MN10300_PROC_HAS_TTYSM0
115 select MN10300_PROC_HAS_TTYSM1
116 select MN10300_PROC_HAS_TTYSM2
David Howellsb920de12008-02-08 04:19:31 -0800117
118endchoice
119
Akira Takeuchi8fbbf7c2010-10-27 17:28:40 +0100120config MN10300_HAS_ATOMIC_OPS_UNIT
121 def_bool n
122 help
123 This should be enabled if the processor has an atomic ops unit
124 capable of doing LL/SC equivalent operations.
125
David Howellsb920de12008-02-08 04:19:31 -0800126config FPU
127 bool "FPU present"
128 default y
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100129 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
David Howellsb920de12008-02-08 04:19:31 -0800130
Akira Takeuchi278d91c2010-10-27 17:28:52 +0100131config LAZY_SAVE_FPU
132 bool "Save FPU state lazily"
133 default y
134 depends on FPU && !SMP
135 help
136 Enable this to be lazy in the saving of the FPU state to the owning
137 task's thread struct. This is useful if most tasks on the system
138 don't use the FPU as only those tasks that use it will pass it
139 between them, and the state needn't be saved for a task that isn't
140 using it.
141
142 This can't be so easily used on SMP as the process that owns the FPU
143 state on a CPU may be currently running on another CPU, so for the
144 moment, it is disabled.
145
David Howells0bc42d72010-10-27 17:28:41 +0100146source "arch/mn10300/mm/Kconfig.cache"
David Howellsb920de12008-02-08 04:19:31 -0800147
Akira Takeuchia9bc60e2010-10-27 17:28:49 +0100148config MN10300_TLB_USE_PIDR
149 def_bool y
150
David Howellsb920de12008-02-08 04:19:31 -0800151menu "Memory layout options"
152
153config KERNEL_RAM_BASE_ADDRESS
154 hex "Base address of kernel RAM"
155 default "0x90000000"
156
157config INTERRUPT_VECTOR_BASE
158 hex "Base address of vector table"
159 default "0x90000000"
160 help
161 The base address of the vector table will be programmed into
162 the TBR register. It must be on 16MiB address boundary.
163
164config KERNEL_TEXT_ADDRESS
165 hex "Base address of kernel"
166 default "0x90001000"
167
168config KERNEL_ZIMAGE_BASE_ADDRESS
169 hex "Base address of compressed vmlinux image"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100170 default "0x50700000"
David Howellsb920de12008-02-08 04:19:31 -0800171
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100172config BOOT_STACK_OFFSET
173 hex
174 default "0xF00" if SMP
175 default "0xFF0" if !SMP
176
177config BOOT_STACK_SIZE
178 hex
179 depends on SMP
180 default "0x100"
David Howellsb920de12008-02-08 04:19:31 -0800181endmenu
182
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100183config SMP
184 bool "Symmetric multi-processing support"
185 default y
Richard Weinberger7bb38d52014-09-26 11:15:18 +0200186 depends on MN10300_PROC_MN2WS0050
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100187 ---help---
188 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -0800189 a system with only one CPU, say N. If you have a system with more
190 than one CPU, say Y.
David Howellsb920de12008-02-08 04:19:31 -0800191
Robert Graffham4a474152014-01-23 15:55:29 -0800192 If you say N here, the kernel will run on uni- and multiprocessor
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100193 machines, but will use only one CPU of a multiprocessor machine. If
194 you say Y here, the kernel will run on many, but not all,
Robert Graffham4a474152014-01-23 15:55:29 -0800195 uniprocessor machines. On a uniprocessor machine, the kernel
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100196 will run faster if you say N here.
197
Paul Bolle395cf962011-08-15 02:02:26 +0200198 See also <file:Documentation/x86/i386/IO-APIC.txt>,
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100199 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
200 <http://www.tldp.org/docs.html#howto>.
201
202 If you don't know what to do here, say N.
203
204config NR_CPUS
205 int
206 depends on SMP
207 default "2"
208
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100209source "kernel/Kconfig.preempt"
David Howellsb920de12008-02-08 04:19:31 -0800210
David Howellsb920de12008-02-08 04:19:31 -0800211config MN10300_CURRENT_IN_E2
212 bool "Hold current task address in E2 register"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100213 depends on !SMP
David Howellsb920de12008-02-08 04:19:31 -0800214 default y
215 help
216 This option removes the E2/R2 register from the set available to gcc
217 for normal use and instead uses it to store the address of the
218 current process's task_struct whilst in the kernel.
219
220 This means the kernel doesn't need to calculate the address each time
221 "current" is used (take SP, AND with mask and dereference pointer
222 just to get the address), and instead can just use E2+offset
223 addressing each time.
224
225 This has no effect on userspace.
226
227config MN10300_USING_JTAG
228 bool "Using JTAG to debug kernel"
229 default y
230 help
231 This options indicates that JTAG will be used to debug the kernel. It
232 suppresses the use of certain hardware debugging features, such as
233 single-stepping, which are taken over completely by the JTAG unit.
234
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100235source "kernel/Kconfig.hz"
236
David Howellsb920de12008-02-08 04:19:31 -0800237config MN10300_RTC
238 bool "Using MN10300 RTC"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100239 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
Arnd Bergmann5ee98ab2016-06-01 16:46:22 +0200240 select RTC_CLASS
241 select RTC_DRV_CMOS
242 select RTC_SYSTOHC
David Howellsb920de12008-02-08 04:19:31 -0800243 default n
244 help
David Howellsb920de12008-02-08 04:19:31 -0800245 This option enables support for the RTC, thus enabling time to be
246 tracked, even when system is powered down. This is available on-chip
247 on the MN103E010.
248
249config MN10300_WD_TIMER
250 bool "Using MN10300 watchdog timer"
251 default y
252 help
253 This options indicates that the watchdog timer will be used.
254
255config PCI
256 bool "Use PCI"
257 depends on MN10300_UNIT_ASB2305
258 default y
Michael S. Tsirkin34f1bde2011-12-01 12:41:36 +0200259 select GENERIC_PCI_IOMAP
David Howellsb920de12008-02-08 04:19:31 -0800260 help
261 Some systems (such as the ASB2305) have PCI onboard. If you have one
262 of these boards and you wish to use the PCI facilities, say Y here.
263
264 The PCI-HOWTO, available from
265 <http://www.tldp.org/docs.html#howto>, contains valuable
266 information about which PCI hardware does work under Linux and which
267 doesn't.
268
269source "drivers/pci/Kconfig"
270
271source "drivers/pcmcia/Kconfig"
272
273menu "MN10300 internal serial options"
274
275config MN10300_PROC_HAS_TTYSM0
276 bool
277 default n
278
279config MN10300_PROC_HAS_TTYSM1
280 bool
281 default n
282
283config MN10300_PROC_HAS_TTYSM2
284 bool
285 default n
286
287config MN10300_TTYSM
288 bool "Support for ttySM serial ports"
289 depends on MN10300
290 default y
291 select SERIAL_CORE
292 help
293 This option enables support for the on-chip serial ports that the
294 MN10300 has available.
295
296config MN10300_TTYSM_CONSOLE
297 bool "Support for console on ttySM serial ports"
298 depends on MN10300_TTYSM
299 select SERIAL_CORE_CONSOLE
300 help
301 This option enables support for a console on the on-chip serial ports
302 that the MN10300 has available.
303
304#
305# /dev/ttySM0
306#
307config MN10300_TTYSM0
308 bool "Enable SIF0 (/dev/ttySM0)"
309 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
310 help
311 Enable access to SIF0 through /dev/ttySM0 or gdb-stub
312
313choice
314 prompt "Select the timer to supply the clock for SIF0"
315 default MN10300_TTYSM0_TIMER8
316 depends on MN10300_TTYSM0
317
318config MN10300_TTYSM0_TIMER8
319 bool "Use timer 8 (16-bit)"
320
321config MN10300_TTYSM0_TIMER2
322 bool "Use timer 2 (8-bit)"
323
324endchoice
325
326#
327# /dev/ttySM1
328#
329config MN10300_TTYSM1
330 bool "Enable SIF1 (/dev/ttySM1)"
331 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
332 help
333 Enable access to SIF1 through /dev/ttySM1 or gdb-stub
334
335choice
336 prompt "Select the timer to supply the clock for SIF1"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100337 default MN10300_TTYSM1_TIMER12 \
338 if !(AM33_2 || AM33_3)
339 default MN10300_TTYSM1_TIMER9 \
340 if AM33_2 || AM33_3
David Howellsb920de12008-02-08 04:19:31 -0800341 depends on MN10300_TTYSM1
342
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100343config MN10300_TTYSM1_TIMER12
344 bool "Use timer 12 (16-bit)"
345 depends on !(AM33_2 || AM33_3)
346
David Howellsb920de12008-02-08 04:19:31 -0800347config MN10300_TTYSM1_TIMER9
348 bool "Use timer 9 (16-bit)"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100349 depends on AM33_2 || AM33_3
David Howellsb920de12008-02-08 04:19:31 -0800350
351config MN10300_TTYSM1_TIMER3
352 bool "Use timer 3 (8-bit)"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100353 depends on AM33_2 || AM33_3
David Howellsb920de12008-02-08 04:19:31 -0800354
355endchoice
356
357#
358# /dev/ttySM2
359#
360config MN10300_TTYSM2
361 bool "Enable SIF2 (/dev/ttySM2)"
362 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
363 help
364 Enable access to SIF2 through /dev/ttySM2 or gdb-stub
365
366choice
367 prompt "Select the timer to supply the clock for SIF2"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100368 default MN10300_TTYSM2_TIMER3 \
369 if !(AM33_2 || AM33_3)
370 default MN10300_TTYSM2_TIMER10 \
371 if AM33_2 || AM33_3
David Howellsb920de12008-02-08 04:19:31 -0800372 depends on MN10300_TTYSM2
373
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100374config MN10300_TTYSM2_TIMER9
375 bool "Use timer 9 (16-bit)"
376 depends on !(AM33_2 || AM33_3)
377
378config MN10300_TTYSM2_TIMER1
379 bool "Use timer 1 (8-bit)"
380 depends on !(AM33_2 || AM33_3)
381
382config MN10300_TTYSM2_TIMER3
383 bool "Use timer 3 (8-bit)"
384 depends on !(AM33_2 || AM33_3)
385
David Howellsb920de12008-02-08 04:19:31 -0800386config MN10300_TTYSM2_TIMER10
387 bool "Use timer 10 (16-bit)"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100388 depends on AM33_2 || AM33_3
David Howellsb920de12008-02-08 04:19:31 -0800389
390endchoice
391
392config MN10300_TTYSM2_CTS
393 bool "Enable the use of the CTS line /dev/ttySM2"
Akira Takeuchi368dd5a2010-10-27 17:28:55 +0100394 depends on MN10300_TTYSM2 && AM33_2
David Howellsb920de12008-02-08 04:19:31 -0800395
396endmenu
397
Akira Takeuchi37e4ec92010-10-27 17:28:54 +0100398menu "Interrupt request priority options"
399
400comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
401
402comment "____Non-maskable interrupt levels____"
403comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
404
David Howells67ddb402011-03-18 16:54:30 +0000405config DEBUGGER_IRQ_LEVEL
406 int "DEBUGGER interrupt priority"
David Howells792576b2011-03-18 16:54:30 +0000407 depends on KERNEL_DEBUGGER
Akira Takeuchi37e4ec92010-10-27 17:28:54 +0100408 range 0 1 if LINUX_CLI_LEVEL = 2
409 range 0 2 if LINUX_CLI_LEVEL = 3
410 range 0 3 if LINUX_CLI_LEVEL = 4
411 range 0 4 if LINUX_CLI_LEVEL = 5
412 range 0 5 if LINUX_CLI_LEVEL = 6
413 default 0
414
415comment "The following must be set to a higher priority than local_irq_disable()"
416
417config MN10300_SERIAL_IRQ_LEVEL
418 int "MN10300 on-chip serial interrupt priority"
419 depends on MN10300_TTYSM
420 range 1 1 if LINUX_CLI_LEVEL = 2
421 range 1 2 if LINUX_CLI_LEVEL = 3
422 range 1 3 if LINUX_CLI_LEVEL = 4
423 range 1 4 if LINUX_CLI_LEVEL = 5
424 range 1 5 if LINUX_CLI_LEVEL = 6
425 default 1
426
427comment "-"
428comment "____Maskable interrupt levels____"
429
430config LINUX_CLI_LEVEL
431 int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
432 range 2 6
433 default 2
434 help
435 local_irq_disable() doesn't actually disable maskable interrupts -
436 what it does is restrict the levels of interrupt which are permitted
437 (a lower level indicates a higher priority) by lowering the value in
438 EPSW.IM from 7. Any interrupt is permitted for which the level is
439 lower than EPSW.IM.
440
David Howells67ddb402011-03-18 16:54:30 +0000441 Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
Akira Takeuchi37e4ec92010-10-27 17:28:54 +0100442 serial DMA interrupts are allowed to interrupt normal disabled
443 sections.
444
445comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
446
447config TIMER_IRQ_LEVEL
448 int "Kernel timer interrupt priority"
449 range LINUX_CLI_LEVEL 6
450 default 4
451
452config PCI_IRQ_LEVEL
453 int "PCI interrupt priority"
454 depends on PCI
455 range LINUX_CLI_LEVEL 6
456 default 5
457
458config ETHERNET_IRQ_LEVEL
459 int "Ethernet interrupt priority"
460 depends on SMC91X || SMC911X || SMSC911X
461 range LINUX_CLI_LEVEL 6
462 default 6
463
464config EXT_SERIAL_IRQ_LEVEL
465 int "External serial port interrupt priority"
466 depends on SERIAL_8250
467 range LINUX_CLI_LEVEL 6
468 default 6
469
470endmenu
471
David Howellsb920de12008-02-08 04:19:31 -0800472source "mm/Kconfig"
473
474menu "Power management options"
475source kernel/power/Kconfig
476endmenu
477
478endmenu
479
480
481menu "Executable formats"
482
483source "fs/Kconfig.binfmt"
484
485endmenu
486
487source "net/Kconfig"
488
489source "drivers/Kconfig"
490
491source "fs/Kconfig"
492
493source "arch/mn10300/Kconfig.debug"
494
495source "security/Kconfig"
496
497source "crypto/Kconfig"
498
499source "lib/Kconfig"