1# SPDX-License-Identifier: GPL-2.0 2config 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 21config AM33_2 22 def_bool n 23 24config AM33_3 25 def_bool n 26 27config AM34_2 28 def_bool n 29 select MN10300_HAS_ATOMIC_OPS_UNIT 30 select MN10300_HAS_CACHE_SNOOP 31 32config ERRATUM_NEED_TO_RELOAD_MMUCTR 33 def_bool y if AM33_3 || AM34_2 34 35config MMU 36 def_bool y 37 38config HIGHMEM 39 def_bool n 40 41config NUMA 42 def_bool n 43 44config RWSEM_GENERIC_SPINLOCK 45 def_bool y 46 47config RWSEM_XCHGADD_ALGORITHM 48 bool 49 50config GENERIC_CALIBRATE_DELAY 51 def_bool y 52 53config GENERIC_HWEIGHT 54 def_bool y 55 56config GENERIC_BUG 57 def_bool y 58 depends on BUG 59 60config QUICKLIST 61 def_bool y 62 63config ARCH_HAS_ILOG2_U32 64 def_bool y 65 66config HOTPLUG_CPU 67 def_bool n 68 69source "init/Kconfig" 70 71source "kernel/Kconfig.freezer" 72 73 74menu "Panasonic MN10300 system setup" 75 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 89config MN10300_UNIT_ASB2364 90 bool "ASB2364" 91 select SMSC911X_ARCH_HOOKS if SMSC911X 92 93endchoice 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 105 select AM33_2 106 select MN10300_PROC_HAS_TTYSM0 107 select MN10300_PROC_HAS_TTYSM1 108 select MN10300_PROC_HAS_TTYSM2 109 110config 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 118endchoice 119 120config 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 126config FPU 127 bool "FPU present" 128 default y 129 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050 130 131config 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 146source "arch/mn10300/mm/Kconfig.cache" 147 148config MN10300_TLB_USE_PIDR 149 def_bool y 150 151menu "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" 170 default "0x50700000" 171 172config 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" 181endmenu 182 183config 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 204config NR_CPUS 205 int 206 depends on SMP 207 default "2" 208 209source "kernel/Kconfig.preempt" 210 211config 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 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 235source "kernel/Kconfig.hz" 236 237config 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 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 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 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" 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 343config MN10300_TTYSM1_TIMER12 344 bool "Use timer 12 (16-bit)" 345 depends on !(AM33_2 || AM33_3) 346 347config MN10300_TTYSM1_TIMER9 348 bool "Use timer 9 (16-bit)" 349 depends on AM33_2 || AM33_3 350 351config MN10300_TTYSM1_TIMER3 352 bool "Use timer 3 (8-bit)" 353 depends on AM33_2 || AM33_3 354 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" 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 374config 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 386config MN10300_TTYSM2_TIMER10 387 bool "Use timer 10 (16-bit)" 388 depends on AM33_2 || AM33_3 389 390endchoice 391 392config MN10300_TTYSM2_CTS 393 bool "Enable the use of the CTS line /dev/ttySM2" 394 depends on MN10300_TTYSM2 && AM33_2 395 396endmenu 397 398menu "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 405config 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 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 441 Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip 442 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 472source "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" 500