1 # SPDX-License-Identifier: GPL-2.0-only !! 1 # SPDX-License-Identifier: GPL-2.0 2 # !! 2 config M68K 3 # Copyright (C) 2004, 2007-2010, 2011-2012 Syn !! 3 bool 4 # !! 4 default y 5 !! 5 select ARCH_HAS_CPU_FINALIZE_INIT if MMU 6 config ARC !! 6 select ARCH_MIGHT_HAVE_PC_PARPORT if ISA 7 def_bool y !! 7 select ARCH_NO_COHERENT_DMA_MMAP if !MMU 8 select ARC_TIMERS !! 8 select HAVE_IDE 9 select ARCH_HAS_CACHE_LINE_SIZE !! 9 select HAVE_AOUT if MMU 10 select ARCH_HAS_DEBUG_VM_PGTABLE !! 10 select HAVE_DEBUG_BUGVERBOSE 11 select ARCH_HAS_DMA_PREP_COHERENT << 12 select ARCH_HAS_PTE_SPECIAL << 13 select ARCH_HAS_SETUP_DMA_OPS << 14 select ARCH_HAS_SYNC_DMA_FOR_CPU << 15 select ARCH_HAS_SYNC_DMA_FOR_DEVICE << 16 select ARCH_NEED_CMPXCHG_1_EMU << 17 select ARCH_SUPPORTS_ATOMIC_RMW if ARC << 18 select ARCH_32BIT_OFF_T << 19 select BUILDTIME_TABLE_SORT << 20 select CLONE_BACKWARDS << 21 select COMMON_CLK << 22 select DMA_DIRECT_REMAP << 23 select GENERIC_ATOMIC64 if !ISA_ARCV2 << 24 # for now, we don't need GENERIC_IRQ_P << 25 select GENERIC_IRQ_SHOW 11 select GENERIC_IRQ_SHOW 26 select GENERIC_PCI_IOMAP !! 12 select GENERIC_ATOMIC64 27 select GENERIC_PENDING_IRQ if SMP !! 13 select HAVE_UID16 28 select GENERIC_SCHED_CLOCK !! 14 select VIRT_TO_BUS 29 select GENERIC_SMP_IDLE_THREAD !! 15 select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS 30 select GENERIC_IOREMAP !! 16 select GENERIC_CPU_DEVICES >> 17 select GENERIC_IOMAP 31 select GENERIC_STRNCPY_FROM_USER if MM 18 select GENERIC_STRNCPY_FROM_USER if MMU 32 select GENERIC_STRNLEN_USER if MMU 19 select GENERIC_STRNLEN_USER if MMU 33 select HAVE_ARCH_KGDB !! 20 select ARCH_WANT_IPC_PARSE_VERSION 34 select HAVE_ARCH_TRACEHOOK !! 21 select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE 35 select HAVE_ARCH_TRANSPARENT_HUGEPAGE !! 22 select HAVE_FUTEX_CMPXCHG if MMU && FUTEX 36 select HAVE_DEBUG_STACKOVERFLOW << 37 select HAVE_DEBUG_KMEMLEAK << 38 select HAVE_IOREMAP_PROT << 39 select HAVE_KERNEL_GZIP << 40 select HAVE_KERNEL_LZMA << 41 select HAVE_KPROBES << 42 select HAVE_KRETPROBES << 43 select HAVE_REGS_AND_STACK_ACCESS_API << 44 select HAVE_MOD_ARCH_SPECIFIC 23 select HAVE_MOD_ARCH_SPECIFIC 45 select HAVE_PERF_EVENTS !! 24 select MODULES_USE_ELF_REL 46 select HAVE_SYSCALL_TRACEPOINTS << 47 select IRQ_DOMAIN << 48 select LOCK_MM_AND_FIND_VMA << 49 select MODULES_USE_ELF_RELA 25 select MODULES_USE_ELF_RELA 50 select OF !! 26 select OLD_SIGSUSPEND3 51 select OF_EARLY_FLATTREE !! 27 select OLD_SIGACTION 52 select PCI_SYSCALL if PCI << 53 select HAVE_ARCH_JUMP_LABEL if ISA_ARC << 54 select TRACE_IRQFLAGS_SUPPORT << 55 select HAVE_EBPF_JIT if ISA_ARCV2 << 56 28 57 config LOCKDEP_SUPPORT !! 29 config CPU_BIG_ENDIAN 58 def_bool y 30 def_bool y 59 31 60 config SCHED_OMIT_FRAME_POINTER !! 32 config RWSEM_GENERIC_SPINLOCK 61 def_bool y !! 33 bool >> 34 default y 62 35 63 config GENERIC_CSUM !! 36 config RWSEM_XCHGADD_ALGORITHM 64 def_bool y !! 37 bool 65 38 66 config ARCH_FLATMEM_ENABLE !! 39 config ARCH_HAS_ILOG2_U32 67 def_bool y !! 40 bool 68 41 69 config MMU !! 42 config ARCH_HAS_ILOG2_U64 70 def_bool y !! 43 bool 71 << 72 config NO_IOPORT_MAP << 73 def_bool y << 74 << 75 config GENERIC_CALIBRATE_DELAY << 76 def_bool y << 77 44 78 config GENERIC_HWEIGHT 45 config GENERIC_HWEIGHT 79 def_bool y !! 46 bool 80 << 81 config STACKTRACE_SUPPORT << 82 def_bool y << 83 select STACKTRACE << 84 << 85 menu "ARC Architecture Configuration" << 86 << 87 menu "ARC Platform/SoC/Board" << 88 << 89 source "arch/arc/plat-tb10x/Kconfig" << 90 source "arch/arc/plat-axs10x/Kconfig" << 91 source "arch/arc/plat-hsdk/Kconfig" << 92 << 93 endmenu << 94 << 95 choice << 96 prompt "ARC Instruction Set" << 97 default ISA_ARCV2 << 98 << 99 config ISA_ARCOMPACT << 100 bool "ARCompact ISA" << 101 select CPU_NO_EFFICIENT_FFS << 102 help << 103 The original ARC ISA of ARC600/700 c << 104 << 105 config ISA_ARCV2 << 106 bool "ARC ISA v2" << 107 select ARC_TIMERS_64BIT << 108 help << 109 ISA for the Next Generation ARC-HS c << 110 << 111 endchoice << 112 << 113 menu "ARC CPU Configuration" << 114 << 115 choice << 116 prompt "ARC Core" << 117 default ARC_CPU_770 if ISA_ARCOMPACT << 118 default ARC_CPU_HS if ISA_ARCV2 << 119 << 120 config ARC_CPU_770 << 121 bool "ARC770" << 122 depends on ISA_ARCOMPACT << 123 select ARC_HAS_SWAPE << 124 help << 125 Support for ARC770 core introduced w << 126 This core has a bunch of cool new fe << 127 -MMU-v3: Variable Page Sz (4k, 8k, 1 << 128 Shared Address Spaces (for << 129 -Caches: New Prog Model, Region Flus << 130 -Insns: endian swap, load-locked/sto << 131 << 132 config ARC_CPU_HS << 133 bool "ARC-HS" << 134 depends on ISA_ARCV2 << 135 help << 136 Support for ARC HS38x Cores based on << 137 The notable features are: << 138 - SMP configurations of up to 4 co << 139 - Optional L2 Cache and IO-Coheren << 140 - Revised Interrupt Architecture ( << 141 auto stack switch, auto regfil << 142 - MMUv4 (PIPT dcache, Huge Pages) << 143 - Instructions for << 144 * 64bit load/store: LDD, STD << 145 * Hardware assisted divide/rem << 146 * Function prologue/epilogue: << 147 * IRQ enable/disable: CLRI, SE << 148 * pop count: FFS, FLS << 149 * SETcc, BMSKN, XBFU... << 150 << 151 endchoice << 152 << 153 config ARC_TUNE_MCPU << 154 string "Override default -mcpu compile << 155 default "" << 156 help << 157 Override default -mcpu=xxx compiler << 158 the ISA version) with the specified << 159 NOTE: If specified flag isn't suppor << 160 ISA default value will be used as a << 161 << 162 config CPU_BIG_ENDIAN << 163 bool "Enable Big Endian Mode" << 164 help << 165 Build kernel for Big Endian Mode of << 166 << 167 config SMP << 168 bool "Symmetric Multi-Processing" << 169 select ARC_MCIP if ISA_ARCV2 << 170 help << 171 This enables support for systems wit << 172 << 173 if SMP << 174 << 175 config NR_CPUS << 176 int "Maximum number of CPUs (2-4096)" << 177 range 2 4096 << 178 default "4" << 179 << 180 config ARC_SMP_HALT_ON_RESET << 181 bool "Enable Halt-on-reset boot mode" << 182 help << 183 In SMP configuration cores can be co << 184 or they could all start at same time << 185 masters are parked until Master kick << 186 at designated entry point. For other << 187 entry point and spin wait for Master << 188 << 189 endif #SMP << 190 << 191 config ARC_MCIP << 192 bool "ARConnect Multicore IP (MCIP) Su << 193 depends on ISA_ARCV2 << 194 default y if SMP << 195 help << 196 This IP block enables SMP in ARC-HS3 << 197 It provides for cross-core interrupt << 198 hardware semaphores, shared memory,. << 199 << 200 menuconfig ARC_CACHE << 201 bool "Enable Cache Support" << 202 default y 47 default y 203 48 204 if ARC_CACHE !! 49 config GENERIC_CALIBRATE_DELAY 205 !! 50 bool 206 config ARC_CACHE_LINE_SHIFT << 207 int "Cache Line Length (as power of 2) << 208 range 5 7 << 209 default "6" << 210 help << 211 Starting with ARC700 4.9, Cache line << 212 This option specifies "N", with Line << 213 So line lengths of 32, 64, 128 are s << 214 Linux only supports same line length << 215 << 216 config ARC_HAS_ICACHE << 217 bool "Use Instruction Cache" << 218 default y 51 default y 219 52 220 config ARC_HAS_DCACHE !! 53 config GENERIC_CSUM 221 bool "Use Data Cache" !! 54 bool 222 default y << 223 55 224 config ARC_CACHE_PAGES !! 56 config TIME_LOW_RES 225 bool "Per Page Cache Control" !! 57 bool 226 default y 58 default y 227 depends on ARC_HAS_ICACHE || ARC_HAS_D << 228 help << 229 This can be used to over-ride the gl << 230 per-page basis (but only for pages a << 231 Kernel Virtual address or User Virtu << 232 TLB entries have a per-page Cache En << 233 Note that Global I/D ENABLE + Per Pa << 234 Global DISABLE + Per Page ENABLE won << 235 << 236 endif #ARC_CACHE << 237 59 238 config ARC_HAS_ICCM !! 60 config NO_IOPORT_MAP 239 bool "Use ICCM" !! 61 def_bool y 240 help << 241 Single Cycle RAMS to store Fast Path << 242 << 243 config ARC_ICCM_SZ << 244 int "ICCM Size in KB" << 245 default "64" << 246 depends on ARC_HAS_ICCM << 247 62 248 config ARC_HAS_DCCM !! 63 config NO_DMA 249 bool "Use DCCM" !! 64 def_bool (MMU && SUN3) || (!MMU && !COLDFIRE) 250 help << 251 Single Cycle RAMS to store Fast Path << 252 65 253 config ARC_DCCM_SZ !! 66 config ZONE_DMA 254 int "DCCM Size in KB" !! 67 bool 255 default "64" !! 68 default y 256 depends on ARC_HAS_DCCM << 257 << 258 config ARC_DCCM_BASE << 259 hex "DCCM map address" << 260 default "0xA0000000" << 261 depends on ARC_HAS_DCCM << 262 << 263 choice << 264 prompt "MMU Version" << 265 default ARC_MMU_V3 if ISA_ARCOMPACT << 266 default ARC_MMU_V4 if ISA_ARCV2 << 267 << 268 config ARC_MMU_V3 << 269 bool "MMU v3" << 270 depends on ISA_ARCOMPACT << 271 help << 272 Introduced with ARC700 4.10: New Fea << 273 Variable Page size (1k-16k), var JTL << 274 Shared Address Spaces (SASID) << 275 69 276 config ARC_MMU_V4 !! 70 config HZ 277 bool "MMU v4" !! 71 int 278 depends on ISA_ARCV2 !! 72 default 1000 if CLEOPATRA >> 73 default 100 279 74 280 endchoice !! 75 config PGTABLE_LEVELS >> 76 default 2 if SUN3 || COLDFIRE >> 77 default 3 281 78 >> 79 source "init/Kconfig" 282 80 283 choice !! 81 source "kernel/Kconfig.freezer" 284 prompt "MMU Page Size" << 285 default ARC_PAGE_SIZE_8K << 286 82 287 config ARC_PAGE_SIZE_8K !! 83 config MMU 288 bool "8KB" !! 84 bool "MMU-based Paged Memory Management Support" 289 select HAVE_PAGE_SIZE_8KB !! 85 default y 290 help 86 help 291 Choose between 8k vs 16k !! 87 Select if you want MMU-based virtualised addressing space 292 !! 88 support by paged memory management. If unsure, say 'Y'. 293 config ARC_PAGE_SIZE_16K << 294 select HAVE_PAGE_SIZE_16KB << 295 bool "16KB" << 296 << 297 config ARC_PAGE_SIZE_4K << 298 bool "4KB" << 299 select HAVE_PAGE_SIZE_4KB << 300 depends on ARC_MMU_V3 || ARC_MMU_V4 << 301 << 302 endchoice << 303 << 304 choice << 305 prompt "MMU Super Page Size" << 306 depends on ISA_ARCV2 && TRANSPARENT_HU << 307 default ARC_HUGEPAGE_2M << 308 << 309 config ARC_HUGEPAGE_2M << 310 bool "2MB" << 311 89 312 config ARC_HUGEPAGE_16M !! 90 config MMU_MOTOROLA 313 bool "16MB" !! 91 bool 314 92 315 endchoice !! 93 config MMU_COLDFIRE >> 94 bool 316 95 317 config PGTABLE_LEVELS !! 96 config MMU_SUN3 318 int "Number of Page table levels" !! 97 bool 319 default 2 !! 98 depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE 320 << 321 config ARC_COMPACT_IRQ_LEVELS << 322 depends on ISA_ARCOMPACT << 323 bool "Setup Timer IRQ as high Priority << 324 # if SMP, LV2 enabled ONLY if ARC impl << 325 depends on !SMP << 326 99 327 config ARC_FPU_SAVE_RESTORE !! 100 config KEXEC 328 bool "Enable FPU state persistence acr !! 101 bool "kexec system call" >> 102 depends on M68KCLASSIC >> 103 select KEXEC_CORE 329 help 104 help 330 ARCompact FPU has internal registers !! 105 kexec is a system call that implements the ability to shutdown your 331 Floating Point operations. There are !! 106 current kernel, and to start another kernel. It is like a reboot 332 for floating point exceptions and ro !! 107 but it is independent of the system firmware. And like a reboot 333 preserved across task context switch !! 108 you can start any kernel with it, not just Linux. 334 109 335 config ARC_CANT_LLSC !! 110 The name comes from the similarity to the exec system call. 336 def_bool n << 337 111 338 config ARC_HAS_LLSC !! 112 It is an ongoing process to be certain the hardware in a machine 339 bool "Insn: LLOCK/SCOND (efficient ato !! 113 is properly shutdown, so do not be surprised if this code does not 340 default y !! 114 initially work for you. As of this writing the exact hardware 341 depends on !ARC_CANT_LLSC !! 115 interface is strongly in flux, so no good recommendation can be >> 116 made. 342 117 343 config ARC_HAS_SWAPE !! 118 config BOOTINFO_PROC 344 bool "Insn: SWAPE (endian-swap)" !! 119 bool "Export bootinfo in procfs" 345 default y !! 120 depends on KEXEC && M68KCLASSIC 346 << 347 if ISA_ARCV2 << 348 << 349 config ARC_USE_UNALIGNED_MEM_ACCESS << 350 bool "Enable unaligned access in HW" << 351 default y << 352 select HAVE_EFFICIENT_UNALIGNED_ACCESS << 353 help 121 help 354 The ARC HS architecture supports una !! 122 Say Y to export the bootinfo used to boot the kernel in a 355 which is disabled by default. Enable !! 123 "bootinfo" file in procfs. This is useful with kexec. 356 hardware and use software to use it << 357 124 358 config ARC_HAS_LL64 !! 125 menu "Platform setup" 359 bool "Insn: 64bit LDD/STD" << 360 help << 361 Enable gcc to generate 64-bit load/s << 362 ISA mandates even/odd registers to a << 363 dest operands with 2 possible source << 364 default y << 365 126 366 config ARC_HAS_DIV_REM !! 127 source arch/m68k/Kconfig.cpu 367 bool "Insn: div, divu, rem, remu" << 368 default y << 369 128 370 config ARC_HAS_ACCL_REGS !! 129 source arch/m68k/Kconfig.machine 371 bool "Reg Pair ACCL:ACCH (FPU and/or M << 372 default y << 373 help << 374 Depending on the configuration, CPU << 375 (also referred to as r58:r59). These << 376 kernel needs to save/restore per pro << 377 << 378 config ARC_DSP_HANDLED << 379 def_bool n << 380 << 381 config ARC_DSP_SAVE_RESTORE_REGS << 382 def_bool n << 383 << 384 choice << 385 prompt "DSP support" << 386 default ARC_DSP_NONE << 387 help << 388 Depending on the configuration, CPU << 389 (ACC0_GLO, ACC0_GHI, DSP_BFLY0, DSP_ << 390 Below are options describing how to << 391 interrupt entry / exit and in contex << 392 130 393 config ARC_DSP_NONE !! 131 source arch/m68k/Kconfig.bus 394 bool "No DSP extension presence in HW" << 395 help << 396 No DSP extension presence in HW << 397 132 398 config ARC_DSP_KERNEL !! 133 endmenu 399 bool "DSP extension in HW, no support << 400 select ARC_HAS_ACCL_REGS << 401 select ARC_DSP_HANDLED << 402 help << 403 DSP extension presence in HW, no sup << 404 applications. We don't save / restor << 405 some minimal preparations so userspa << 406 << 407 config ARC_DSP_USERSPACE << 408 bool "Support DSP for userspace apps" << 409 select ARC_HAS_ACCL_REGS << 410 select ARC_DSP_HANDLED << 411 select ARC_DSP_SAVE_RESTORE_REGS << 412 help << 413 DSP extension presence in HW, suppor << 414 run DSP-enabled userspace applicatio << 415 134 416 config ARC_DSP_AGU_USERSPACE !! 135 menu "Kernel Features" 417 bool "Support DSP with AGU for userspa << 418 select ARC_HAS_ACCL_REGS << 419 select ARC_DSP_HANDLED << 420 select ARC_DSP_SAVE_RESTORE_REGS << 421 help << 422 DSP and AGU extensions presence in H << 423 and AGU registers to run DSP-enabled << 424 endchoice << 425 << 426 config ARC_IRQ_NO_AUTOSAVE << 427 bool "Disable hardware autosave regfil << 428 default n << 429 help << 430 On HS cores, taken interrupt auto sa << 431 This is programmable and can be opti << 432 software INTERRUPT_PROLOGUE/EPILGUE << 433 136 434 config ARC_LPB_DISABLE !! 137 if COLDFIRE 435 bool "Disable loop buffer (LPB)" !! 138 source "kernel/Kconfig.preempt" 436 help !! 139 endif 437 On HS cores, loop buffer (LPB) is pr << 438 be optionally disabled. << 439 140 440 endif # ISA_ARCV2 !! 141 source "mm/Kconfig" 441 142 442 endmenu # "ARC CPU Configuration" !! 143 endmenu 443 144 444 config LINUX_LINK_BASE !! 145 menu "Executable file formats" 445 hex "Kernel link address" << 446 default "0x80000000" << 447 help << 448 ARC700 divides the 32 bit phy addres << 449 -Lower 2G (0 - 0x7FFF_FFFF ) is user << 450 -Upper 2G (0x8000_0000 onwards) is u << 451 Typically Linux kernel is linked at << 452 hence the default value of 0x8zs. << 453 However some customers have peripher << 454 Linux needs to be scooted a bit. << 455 If you don't know what the above mea << 456 This needs to match memory start add << 457 << 458 config LINUX_RAM_BASE << 459 hex "RAM base address" << 460 default LINUX_LINK_BASE << 461 help << 462 By default Linux is linked at base o << 463 cases (such as HSDK), Linux can't be << 464 this option. << 465 << 466 config HIGHMEM << 467 bool "High Memory Support" << 468 select HAVE_ARCH_PFN_VALID << 469 select KMAP_LOCAL << 470 help << 471 With ARC 2G:2G address split, only u << 472 kernel. Enable this to potentially a << 473 in future << 474 << 475 config ARC_HAS_PAE40 << 476 bool "Support for the 40-bit Physical << 477 depends on ISA_ARCV2 << 478 select HIGHMEM << 479 select PHYS_ADDR_T_64BIT << 480 help << 481 Enable access to physical memory bey << 482 ARC cores with 40 bit Physical Addre << 483 146 484 config ARC_KVADDR_SIZE !! 147 source "fs/Kconfig.binfmt" 485 int "Kernel Virtual Address Space size << 486 range 0 512 << 487 default "256" << 488 help << 489 The kernel address space is carved o << 490 space for catering to vmalloc, modul << 491 not suffice vmalloc requirements of << 492 this to be stretched to 512 MB (by e << 493 kernel-user gutter) << 494 148 495 config ARC_CURR_IN_REG !! 149 endmenu 496 bool "cache current task pointer in gp << 497 default y << 498 help << 499 This reserves gp register to point t << 500 kernel mode eliding memory access fo << 501 150 >> 151 if !MMU >> 152 menu "Power management options" 502 153 503 config ARC_EMUL_UNALIGNED !! 154 config PM 504 bool "Emulate unaligned memory access !! 155 bool "Power Management support" 505 select SYSCTL_ARCH_UNALIGN_NO_WARN << 506 select SYSCTL_ARCH_UNALIGN_ALLOW << 507 depends on ISA_ARCOMPACT << 508 help 156 help 509 This enables misaligned 16 & 32 bit !! 157 Support processor power management modes 510 Use ONLY-IF-ABS-NECESSARY as it will << 511 potential bugs in code << 512 158 513 config HZ !! 159 endmenu 514 int "Timer Frequency" !! 160 endif 515 default 100 << 516 << 517 config ARC_METAWARE_HLINK << 518 bool "Support for Metaware debugger as << 519 help << 520 This options allows a Linux userland << 521 host file system (open/creat/read/wr << 522 Metaware Debugger. This can come in << 523 when there is no real usable periphe << 524 161 525 menuconfig ARC_DBG !! 162 source "net/Kconfig" 526 bool "ARC debugging" << 527 default y << 528 163 529 if ARC_DBG !! 164 source "drivers/Kconfig" 530 165 531 config ARC_DW2_UNWIND !! 166 source "arch/m68k/Kconfig.devices" 532 bool "Enable DWARF specific kernel sta << 533 default y << 534 select KALLSYMS << 535 help << 536 Compiles the kernel with DWARF unwin << 537 to get stack backtraces. << 538 167 539 If you say Y here the resulting kern !! 168 source "fs/Kconfig" 540 but not slower, and it will give ver << 541 If you don't debug the kernel, you c << 542 to solve problems without frame unwi << 543 << 544 config ARC_DBG_JUMP_LABEL << 545 bool "Paranoid checks in Static Keys ( << 546 depends on JUMP_LABEL << 547 default y if STATIC_KEYS_SELFTEST << 548 help << 549 Enable paranoid checks and self-test << 550 part of static keys (jump labels) re << 551 endif << 552 169 553 config ARC_BUILTIN_DTB_NAME !! 170 source "arch/m68k/Kconfig.debug" 554 string "Built in DTB" << 555 help << 556 Set the name of the DTB to embed in << 557 Leaving it blank selects the "nsim_7 << 558 171 559 endmenu # "ARC Architecture Configuration" !! 172 source "security/Kconfig" 560 173 561 config ARCH_FORCE_MAX_ORDER !! 174 source "crypto/Kconfig" 562 int "Maximum zone order" << 563 default "11" if ARC_HUGEPAGE_16M << 564 default "10" << 565 175 566 source "kernel/power/Kconfig" !! 176 source "lib/Kconfig"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.