]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - arch/mn10300/Kconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[mirror_ubuntu-jammy-kernel.git] / arch / mn10300 / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config MN10300
3 def_bool y
4 select HAVE_EXIT_THREAD
5 select HAVE_OPROFILE
6 select HAVE_UID16
7 select GENERIC_IRQ_SHOW
8 select ARCH_WANT_IPC_PARSE_VERSION
9 select HAVE_ARCH_TRACEHOOK
10 select HAVE_ARCH_KGDB
11 select GENERIC_ATOMIC64
12 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
13 select VIRT_TO_BUS
14 select GENERIC_CLOCKEVENTS
15 select MODULES_USE_ELF_RELA
16 select OLD_SIGSUSPEND3
17 select OLD_SIGACTION
18 select HAVE_DEBUG_STACKOVERFLOW
19 select ARCH_NO_COHERENT_DMA_MMAP
20
21 config AM33_2
22 def_bool n
23
24 config AM33_3
25 def_bool n
26
27 config AM34_2
28 def_bool n
29 select MN10300_HAS_ATOMIC_OPS_UNIT
30 select MN10300_HAS_CACHE_SNOOP
31
32 config ERRATUM_NEED_TO_RELOAD_MMUCTR
33 def_bool y if AM33_3 || AM34_2
34
35 config MMU
36 def_bool y
37
38 config HIGHMEM
39 def_bool n
40
41 config NUMA
42 def_bool n
43
44 config RWSEM_GENERIC_SPINLOCK
45 def_bool y
46
47 config RWSEM_XCHGADD_ALGORITHM
48 bool
49
50 config GENERIC_CALIBRATE_DELAY
51 def_bool y
52
53 config GENERIC_HWEIGHT
54 def_bool y
55
56 config GENERIC_BUG
57 def_bool y
58 depends on BUG
59
60 config QUICKLIST
61 def_bool y
62
63 config ARCH_HAS_ILOG2_U32
64 def_bool y
65
66 config HOTPLUG_CPU
67 def_bool n
68
69 source "init/Kconfig"
70
71 source "kernel/Kconfig.freezer"
72
73
74 menu "Panasonic MN10300 system setup"
75
76 choice
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
83 config MN10300_UNIT_ASB2303
84 bool "ASB2303"
85
86 config MN10300_UNIT_ASB2305
87 bool "ASB2305"
88
89 config MN10300_UNIT_ASB2364
90 bool "ASB2364"
91 select SMSC911X_ARCH_HOOKS if SMSC911X
92
93 endchoice
94
95 choice
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
102 config MN10300_PROC_MN103E010
103 bool "MN103E010"
104 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
105 select AM33_2
106 select MN10300_PROC_HAS_TTYSM0
107 select MN10300_PROC_HAS_TTYSM1
108 select MN10300_PROC_HAS_TTYSM2
109
110 config 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
117
118 endchoice
119
120 config 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
126 config FPU
127 bool "FPU present"
128 default y
129 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
130
131 config 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
146 source "arch/mn10300/mm/Kconfig.cache"
147
148 config MN10300_TLB_USE_PIDR
149 def_bool y
150
151 menu "Memory layout options"
152
153 config KERNEL_RAM_BASE_ADDRESS
154 hex "Base address of kernel RAM"
155 default "0x90000000"
156
157 config 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
164 config KERNEL_TEXT_ADDRESS
165 hex "Base address of kernel"
166 default "0x90001000"
167
168 config KERNEL_ZIMAGE_BASE_ADDRESS
169 hex "Base address of compressed vmlinux image"
170 default "0x50700000"
171
172 config BOOT_STACK_OFFSET
173 hex
174 default "0xF00" if SMP
175 default "0xFF0" if !SMP
176
177 config BOOT_STACK_SIZE
178 hex
179 depends on SMP
180 default "0x100"
181 endmenu
182
183 config SMP
184 bool "Symmetric multi-processing support"
185 default y
186 depends on MN10300_PROC_MN2WS0050
187 ---help---
188 This enables support for systems with more than one CPU. If you have
189 a system with only one CPU, say N. If you have a system with more
190 than one CPU, say Y.
191
192 If you say N here, the kernel will run on uni- and multiprocessor
193 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,
195 uniprocessor machines. On a uniprocessor machine, the kernel
196 will run faster if you say N here.
197
198 See also <file:Documentation/x86/i386/IO-APIC.txt>,
199 <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
204 config NR_CPUS
205 int
206 depends on SMP
207 default "2"
208
209 source "kernel/Kconfig.preempt"
210
211 config MN10300_CURRENT_IN_E2
212 bool "Hold current task address in E2 register"
213 depends on !SMP
214 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
227 config 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
235 source "kernel/Kconfig.hz"
236
237 config MN10300_RTC
238 bool "Using MN10300 RTC"
239 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
240 select RTC_CLASS
241 select RTC_DRV_CMOS
242 select RTC_SYSTOHC
243 default n
244 help
245 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
249 config 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
255 config PCI
256 bool "Use PCI"
257 depends on MN10300_UNIT_ASB2305
258 default y
259 select GENERIC_PCI_IOMAP
260 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
269 source "drivers/pci/Kconfig"
270
271 source "drivers/pcmcia/Kconfig"
272
273 menu "MN10300 internal serial options"
274
275 config MN10300_PROC_HAS_TTYSM0
276 bool
277 default n
278
279 config MN10300_PROC_HAS_TTYSM1
280 bool
281 default n
282
283 config MN10300_PROC_HAS_TTYSM2
284 bool
285 default n
286
287 config 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
296 config 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 #
307 config 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
313 choice
314 prompt "Select the timer to supply the clock for SIF0"
315 default MN10300_TTYSM0_TIMER8
316 depends on MN10300_TTYSM0
317
318 config MN10300_TTYSM0_TIMER8
319 bool "Use timer 8 (16-bit)"
320
321 config MN10300_TTYSM0_TIMER2
322 bool "Use timer 2 (8-bit)"
323
324 endchoice
325
326 #
327 # /dev/ttySM1
328 #
329 config 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
335 choice
336 prompt "Select the timer to supply the clock for SIF1"
337 default MN10300_TTYSM1_TIMER12 \
338 if !(AM33_2 || AM33_3)
339 default MN10300_TTYSM1_TIMER9 \
340 if AM33_2 || AM33_3
341 depends on MN10300_TTYSM1
342
343 config MN10300_TTYSM1_TIMER12
344 bool "Use timer 12 (16-bit)"
345 depends on !(AM33_2 || AM33_3)
346
347 config MN10300_TTYSM1_TIMER9
348 bool "Use timer 9 (16-bit)"
349 depends on AM33_2 || AM33_3
350
351 config MN10300_TTYSM1_TIMER3
352 bool "Use timer 3 (8-bit)"
353 depends on AM33_2 || AM33_3
354
355 endchoice
356
357 #
358 # /dev/ttySM2
359 #
360 config 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
366 choice
367 prompt "Select the timer to supply the clock for SIF2"
368 default MN10300_TTYSM2_TIMER3 \
369 if !(AM33_2 || AM33_3)
370 default MN10300_TTYSM2_TIMER10 \
371 if AM33_2 || AM33_3
372 depends on MN10300_TTYSM2
373
374 config MN10300_TTYSM2_TIMER9
375 bool "Use timer 9 (16-bit)"
376 depends on !(AM33_2 || AM33_3)
377
378 config MN10300_TTYSM2_TIMER1
379 bool "Use timer 1 (8-bit)"
380 depends on !(AM33_2 || AM33_3)
381
382 config MN10300_TTYSM2_TIMER3
383 bool "Use timer 3 (8-bit)"
384 depends on !(AM33_2 || AM33_3)
385
386 config MN10300_TTYSM2_TIMER10
387 bool "Use timer 10 (16-bit)"
388 depends on AM33_2 || AM33_3
389
390 endchoice
391
392 config MN10300_TTYSM2_CTS
393 bool "Enable the use of the CTS line /dev/ttySM2"
394 depends on MN10300_TTYSM2 && AM33_2
395
396 endmenu
397
398 menu "Interrupt request priority options"
399
400 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
401
402 comment "____Non-maskable interrupt levels____"
403 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
404
405 config DEBUGGER_IRQ_LEVEL
406 int "DEBUGGER interrupt priority"
407 depends on KERNEL_DEBUGGER
408 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
415 comment "The following must be set to a higher priority than local_irq_disable()"
416
417 config 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
427 comment "-"
428 comment "____Maskable interrupt levels____"
429
430 config 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
441 Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
442 serial DMA interrupts are allowed to interrupt normal disabled
443 sections.
444
445 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
446
447 config TIMER_IRQ_LEVEL
448 int "Kernel timer interrupt priority"
449 range LINUX_CLI_LEVEL 6
450 default 4
451
452 config PCI_IRQ_LEVEL
453 int "PCI interrupt priority"
454 depends on PCI
455 range LINUX_CLI_LEVEL 6
456 default 5
457
458 config ETHERNET_IRQ_LEVEL
459 int "Ethernet interrupt priority"
460 depends on SMC91X || SMC911X || SMSC911X
461 range LINUX_CLI_LEVEL 6
462 default 6
463
464 config 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
470 endmenu
471
472 source "mm/Kconfig"
473
474 menu "Power management options"
475 source kernel/power/Kconfig
476 endmenu
477
478 endmenu
479
480
481 menu "Executable formats"
482
483 source "fs/Kconfig.binfmt"
484
485 endmenu
486
487 source "net/Kconfig"
488
489 source "drivers/Kconfig"
490
491 source "fs/Kconfig"
492
493 source "arch/mn10300/Kconfig.debug"
494
495 source "security/Kconfig"
496
497 source "crypto/Kconfig"
498
499 source "lib/Kconfig"