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