1# SPDX-License-Identifier: GPL-2.0 2config MIPS 3 bool 4 default y 5 select ARCH_32BIT_OFF_T if !64BIT 6 select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT 7 select ARCH_HAS_CPU_CACHE_ALIASING 8 select ARCH_HAS_CPU_FINALIZE_INIT 9 select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000 10 select ARCH_HAS_DEBUG_VIRTUAL if !64BIT 11 select ARCH_HAS_FORTIFY_SOURCE 12 select ARCH_HAS_KCOV 13 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA 14 select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI) 15 select ARCH_HAS_STRNCPY_FROM_USER 16 select ARCH_HAS_STRNLEN_USER 17 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 18 select ARCH_HAS_UBSAN_SANITIZE_ALL 19 select ARCH_HAS_GCOV_PROFILE_ALL 20 select ARCH_KEEP_MEMBLOCK 21 select ARCH_USE_BUILTIN_BSWAP 22 select ARCH_USE_CMPXCHG_LOCKREF if 64BIT 23 select ARCH_USE_MEMTEST 24 select ARCH_USE_QUEUED_RWLOCKS 25 select ARCH_USE_QUEUED_SPINLOCKS 26 select ARCH_SUPPORTS_HUGETLBFS if CPU_SUPPORTS_HUGEPAGES 27 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU 28 select ARCH_WANT_IPC_PARSE_VERSION 29 select ARCH_WANT_LD_ORPHAN_WARN 30 select BUILDTIME_TABLE_SORT 31 select CLONE_BACKWARDS 32 select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1) 33 select CPU_PM if CPU_IDLE 34 select GENERIC_ATOMIC64 if !64BIT 35 select GENERIC_CMOS_UPDATE 36 select GENERIC_CPU_AUTOPROBE 37 select GENERIC_GETTIMEOFDAY 38 select GENERIC_IOMAP 39 select GENERIC_IRQ_PROBE 40 select GENERIC_IRQ_SHOW 41 select GENERIC_ISA_DMA if EISA 42 select GENERIC_LIB_ASHLDI3 43 select GENERIC_LIB_ASHRDI3 44 select GENERIC_LIB_CMPDI2 45 select GENERIC_LIB_LSHRDI3 46 select GENERIC_LIB_UCMPDI2 47 select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC 48 select GENERIC_SMP_IDLE_THREAD 49 select GENERIC_IDLE_POLL_SETUP 50 select GENERIC_TIME_VSYSCALL 51 select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT 52 select HAS_IOPORT if !NO_IOPORT_MAP || ISA 53 select HAVE_ARCH_COMPILER_H 54 select HAVE_ARCH_JUMP_LABEL 55 select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT 56 select HAVE_ARCH_MMAP_RND_BITS if MMU 57 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT 58 select HAVE_ARCH_SECCOMP_FILTER 59 select HAVE_ARCH_TRACEHOOK 60 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES 61 select HAVE_ASM_MODVERSIONS 62 select HAVE_CONTEXT_TRACKING_USER 63 select HAVE_TIF_NOHZ 64 select HAVE_C_RECORDMCOUNT 65 select HAVE_DEBUG_KMEMLEAK 66 select HAVE_DEBUG_STACKOVERFLOW 67 select HAVE_DMA_CONTIGUOUS 68 select HAVE_DYNAMIC_FTRACE 69 select HAVE_EBPF_JIT if !CPU_MICROMIPS 70 select HAVE_EXIT_THREAD 71 select HAVE_FAST_GUP 72 select HAVE_FTRACE_MCOUNT_RECORD 73 select HAVE_FUNCTION_GRAPH_TRACER 74 select HAVE_FUNCTION_TRACER 75 select HAVE_GCC_PLUGINS 76 select HAVE_GENERIC_VDSO 77 select HAVE_IOREMAP_PROT 78 select HAVE_IRQ_EXIT_ON_IRQ_STACK 79 select HAVE_IRQ_TIME_ACCOUNTING 80 select HAVE_KPROBES 81 select HAVE_KRETPROBES 82 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION 83 select HAVE_MOD_ARCH_SPECIFIC 84 select HAVE_NMI 85 select HAVE_PERF_EVENTS 86 select HAVE_PERF_REGS 87 select HAVE_PERF_USER_STACK_DUMP 88 select HAVE_REGS_AND_STACK_ACCESS_API 89 select HAVE_RSEQ 90 select HAVE_SPARSE_SYSCALL_NR 91 select HAVE_STACKPROTECTOR 92 select HAVE_SYSCALL_TRACEPOINTS 93 select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP 94 select IRQ_FORCED_THREADING 95 select ISA if EISA 96 select LOCK_MM_AND_FIND_VMA 97 select MODULES_USE_ELF_REL if MODULES 98 select MODULES_USE_ELF_RELA if MODULES && 64BIT 99 select PERF_USE_VMALLOC 100 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI 101 select RTC_LIB 102 select SYSCTL_EXCEPTION_TRACE 103 select TRACE_IRQFLAGS_SUPPORT 104 select ARCH_HAS_ELFCORE_COMPAT 105 select HAVE_ARCH_KCSAN if 64BIT 106 107config MIPS_FIXUP_BIGPHYS_ADDR 108 bool 109 110config MIPS_GENERIC 111 bool 112 113config MACH_INGENIC 114 bool 115 select SYS_SUPPORTS_32BIT_KERNEL 116 select SYS_SUPPORTS_LITTLE_ENDIAN 117 select SYS_SUPPORTS_ZBOOT 118 select DMA_NONCOHERENT 119 select IRQ_MIPS_CPU 120 select PINCTRL 121 select GPIOLIB 122 select COMMON_CLK 123 select GENERIC_IRQ_CHIP 124 select BUILTIN_DTB if MIPS_NO_APPENDED_DTB 125 select USE_OF 126 select CPU_SUPPORTS_CPUFREQ 127 select MIPS_EXTERNAL_TIMER 128 129menu "Machine selection" 130 131choice 132 prompt "System type" 133 default MIPS_GENERIC_KERNEL 134 135config MIPS_GENERIC_KERNEL 136 bool "Generic board-agnostic MIPS kernel" 137 select MIPS_GENERIC 138 select BOOT_RAW 139 select BUILTIN_DTB 140 select CEVT_R4K 141 select CLKSRC_MIPS_GIC 142 select COMMON_CLK 143 select CPU_MIPSR2_IRQ_EI 144 select CPU_MIPSR2_IRQ_VI 145 select CSRC_R4K 146 select DMA_NONCOHERENT 147 select HAVE_PCI 148 select IRQ_MIPS_CPU 149 select MIPS_AUTO_PFN_OFFSET 150 select MIPS_CPU_SCACHE 151 select MIPS_GIC 152 select MIPS_L1_CACHE_SHIFT_7 153 select NO_EXCEPT_FILL 154 select PCI_DRIVERS_GENERIC 155 select SMP_UP if SMP 156 select SWAP_IO_SPACE 157 select SYS_HAS_CPU_MIPS32_R1 158 select SYS_HAS_CPU_MIPS32_R2 159 select SYS_HAS_CPU_MIPS32_R5 160 select SYS_HAS_CPU_MIPS32_R6 161 select SYS_HAS_CPU_MIPS64_R1 162 select SYS_HAS_CPU_MIPS64_R2 163 select SYS_HAS_CPU_MIPS64_R5 164 select SYS_HAS_CPU_MIPS64_R6 165 select SYS_SUPPORTS_32BIT_KERNEL 166 select SYS_SUPPORTS_64BIT_KERNEL 167 select SYS_SUPPORTS_BIG_ENDIAN 168 select SYS_SUPPORTS_HIGHMEM 169 select SYS_SUPPORTS_LITTLE_ENDIAN 170 select SYS_SUPPORTS_MICROMIPS 171 select SYS_SUPPORTS_MIPS16 172 select SYS_SUPPORTS_MIPS_CPS 173 select SYS_SUPPORTS_MULTITHREADING 174 select SYS_SUPPORTS_RELOCATABLE 175 select SYS_SUPPORTS_SMARTMIPS 176 select SYS_SUPPORTS_ZBOOT 177 select UHI_BOOT 178 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 179 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 180 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 181 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 182 select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 183 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 184 select USE_OF 185 help 186 Select this to build a kernel which aims to support multiple boards, 187 generally using a flattened device tree passed from the bootloader 188 using the boot protocol defined in the UHI (Unified Hosting 189 Interface) specification. 190 191config MIPS_ALCHEMY 192 bool "Alchemy processor based machines" 193 select PHYS_ADDR_T_64BIT 194 select CEVT_R4K 195 select CSRC_R4K 196 select IRQ_MIPS_CPU 197 select DMA_NONCOHERENT # Au1000,1500,1100 aren't, rest is 198 select MIPS_FIXUP_BIGPHYS_ADDR if PCI 199 select SYS_HAS_CPU_MIPS32_R1 200 select SYS_SUPPORTS_32BIT_KERNEL 201 select SYS_SUPPORTS_APM_EMULATION 202 select GPIOLIB 203 select SYS_SUPPORTS_ZBOOT 204 select COMMON_CLK 205 206config ATH25 207 bool "Atheros AR231x/AR531x SoC support" 208 select CEVT_R4K 209 select CSRC_R4K 210 select DMA_NONCOHERENT 211 select IRQ_MIPS_CPU 212 select IRQ_DOMAIN 213 select SYS_HAS_CPU_MIPS32_R1 214 select SYS_SUPPORTS_BIG_ENDIAN 215 select SYS_SUPPORTS_32BIT_KERNEL 216 select SYS_HAS_EARLY_PRINTK 217 help 218 Support for Atheros AR231x and Atheros AR531x based boards 219 220config ATH79 221 bool "Atheros AR71XX/AR724X/AR913X based boards" 222 select ARCH_HAS_RESET_CONTROLLER 223 select BOOT_RAW 224 select CEVT_R4K 225 select CSRC_R4K 226 select DMA_NONCOHERENT 227 select GPIOLIB 228 select PINCTRL 229 select COMMON_CLK 230 select IRQ_MIPS_CPU 231 select SYS_HAS_CPU_MIPS32_R2 232 select SYS_HAS_EARLY_PRINTK 233 select SYS_SUPPORTS_32BIT_KERNEL 234 select SYS_SUPPORTS_BIG_ENDIAN 235 select SYS_SUPPORTS_MIPS16 236 select SYS_SUPPORTS_ZBOOT_UART_PROM 237 select USE_OF 238 select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM 239 help 240 Support for the Atheros AR71XX/AR724X/AR913X SoCs. 241 242config BMIPS_GENERIC 243 bool "Broadcom Generic BMIPS kernel" 244 select ARCH_HAS_RESET_CONTROLLER 245 select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL 246 select BOOT_RAW 247 select NO_EXCEPT_FILL 248 select USE_OF 249 select CEVT_R4K 250 select CSRC_R4K 251 select SYNC_R4K 252 select COMMON_CLK 253 select BCM6345_L1_IRQ 254 select BCM7038_L1_IRQ 255 select BCM7120_L2_IRQ 256 select BRCMSTB_L2_IRQ 257 select IRQ_MIPS_CPU 258 select DMA_NONCOHERENT 259 select SYS_SUPPORTS_32BIT_KERNEL 260 select SYS_SUPPORTS_LITTLE_ENDIAN 261 select SYS_SUPPORTS_BIG_ENDIAN 262 select SYS_SUPPORTS_HIGHMEM 263 select SYS_HAS_CPU_BMIPS32_3300 264 select SYS_HAS_CPU_BMIPS4350 265 select SYS_HAS_CPU_BMIPS4380 266 select SYS_HAS_CPU_BMIPS5000 267 select SWAP_IO_SPACE 268 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 269 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 270 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 271 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 272 select HARDIRQS_SW_RESEND 273 select HAVE_PCI 274 select PCI_DRIVERS_GENERIC 275 select FW_CFE 276 help 277 Build a generic DT-based kernel image that boots on select 278 BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top 279 box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN 280 must be set appropriately for your board. 281 282config BCM47XX 283 bool "Broadcom BCM47XX based boards" 284 select BOOT_RAW 285 select CEVT_R4K 286 select CSRC_R4K 287 select DMA_NONCOHERENT 288 select HAVE_PCI 289 select IRQ_MIPS_CPU 290 select SYS_HAS_CPU_MIPS32_R1 291 select NO_EXCEPT_FILL 292 select SYS_SUPPORTS_32BIT_KERNEL 293 select SYS_SUPPORTS_LITTLE_ENDIAN 294 select SYS_SUPPORTS_MIPS16 295 select SYS_SUPPORTS_ZBOOT 296 select SYS_HAS_EARLY_PRINTK 297 select USE_GENERIC_EARLY_PRINTK_8250 298 select GPIOLIB 299 select LEDS_GPIO_REGISTER 300 select BCM47XX_NVRAM 301 select BCM47XX_SPROM 302 select BCM47XX_SSB if !BCM47XX_BCMA 303 help 304 Support for BCM47XX based boards 305 306config BCM63XX 307 bool "Broadcom BCM63XX based boards" 308 select BOOT_RAW 309 select CEVT_R4K 310 select CSRC_R4K 311 select SYNC_R4K 312 select DMA_NONCOHERENT 313 select IRQ_MIPS_CPU 314 select SYS_SUPPORTS_32BIT_KERNEL 315 select SYS_SUPPORTS_BIG_ENDIAN 316 select SYS_HAS_EARLY_PRINTK 317 select SYS_HAS_CPU_BMIPS32_3300 318 select SYS_HAS_CPU_BMIPS4350 319 select SYS_HAS_CPU_BMIPS4380 320 select SWAP_IO_SPACE 321 select GPIOLIB 322 select MIPS_L1_CACHE_SHIFT_4 323 select HAVE_LEGACY_CLK 324 help 325 Support for BCM63XX based boards 326 327config MIPS_COBALT 328 bool "Cobalt Server" 329 select CEVT_R4K 330 select CSRC_R4K 331 select CEVT_GT641XX 332 select DMA_NONCOHERENT 333 select FORCE_PCI 334 select I8253 335 select I8259 336 select IRQ_MIPS_CPU 337 select IRQ_GT641XX 338 select PCI_GT64XXX_PCI0 339 select SYS_HAS_CPU_NEVADA 340 select SYS_HAS_EARLY_PRINTK 341 select SYS_SUPPORTS_32BIT_KERNEL 342 select SYS_SUPPORTS_64BIT_KERNEL 343 select SYS_SUPPORTS_LITTLE_ENDIAN 344 select USE_GENERIC_EARLY_PRINTK_8250 345 346config MACH_DECSTATION 347 bool "DECstations" 348 select BOOT_ELF32 349 select CEVT_DS1287 350 select CEVT_R4K if CPU_R4X00 351 select CSRC_IOASIC 352 select CSRC_R4K if CPU_R4X00 353 select CPU_DADDI_WORKAROUNDS if 64BIT 354 select CPU_R4000_WORKAROUNDS if 64BIT 355 select CPU_R4400_WORKAROUNDS if 64BIT 356 select DMA_NONCOHERENT 357 select NO_IOPORT_MAP 358 select IRQ_MIPS_CPU 359 select SYS_HAS_CPU_R3000 360 select SYS_HAS_CPU_R4X00 361 select SYS_SUPPORTS_32BIT_KERNEL 362 select SYS_SUPPORTS_64BIT_KERNEL 363 select SYS_SUPPORTS_LITTLE_ENDIAN 364 select SYS_SUPPORTS_128HZ 365 select SYS_SUPPORTS_256HZ 366 select SYS_SUPPORTS_1024HZ 367 select MIPS_L1_CACHE_SHIFT_4 368 help 369 This enables support for DEC's MIPS based workstations. For details 370 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the 371 DECstation porting pages on <http://decstation.unix-ag.org/>. 372 373 If you have one of the following DECstation Models you definitely 374 want to choose R4xx0 for the CPU Type: 375 376 DECstation 5000/50 377 DECstation 5000/150 378 DECstation 5000/260 379 DECsystem 5900/260 380 381 otherwise choose R3000. 382 383config MACH_JAZZ 384 bool "Jazz family of machines" 385 select ARC_MEMORY 386 select ARC_PROMLIB 387 select ARCH_MIGHT_HAVE_PC_PARPORT 388 select ARCH_MIGHT_HAVE_PC_SERIO 389 select DMA_OPS 390 select FW_ARC 391 select FW_ARC32 392 select ARCH_MAY_HAVE_PC_FDC 393 select CEVT_R4K 394 select CSRC_R4K 395 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN 396 select GENERIC_ISA_DMA 397 select HAVE_PCSPKR_PLATFORM 398 select IRQ_MIPS_CPU 399 select I8253 400 select I8259 401 select ISA 402 select SYS_HAS_CPU_R4X00 403 select SYS_SUPPORTS_32BIT_KERNEL 404 select SYS_SUPPORTS_64BIT_KERNEL 405 select SYS_SUPPORTS_100HZ 406 select SYS_SUPPORTS_LITTLE_ENDIAN 407 help 408 This a family of machines based on the MIPS R4030 chipset which was 409 used by several vendors to build RISC/os and Windows NT workstations. 410 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and 411 Olivetti M700-10 workstations. 412 413config MACH_INGENIC_SOC 414 bool "Ingenic SoC based machines" 415 select MIPS_GENERIC 416 select MACH_INGENIC 417 select SYS_SUPPORTS_ZBOOT_UART16550 418 select CPU_SUPPORTS_CPUFREQ 419 select MIPS_EXTERNAL_TIMER 420 421config LANTIQ 422 bool "Lantiq based platforms" 423 select DMA_NONCOHERENT 424 select IRQ_MIPS_CPU 425 select CEVT_R4K 426 select CSRC_R4K 427 select NO_EXCEPT_FILL 428 select SYS_HAS_CPU_MIPS32_R1 429 select SYS_HAS_CPU_MIPS32_R2 430 select SYS_SUPPORTS_BIG_ENDIAN 431 select SYS_SUPPORTS_32BIT_KERNEL 432 select SYS_SUPPORTS_MIPS16 433 select SYS_SUPPORTS_MULTITHREADING 434 select SYS_SUPPORTS_VPE_LOADER 435 select SYS_HAS_EARLY_PRINTK 436 select GPIOLIB 437 select SWAP_IO_SPACE 438 select BOOT_RAW 439 select HAVE_LEGACY_CLK 440 select USE_OF 441 select PINCTRL 442 select PINCTRL_LANTIQ 443 select ARCH_HAS_RESET_CONTROLLER 444 select RESET_CONTROLLER 445 446config MACH_LOONGSON32 447 bool "Loongson 32-bit family of machines" 448 select SYS_SUPPORTS_ZBOOT 449 help 450 This enables support for the Loongson-1 family of machines. 451 452 Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by 453 the Institute of Computing Technology (ICT), Chinese Academy of 454 Sciences (CAS). 455 456config MACH_LOONGSON2EF 457 bool "Loongson-2E/F family of machines" 458 select SYS_SUPPORTS_ZBOOT 459 help 460 This enables the support of early Loongson-2E/F family of machines. 461 462config MACH_LOONGSON64 463 bool "Loongson 64-bit family of machines" 464 select ARCH_DMA_DEFAULT_COHERENT 465 select ARCH_SPARSEMEM_ENABLE 466 select ARCH_MIGHT_HAVE_PC_PARPORT 467 select ARCH_MIGHT_HAVE_PC_SERIO 468 select GENERIC_ISA_DMA_SUPPORT_BROKEN 469 select BOOT_ELF32 470 select BOARD_SCACHE 471 select CSRC_R4K 472 select CEVT_R4K 473 select FORCE_PCI 474 select ISA 475 select I8259 476 select IRQ_MIPS_CPU 477 select NO_EXCEPT_FILL 478 select NR_CPUS_DEFAULT_64 479 select USE_GENERIC_EARLY_PRINTK_8250 480 select PCI_DRIVERS_GENERIC 481 select SYS_HAS_CPU_LOONGSON64 482 select SYS_HAS_EARLY_PRINTK 483 select SYS_SUPPORTS_SMP 484 select SYS_SUPPORTS_HOTPLUG_CPU 485 select SYS_SUPPORTS_NUMA 486 select SYS_SUPPORTS_64BIT_KERNEL 487 select SYS_SUPPORTS_HIGHMEM 488 select SYS_SUPPORTS_LITTLE_ENDIAN 489 select SYS_SUPPORTS_ZBOOT 490 select SYS_SUPPORTS_RELOCATABLE 491 select ZONE_DMA32 492 select COMMON_CLK 493 select USE_OF 494 select BUILTIN_DTB 495 select PCI_HOST_GENERIC 496 select HAVE_ARCH_NODEDATA_EXTENSION if NUMA 497 help 498 This enables the support of Loongson-2/3 family of machines. 499 500 Loongson-2 and Loongson-3 are 64-bit general-purpose processors with 501 GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E 502 and Loongson-2F which will be removed), developed by the Institute 503 of Computing Technology (ICT), Chinese Academy of Sciences (CAS). 504 505config MIPS_MALTA 506 bool "MIPS Malta board" 507 select ARCH_MAY_HAVE_PC_FDC 508 select ARCH_MIGHT_HAVE_PC_PARPORT 509 select ARCH_MIGHT_HAVE_PC_SERIO 510 select BOOT_ELF32 511 select BOOT_RAW 512 select BUILTIN_DTB 513 select CEVT_R4K 514 select CLKSRC_MIPS_GIC 515 select COMMON_CLK 516 select CSRC_R4K 517 select DMA_NONCOHERENT 518 select GENERIC_ISA_DMA 519 select HAVE_PCSPKR_PLATFORM 520 select HAVE_PCI 521 select I8253 522 select I8259 523 select IRQ_MIPS_CPU 524 select MIPS_BONITO64 525 select MIPS_CPU_SCACHE 526 select MIPS_GIC 527 select MIPS_L1_CACHE_SHIFT_6 528 select MIPS_MSC 529 select PCI_GT64XXX_PCI0 530 select SMP_UP if SMP 531 select SWAP_IO_SPACE 532 select SYS_HAS_CPU_MIPS32_R1 533 select SYS_HAS_CPU_MIPS32_R2 534 select SYS_HAS_CPU_MIPS32_R3_5 535 select SYS_HAS_CPU_MIPS32_R5 536 select SYS_HAS_CPU_MIPS32_R6 537 select SYS_HAS_CPU_MIPS64_R1 538 select SYS_HAS_CPU_MIPS64_R2 539 select SYS_HAS_CPU_MIPS64_R6 540 select SYS_HAS_CPU_NEVADA 541 select SYS_HAS_CPU_RM7000 542 select SYS_SUPPORTS_32BIT_KERNEL 543 select SYS_SUPPORTS_64BIT_KERNEL 544 select SYS_SUPPORTS_BIG_ENDIAN 545 select SYS_SUPPORTS_HIGHMEM 546 select SYS_SUPPORTS_LITTLE_ENDIAN 547 select SYS_SUPPORTS_MICROMIPS 548 select SYS_SUPPORTS_MIPS16 549 select SYS_SUPPORTS_MIPS_CPS 550 select SYS_SUPPORTS_MULTITHREADING 551 select SYS_SUPPORTS_RELOCATABLE 552 select SYS_SUPPORTS_SMARTMIPS 553 select SYS_SUPPORTS_VPE_LOADER 554 select SYS_SUPPORTS_ZBOOT 555 select USE_OF 556 select WAR_ICACHE_REFILLS 557 select ZONE_DMA32 if 64BIT 558 help 559 This enables support for the MIPS Technologies Malta evaluation 560 board. 561 562config MACH_PIC32 563 bool "Microchip PIC32 Family" 564 help 565 This enables support for the Microchip PIC32 family of platforms. 566 567 Microchip PIC32 is a family of general-purpose 32 bit MIPS core 568 microcontrollers. 569 570config MACH_NINTENDO64 571 bool "Nintendo 64 console" 572 select CEVT_R4K 573 select CSRC_R4K 574 select SYS_HAS_CPU_R4300 575 select SYS_SUPPORTS_BIG_ENDIAN 576 select SYS_SUPPORTS_ZBOOT 577 select SYS_SUPPORTS_32BIT_KERNEL 578 select SYS_SUPPORTS_64BIT_KERNEL 579 select DMA_NONCOHERENT 580 select IRQ_MIPS_CPU 581 582config RALINK 583 bool "Ralink based machines" 584 select CEVT_R4K 585 select COMMON_CLK 586 select CSRC_R4K 587 select BOOT_RAW 588 select DMA_NONCOHERENT 589 select IRQ_MIPS_CPU 590 select USE_OF 591 select SYS_HAS_CPU_MIPS32_R2 592 select SYS_SUPPORTS_32BIT_KERNEL 593 select SYS_SUPPORTS_LITTLE_ENDIAN 594 select SYS_SUPPORTS_MIPS16 595 select SYS_SUPPORTS_ZBOOT 596 select SYS_HAS_EARLY_PRINTK 597 select ARCH_HAS_RESET_CONTROLLER 598 select RESET_CONTROLLER 599 600config MACH_REALTEK_RTL 601 bool "Realtek RTL838x/RTL839x based machines" 602 select MIPS_GENERIC 603 select DMA_NONCOHERENT 604 select IRQ_MIPS_CPU 605 select CSRC_R4K 606 select CEVT_R4K 607 select SYS_HAS_CPU_MIPS32_R1 608 select SYS_HAS_CPU_MIPS32_R2 609 select SYS_SUPPORTS_BIG_ENDIAN 610 select SYS_SUPPORTS_32BIT_KERNEL 611 select SYS_SUPPORTS_MIPS16 612 select SYS_SUPPORTS_MULTITHREADING 613 select SYS_SUPPORTS_VPE_LOADER 614 select BOOT_RAW 615 select PINCTRL 616 select USE_OF 617 618config SGI_IP22 619 bool "SGI IP22 (Indy/Indigo2)" 620 select ARC_MEMORY 621 select ARC_PROMLIB 622 select FW_ARC 623 select FW_ARC32 624 select ARCH_MIGHT_HAVE_PC_SERIO 625 select BOOT_ELF32 626 select CEVT_R4K 627 select CSRC_R4K 628 select DEFAULT_SGI_PARTITION 629 select DMA_NONCOHERENT 630 select HAVE_EISA 631 select I8253 632 select I8259 633 select IP22_CPU_SCACHE 634 select IRQ_MIPS_CPU 635 select GENERIC_ISA_DMA_SUPPORT_BROKEN 636 select SGI_HAS_I8042 637 select SGI_HAS_INDYDOG 638 select SGI_HAS_HAL2 639 select SGI_HAS_SEEQ 640 select SGI_HAS_WD93 641 select SGI_HAS_ZILOG 642 select SWAP_IO_SPACE 643 select SYS_HAS_CPU_R4X00 644 select SYS_HAS_CPU_R5000 645 select SYS_HAS_EARLY_PRINTK 646 select SYS_SUPPORTS_32BIT_KERNEL 647 select SYS_SUPPORTS_64BIT_KERNEL 648 select SYS_SUPPORTS_BIG_ENDIAN 649 select WAR_R4600_V1_INDEX_ICACHEOP 650 select WAR_R4600_V1_HIT_CACHEOP 651 select WAR_R4600_V2_HIT_CACHEOP 652 select MIPS_L1_CACHE_SHIFT_7 653 help 654 This are the SGI Indy, Challenge S and Indigo2, as well as certain 655 OEM variants like the Tandem CMN B006S. To compile a Linux kernel 656 that runs on these, say Y here. 657 658config SGI_IP27 659 bool "SGI IP27 (Origin200/2000)" 660 select ARCH_HAS_PHYS_TO_DMA 661 select ARCH_SPARSEMEM_ENABLE 662 select FW_ARC 663 select FW_ARC64 664 select ARC_CMDLINE_ONLY 665 select BOOT_ELF64 666 select DEFAULT_SGI_PARTITION 667 select FORCE_PCI 668 select SYS_HAS_EARLY_PRINTK 669 select HAVE_PCI 670 select IRQ_MIPS_CPU 671 select IRQ_DOMAIN_HIERARCHY 672 select NR_CPUS_DEFAULT_64 673 select PCI_DRIVERS_GENERIC 674 select PCI_XTALK_BRIDGE 675 select SYS_HAS_CPU_R10000 676 select SYS_SUPPORTS_64BIT_KERNEL 677 select SYS_SUPPORTS_BIG_ENDIAN 678 select SYS_SUPPORTS_NUMA 679 select SYS_SUPPORTS_SMP 680 select WAR_R10000_LLSC 681 select MIPS_L1_CACHE_SHIFT_7 682 select NUMA 683 select HAVE_ARCH_NODEDATA_EXTENSION 684 help 685 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics 686 workstations. To compile a Linux kernel that runs on these, say Y 687 here. 688 689config SGI_IP28 690 bool "SGI IP28 (Indigo2 R10k)" 691 select ARC_MEMORY 692 select ARC_PROMLIB 693 select FW_ARC 694 select FW_ARC64 695 select ARCH_MIGHT_HAVE_PC_SERIO 696 select BOOT_ELF64 697 select CEVT_R4K 698 select CSRC_R4K 699 select DEFAULT_SGI_PARTITION 700 select DMA_NONCOHERENT 701 select GENERIC_ISA_DMA_SUPPORT_BROKEN 702 select IRQ_MIPS_CPU 703 select HAVE_EISA 704 select I8253 705 select I8259 706 select SGI_HAS_I8042 707 select SGI_HAS_INDYDOG 708 select SGI_HAS_HAL2 709 select SGI_HAS_SEEQ 710 select SGI_HAS_WD93 711 select SGI_HAS_ZILOG 712 select SWAP_IO_SPACE 713 select SYS_HAS_CPU_R10000 714 select SYS_HAS_EARLY_PRINTK 715 select SYS_SUPPORTS_64BIT_KERNEL 716 select SYS_SUPPORTS_BIG_ENDIAN 717 select WAR_R10000_LLSC 718 select MIPS_L1_CACHE_SHIFT_7 719 help 720 This is the SGI Indigo2 with R10000 processor. To compile a Linux 721 kernel that runs on these, say Y here. 722 723config SGI_IP30 724 bool "SGI IP30 (Octane/Octane2)" 725 select ARCH_HAS_PHYS_TO_DMA 726 select FW_ARC 727 select FW_ARC64 728 select BOOT_ELF64 729 select CEVT_R4K 730 select CSRC_R4K 731 select FORCE_PCI 732 select SYNC_R4K if SMP 733 select ZONE_DMA32 734 select HAVE_PCI 735 select IRQ_MIPS_CPU 736 select IRQ_DOMAIN_HIERARCHY 737 select PCI_DRIVERS_GENERIC 738 select PCI_XTALK_BRIDGE 739 select SYS_HAS_EARLY_PRINTK 740 select SYS_HAS_CPU_R10000 741 select SYS_SUPPORTS_64BIT_KERNEL 742 select SYS_SUPPORTS_BIG_ENDIAN 743 select SYS_SUPPORTS_SMP 744 select WAR_R10000_LLSC 745 select MIPS_L1_CACHE_SHIFT_7 746 select ARC_MEMORY 747 help 748 These are the SGI Octane and Octane2 graphics workstations. To 749 compile a Linux kernel that runs on these, say Y here. 750 751config SGI_IP32 752 bool "SGI IP32 (O2)" 753 select ARC_MEMORY 754 select ARC_PROMLIB 755 select ARCH_HAS_PHYS_TO_DMA 756 select FW_ARC 757 select FW_ARC32 758 select BOOT_ELF32 759 select CEVT_R4K 760 select CSRC_R4K 761 select DMA_NONCOHERENT 762 select HAVE_PCI 763 select IRQ_MIPS_CPU 764 select R5000_CPU_SCACHE 765 select RM7000_CPU_SCACHE 766 select SYS_HAS_CPU_R5000 767 select SYS_HAS_CPU_R10000 if BROKEN 768 select SYS_HAS_CPU_RM7000 769 select SYS_HAS_CPU_NEVADA 770 select SYS_SUPPORTS_64BIT_KERNEL 771 select SYS_SUPPORTS_BIG_ENDIAN 772 select WAR_ICACHE_REFILLS 773 help 774 If you want this kernel to run on SGI O2 workstation, say Y here. 775 776config SIBYTE_CRHONE 777 bool "Sibyte BCM91125C-CRhone" 778 select BOOT_ELF32 779 select SIBYTE_BCM1125 780 select SWAP_IO_SPACE 781 select SYS_HAS_CPU_SB1 782 select SYS_SUPPORTS_BIG_ENDIAN 783 select SYS_SUPPORTS_HIGHMEM 784 select SYS_SUPPORTS_LITTLE_ENDIAN 785 786config SIBYTE_RHONE 787 bool "Sibyte BCM91125E-Rhone" 788 select BOOT_ELF32 789 select SIBYTE_SB1250 790 select SWAP_IO_SPACE 791 select SYS_HAS_CPU_SB1 792 select SYS_SUPPORTS_BIG_ENDIAN 793 select SYS_SUPPORTS_LITTLE_ENDIAN 794 795config SIBYTE_SWARM 796 bool "Sibyte BCM91250A-SWARM" 797 select BOOT_ELF32 798 select HAVE_PATA_PLATFORM 799 select SIBYTE_SB1250 800 select SWAP_IO_SPACE 801 select SYS_HAS_CPU_SB1 802 select SYS_SUPPORTS_BIG_ENDIAN 803 select SYS_SUPPORTS_HIGHMEM 804 select SYS_SUPPORTS_LITTLE_ENDIAN 805 select ZONE_DMA32 if 64BIT 806 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI 807 808config SIBYTE_LITTLESUR 809 bool "Sibyte BCM91250C2-LittleSur" 810 select BOOT_ELF32 811 select HAVE_PATA_PLATFORM 812 select SIBYTE_SB1250 813 select SWAP_IO_SPACE 814 select SYS_HAS_CPU_SB1 815 select SYS_SUPPORTS_BIG_ENDIAN 816 select SYS_SUPPORTS_HIGHMEM 817 select SYS_SUPPORTS_LITTLE_ENDIAN 818 select ZONE_DMA32 if 64BIT 819 820config SIBYTE_SENTOSA 821 bool "Sibyte BCM91250E-Sentosa" 822 select BOOT_ELF32 823 select SIBYTE_SB1250 824 select SWAP_IO_SPACE 825 select SYS_HAS_CPU_SB1 826 select SYS_SUPPORTS_BIG_ENDIAN 827 select SYS_SUPPORTS_LITTLE_ENDIAN 828 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI 829 830config SIBYTE_BIGSUR 831 bool "Sibyte BCM91480B-BigSur" 832 select BOOT_ELF32 833 select NR_CPUS_DEFAULT_4 834 select SIBYTE_BCM1x80 835 select SWAP_IO_SPACE 836 select SYS_HAS_CPU_SB1 837 select SYS_SUPPORTS_BIG_ENDIAN 838 select SYS_SUPPORTS_HIGHMEM 839 select SYS_SUPPORTS_LITTLE_ENDIAN 840 select ZONE_DMA32 if 64BIT 841 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI 842 843config SNI_RM 844 bool "SNI RM200/300/400" 845 select ARC_MEMORY 846 select ARC_PROMLIB 847 select FW_ARC if CPU_LITTLE_ENDIAN 848 select FW_ARC32 if CPU_LITTLE_ENDIAN 849 select FW_SNIPROM if CPU_BIG_ENDIAN 850 select ARCH_MAY_HAVE_PC_FDC 851 select ARCH_MIGHT_HAVE_PC_PARPORT 852 select ARCH_MIGHT_HAVE_PC_SERIO 853 select BOOT_ELF32 854 select CEVT_R4K 855 select CSRC_R4K 856 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN 857 select DMA_NONCOHERENT 858 select GENERIC_ISA_DMA 859 select HAVE_EISA 860 select HAVE_PCSPKR_PLATFORM 861 select HAVE_PCI 862 select IRQ_MIPS_CPU 863 select I8253 864 select I8259 865 select ISA 866 select MIPS_L1_CACHE_SHIFT_6 867 select SWAP_IO_SPACE if CPU_BIG_ENDIAN 868 select SYS_HAS_CPU_R4X00 869 select SYS_HAS_CPU_R5000 870 select SYS_HAS_CPU_R10000 871 select R5000_CPU_SCACHE 872 select SYS_HAS_EARLY_PRINTK 873 select SYS_SUPPORTS_32BIT_KERNEL 874 select SYS_SUPPORTS_64BIT_KERNEL 875 select SYS_SUPPORTS_BIG_ENDIAN 876 select SYS_SUPPORTS_HIGHMEM 877 select SYS_SUPPORTS_LITTLE_ENDIAN 878 select WAR_R4600_V2_HIT_CACHEOP 879 help 880 The SNI RM200/300/400 are MIPS-based machines manufactured by 881 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid 882 Technology and now in turn merged with Fujitsu. Say Y here to 883 support this machine type. 884 885config MACH_TX49XX 886 bool "Toshiba TX49 series based machines" 887 select WAR_TX49XX_ICACHE_INDEX_INV 888 889config MIKROTIK_RB532 890 bool "Mikrotik RB532 boards" 891 select CEVT_R4K 892 select CSRC_R4K 893 select DMA_NONCOHERENT 894 select HAVE_PCI 895 select IRQ_MIPS_CPU 896 select SYS_HAS_CPU_MIPS32_R1 897 select SYS_SUPPORTS_32BIT_KERNEL 898 select SYS_SUPPORTS_LITTLE_ENDIAN 899 select SWAP_IO_SPACE 900 select BOOT_RAW 901 select GPIOLIB 902 select MIPS_L1_CACHE_SHIFT_4 903 help 904 Support the Mikrotik(tm) RouterBoard 532 series, 905 based on the IDT RC32434 SoC. 906 907config CAVIUM_OCTEON_SOC 908 bool "Cavium Networks Octeon SoC based boards" 909 select CEVT_R4K 910 select ARCH_HAS_PHYS_TO_DMA 911 select HAVE_RAPIDIO 912 select PHYS_ADDR_T_64BIT 913 select SYS_SUPPORTS_64BIT_KERNEL 914 select SYS_SUPPORTS_BIG_ENDIAN 915 select EDAC_SUPPORT 916 select EDAC_ATOMIC_SCRUB 917 select SYS_SUPPORTS_LITTLE_ENDIAN 918 select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN 919 select SYS_HAS_EARLY_PRINTK 920 select SYS_HAS_CPU_CAVIUM_OCTEON 921 select HAVE_PCI 922 select HAVE_PLAT_DELAY 923 select HAVE_PLAT_FW_INIT_CMDLINE 924 select HAVE_PLAT_MEMCPY 925 select ZONE_DMA32 926 select GPIOLIB 927 select USE_OF 928 select ARCH_SPARSEMEM_ENABLE 929 select SYS_SUPPORTS_SMP 930 select NR_CPUS_DEFAULT_64 931 select MIPS_NR_CPU_NR_MAP_1024 932 select BUILTIN_DTB 933 select MTD 934 select MTD_COMPLEX_MAPPINGS 935 select SWIOTLB 936 select SYS_SUPPORTS_RELOCATABLE 937 help 938 This option supports all of the Octeon reference boards from Cavium 939 Networks. It builds a kernel that dynamically determines the Octeon 940 CPU type and supports all known board reference implementations. 941 Some of the supported boards are: 942 EBT3000 943 EBH3000 944 EBH3100 945 Thunder 946 Kodama 947 Hikari 948 Say Y here for most Octeon reference boards. 949 950endchoice 951 952source "arch/mips/alchemy/Kconfig" 953source "arch/mips/ath25/Kconfig" 954source "arch/mips/ath79/Kconfig" 955source "arch/mips/bcm47xx/Kconfig" 956source "arch/mips/bcm63xx/Kconfig" 957source "arch/mips/bmips/Kconfig" 958source "arch/mips/generic/Kconfig" 959source "arch/mips/ingenic/Kconfig" 960source "arch/mips/jazz/Kconfig" 961source "arch/mips/lantiq/Kconfig" 962source "arch/mips/pic32/Kconfig" 963source "arch/mips/ralink/Kconfig" 964source "arch/mips/sgi-ip27/Kconfig" 965source "arch/mips/sibyte/Kconfig" 966source "arch/mips/txx9/Kconfig" 967source "arch/mips/cavium-octeon/Kconfig" 968source "arch/mips/loongson2ef/Kconfig" 969source "arch/mips/loongson32/Kconfig" 970source "arch/mips/loongson64/Kconfig" 971 972endmenu 973 974config GENERIC_HWEIGHT 975 bool 976 default y 977 978config GENERIC_CALIBRATE_DELAY 979 bool 980 default y 981 982config SCHED_OMIT_FRAME_POINTER 983 bool 984 default y 985 986# 987# Select some configuration options automatically based on user selections. 988# 989config FW_ARC 990 bool 991 992config ARCH_MAY_HAVE_PC_FDC 993 bool 994 995config BOOT_RAW 996 bool 997 998config CEVT_BCM1480 999 bool 1000 1001config CEVT_DS1287 1002 bool 1003 1004config CEVT_GT641XX 1005 bool 1006 1007config CEVT_R4K 1008 bool 1009 1010config CEVT_SB1250 1011 bool 1012 1013config CEVT_TXX9 1014 bool 1015 1016config CSRC_BCM1480 1017 bool 1018 1019config CSRC_IOASIC 1020 bool 1021 1022config CSRC_R4K 1023 select CLOCKSOURCE_WATCHDOG if CPU_FREQ 1024 bool 1025 1026config CSRC_SB1250 1027 bool 1028 1029config MIPS_CLOCK_VSYSCALL 1030 def_bool CSRC_R4K || CLKSRC_MIPS_GIC 1031 1032config GPIO_TXX9 1033 select GPIOLIB 1034 bool 1035 1036config FW_CFE 1037 bool 1038 1039config ARCH_SUPPORTS_UPROBES 1040 def_bool y 1041 1042config DMA_NONCOHERENT 1043 bool 1044 # 1045 # MIPS allows mixing "slightly different" Cacheability and Coherency 1046 # Attribute bits. It is believed that the uncached access through 1047 # KSEG1 and the implementation specific "uncached accelerated" used 1048 # by pgprot_writcombine can be mixed, and the latter sometimes provides 1049 # significant advantages. 1050 # 1051 select ARCH_HAS_SETUP_DMA_OPS 1052 select ARCH_HAS_DMA_WRITE_COMBINE 1053 select ARCH_HAS_DMA_PREP_COHERENT 1054 select ARCH_HAS_SYNC_DMA_FOR_CPU 1055 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 1056 select ARCH_HAS_DMA_SET_UNCACHED 1057 select DMA_NONCOHERENT_MMAP 1058 select NEED_DMA_MAP_STATE 1059 1060config SYS_HAS_EARLY_PRINTK 1061 bool 1062 1063config SYS_SUPPORTS_HOTPLUG_CPU 1064 bool 1065 1066config MIPS_BONITO64 1067 bool 1068 1069config MIPS_MSC 1070 bool 1071 1072config SYNC_R4K 1073 bool 1074 1075config NO_IOPORT_MAP 1076 def_bool n 1077 1078config GENERIC_CSUM 1079 def_bool CPU_NO_LOAD_STORE_LR 1080 1081config GENERIC_ISA_DMA 1082 bool 1083 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n 1084 select ISA_DMA_API 1085 1086config GENERIC_ISA_DMA_SUPPORT_BROKEN 1087 bool 1088 select GENERIC_ISA_DMA 1089 1090config HAVE_PLAT_DELAY 1091 bool 1092 1093config HAVE_PLAT_FW_INIT_CMDLINE 1094 bool 1095 1096config HAVE_PLAT_MEMCPY 1097 bool 1098 1099config ISA_DMA_API 1100 bool 1101 1102config SYS_SUPPORTS_RELOCATABLE 1103 bool 1104 help 1105 Selected if the platform supports relocating the kernel. 1106 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF 1107 to allow access to command line and entropy sources. 1108 1109# 1110# Endianness selection. Sufficiently obscure so many users don't know what to 1111# answer,so we try hard to limit the available choices. Also the use of a 1112# choice statement should be more obvious to the user. 1113# 1114choice 1115 prompt "Endianness selection" 1116 help 1117 Some MIPS machines can be configured for either little or big endian 1118 byte order. These modes require different kernels and a different 1119 Linux distribution. In general there is one preferred byteorder for a 1120 particular system but some systems are just as commonly used in the 1121 one or the other endianness. 1122 1123config CPU_BIG_ENDIAN 1124 bool "Big endian" 1125 depends on SYS_SUPPORTS_BIG_ENDIAN 1126 1127config CPU_LITTLE_ENDIAN 1128 bool "Little endian" 1129 depends on SYS_SUPPORTS_LITTLE_ENDIAN 1130 1131endchoice 1132 1133config EXPORT_UASM 1134 bool 1135 1136config SYS_SUPPORTS_APM_EMULATION 1137 bool 1138 1139config SYS_SUPPORTS_BIG_ENDIAN 1140 bool 1141 1142config SYS_SUPPORTS_LITTLE_ENDIAN 1143 bool 1144 1145config MIPS_HUGE_TLB_SUPPORT 1146 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE 1147 1148config IRQ_TXX9 1149 bool 1150 1151config IRQ_GT641XX 1152 bool 1153 1154config PCI_GT64XXX_PCI0 1155 bool 1156 1157config PCI_XTALK_BRIDGE 1158 bool 1159 1160config NO_EXCEPT_FILL 1161 bool 1162 1163config MIPS_SPRAM 1164 bool 1165 1166config SWAP_IO_SPACE 1167 bool 1168 1169config SGI_HAS_INDYDOG 1170 bool 1171 1172config SGI_HAS_HAL2 1173 bool 1174 1175config SGI_HAS_SEEQ 1176 bool 1177 1178config SGI_HAS_WD93 1179 bool 1180 1181config SGI_HAS_ZILOG 1182 bool 1183 1184config SGI_HAS_I8042 1185 bool 1186 1187config DEFAULT_SGI_PARTITION 1188 bool 1189 1190config FW_ARC32 1191 bool 1192 1193config FW_SNIPROM 1194 bool 1195 1196config BOOT_ELF32 1197 bool 1198 1199config MIPS_L1_CACHE_SHIFT_4 1200 bool 1201 1202config MIPS_L1_CACHE_SHIFT_5 1203 bool 1204 1205config MIPS_L1_CACHE_SHIFT_6 1206 bool 1207 1208config MIPS_L1_CACHE_SHIFT_7 1209 bool 1210 1211config MIPS_L1_CACHE_SHIFT 1212 int 1213 default "7" if MIPS_L1_CACHE_SHIFT_7 1214 default "6" if MIPS_L1_CACHE_SHIFT_6 1215 default "5" if MIPS_L1_CACHE_SHIFT_5 1216 default "4" if MIPS_L1_CACHE_SHIFT_4 1217 default "5" 1218 1219config ARC_CMDLINE_ONLY 1220 bool 1221 1222config ARC_CONSOLE 1223 bool "ARC console support" 1224 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN) 1225 1226config ARC_MEMORY 1227 bool 1228 1229config ARC_PROMLIB 1230 bool 1231 1232config FW_ARC64 1233 bool 1234 1235config BOOT_ELF64 1236 bool 1237 1238menu "CPU selection" 1239 1240choice 1241 prompt "CPU type" 1242 default CPU_R4X00 1243 1244config CPU_LOONGSON64 1245 bool "Loongson 64-bit CPU" 1246 depends on SYS_HAS_CPU_LOONGSON64 1247 select ARCH_HAS_PHYS_TO_DMA 1248 select CPU_MIPSR2 1249 select CPU_HAS_PREFETCH 1250 select CPU_SUPPORTS_64BIT_KERNEL 1251 select CPU_SUPPORTS_HIGHMEM 1252 select CPU_SUPPORTS_HUGEPAGES 1253 select CPU_SUPPORTS_MSA 1254 select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT 1255 select CPU_MIPSR2_IRQ_VI 1256 select DMA_NONCOHERENT 1257 select WEAK_ORDERING 1258 select WEAK_REORDERING_BEYOND_LLSC 1259 select MIPS_ASID_BITS_VARIABLE 1260 select MIPS_PGD_C0_CONTEXT 1261 select MIPS_L1_CACHE_SHIFT_6 1262 select MIPS_FP_SUPPORT 1263 select GPIOLIB 1264 select SWIOTLB 1265 select HAVE_KVM 1266 help 1267 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor 1268 cores implements the MIPS64R2 instruction set with many extensions, 1269 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000, 1270 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old 1271 Loongson-2E/2F is not covered here and will be removed in future. 1272 1273config LOONGSON3_ENHANCEMENT 1274 bool "New Loongson-3 CPU Enhancements" 1275 default n 1276 depends on CPU_LOONGSON64 1277 help 1278 New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A 1279 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as 1280 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User 1281 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer), 1282 Fast TLB refill support, etc. 1283 1284 This option enable those enhancements which are not probed at run 1285 time. If you want a generic kernel to run on all Loongson 3 machines, 1286 please say 'N' here. If you want a high-performance kernel to run on 1287 new Loongson-3 machines only, please say 'Y' here. 1288 1289config CPU_LOONGSON3_WORKAROUNDS 1290 bool "Loongson-3 LLSC Workarounds" 1291 default y if SMP 1292 depends on CPU_LOONGSON64 1293 help 1294 Loongson-3 processors have the llsc issues which require workarounds. 1295 Without workarounds the system may hang unexpectedly. 1296 1297 Say Y, unless you know what you are doing. 1298 1299config CPU_LOONGSON3_CPUCFG_EMULATION 1300 bool "Emulate the CPUCFG instruction on older Loongson cores" 1301 default y 1302 depends on CPU_LOONGSON64 1303 help 1304 Loongson-3A R4 and newer have the CPUCFG instruction available for 1305 userland to query CPU capabilities, much like CPUID on x86. This 1306 option provides emulation of the instruction on older Loongson 1307 cores, back to Loongson-3A1000. 1308 1309 If unsure, please say Y. 1310 1311config CPU_LOONGSON2E 1312 bool "Loongson 2E" 1313 depends on SYS_HAS_CPU_LOONGSON2E 1314 select CPU_LOONGSON2EF 1315 help 1316 The Loongson 2E processor implements the MIPS III instruction set 1317 with many extensions. 1318 1319 It has an internal FPGA northbridge, which is compatible to 1320 bonito64. 1321 1322config CPU_LOONGSON2F 1323 bool "Loongson 2F" 1324 depends on SYS_HAS_CPU_LOONGSON2F 1325 select CPU_LOONGSON2EF 1326 help 1327 The Loongson 2F processor implements the MIPS III instruction set 1328 with many extensions. 1329 1330 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller 1331 have a similar programming interface with FPGA northbridge used in 1332 Loongson2E. 1333 1334config CPU_LOONGSON1B 1335 bool "Loongson 1B" 1336 depends on SYS_HAS_CPU_LOONGSON1B 1337 select CPU_LOONGSON32 1338 select LEDS_GPIO_REGISTER 1339 help 1340 The Loongson 1B is a 32-bit SoC, which implements the MIPS32 1341 Release 1 instruction set and part of the MIPS32 Release 2 1342 instruction set. 1343 1344config CPU_LOONGSON1C 1345 bool "Loongson 1C" 1346 depends on SYS_HAS_CPU_LOONGSON1C 1347 select CPU_LOONGSON32 1348 select LEDS_GPIO_REGISTER 1349 help 1350 The Loongson 1C is a 32-bit SoC, which implements the MIPS32 1351 Release 1 instruction set and part of the MIPS32 Release 2 1352 instruction set. 1353 1354config CPU_MIPS32_R1 1355 bool "MIPS32 Release 1" 1356 depends on SYS_HAS_CPU_MIPS32_R1 1357 select CPU_HAS_PREFETCH 1358 select CPU_SUPPORTS_32BIT_KERNEL 1359 select CPU_SUPPORTS_HIGHMEM 1360 help 1361 Choose this option to build a kernel for release 1 or later of the 1362 MIPS32 architecture. Most modern embedded systems with a 32-bit 1363 MIPS processor are based on a MIPS32 processor. If you know the 1364 specific type of processor in your system, choose those that one 1365 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. 1366 Release 2 of the MIPS32 architecture is available since several 1367 years so chances are you even have a MIPS32 Release 2 processor 1368 in which case you should choose CPU_MIPS32_R2 instead for better 1369 performance. 1370 1371config CPU_MIPS32_R2 1372 bool "MIPS32 Release 2" 1373 depends on SYS_HAS_CPU_MIPS32_R2 1374 select CPU_HAS_PREFETCH 1375 select CPU_SUPPORTS_32BIT_KERNEL 1376 select CPU_SUPPORTS_HIGHMEM 1377 select CPU_SUPPORTS_MSA 1378 select HAVE_KVM 1379 help 1380 Choose this option to build a kernel for release 2 or later of the 1381 MIPS32 architecture. Most modern embedded systems with a 32-bit 1382 MIPS processor are based on a MIPS32 processor. If you know the 1383 specific type of processor in your system, choose those that one 1384 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. 1385 1386config CPU_MIPS32_R5 1387 bool "MIPS32 Release 5" 1388 depends on SYS_HAS_CPU_MIPS32_R5 1389 select CPU_HAS_PREFETCH 1390 select CPU_SUPPORTS_32BIT_KERNEL 1391 select CPU_SUPPORTS_HIGHMEM 1392 select CPU_SUPPORTS_MSA 1393 select HAVE_KVM 1394 select MIPS_O32_FP64_SUPPORT 1395 help 1396 Choose this option to build a kernel for release 5 or later of the 1397 MIPS32 architecture. New MIPS processors, starting with the Warrior 1398 family, are based on a MIPS32r5 processor. If you own an older 1399 processor, you probably need to select MIPS32r1 or MIPS32r2 instead. 1400 1401config CPU_MIPS32_R6 1402 bool "MIPS32 Release 6" 1403 depends on SYS_HAS_CPU_MIPS32_R6 1404 select CPU_HAS_PREFETCH 1405 select CPU_NO_LOAD_STORE_LR 1406 select CPU_SUPPORTS_32BIT_KERNEL 1407 select CPU_SUPPORTS_HIGHMEM 1408 select CPU_SUPPORTS_MSA 1409 select HAVE_KVM 1410 select MIPS_O32_FP64_SUPPORT 1411 help 1412 Choose this option to build a kernel for release 6 or later of the 1413 MIPS32 architecture. New MIPS processors, starting with the Warrior 1414 family, are based on a MIPS32r6 processor. If you own an older 1415 processor, you probably need to select MIPS32r1 or MIPS32r2 instead. 1416 1417config CPU_MIPS64_R1 1418 bool "MIPS64 Release 1" 1419 depends on SYS_HAS_CPU_MIPS64_R1 1420 select CPU_HAS_PREFETCH 1421 select CPU_SUPPORTS_32BIT_KERNEL 1422 select CPU_SUPPORTS_64BIT_KERNEL 1423 select CPU_SUPPORTS_HIGHMEM 1424 select CPU_SUPPORTS_HUGEPAGES 1425 help 1426 Choose this option to build a kernel for release 1 or later of the 1427 MIPS64 architecture. Many modern embedded systems with a 64-bit 1428 MIPS processor are based on a MIPS64 processor. If you know the 1429 specific type of processor in your system, choose those that one 1430 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. 1431 Release 2 of the MIPS64 architecture is available since several 1432 years so chances are you even have a MIPS64 Release 2 processor 1433 in which case you should choose CPU_MIPS64_R2 instead for better 1434 performance. 1435 1436config CPU_MIPS64_R2 1437 bool "MIPS64 Release 2" 1438 depends on SYS_HAS_CPU_MIPS64_R2 1439 select CPU_HAS_PREFETCH 1440 select CPU_SUPPORTS_32BIT_KERNEL 1441 select CPU_SUPPORTS_64BIT_KERNEL 1442 select CPU_SUPPORTS_HIGHMEM 1443 select CPU_SUPPORTS_HUGEPAGES 1444 select CPU_SUPPORTS_MSA 1445 select HAVE_KVM 1446 help 1447 Choose this option to build a kernel for release 2 or later of the 1448 MIPS64 architecture. Many modern embedded systems with a 64-bit 1449 MIPS processor are based on a MIPS64 processor. If you know the 1450 specific type of processor in your system, choose those that one 1451 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. 1452 1453config CPU_MIPS64_R5 1454 bool "MIPS64 Release 5" 1455 depends on SYS_HAS_CPU_MIPS64_R5 1456 select CPU_HAS_PREFETCH 1457 select CPU_SUPPORTS_32BIT_KERNEL 1458 select CPU_SUPPORTS_64BIT_KERNEL 1459 select CPU_SUPPORTS_HIGHMEM 1460 select CPU_SUPPORTS_HUGEPAGES 1461 select CPU_SUPPORTS_MSA 1462 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 1463 select HAVE_KVM 1464 help 1465 Choose this option to build a kernel for release 5 or later of the 1466 MIPS64 architecture. This is a intermediate MIPS architecture 1467 release partly implementing release 6 features. Though there is no 1468 any hardware known to be based on this release. 1469 1470config CPU_MIPS64_R6 1471 bool "MIPS64 Release 6" 1472 depends on SYS_HAS_CPU_MIPS64_R6 1473 select CPU_HAS_PREFETCH 1474 select CPU_NO_LOAD_STORE_LR 1475 select CPU_SUPPORTS_32BIT_KERNEL 1476 select CPU_SUPPORTS_64BIT_KERNEL 1477 select CPU_SUPPORTS_HIGHMEM 1478 select CPU_SUPPORTS_HUGEPAGES 1479 select CPU_SUPPORTS_MSA 1480 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 1481 select HAVE_KVM 1482 help 1483 Choose this option to build a kernel for release 6 or later of the 1484 MIPS64 architecture. New MIPS processors, starting with the Warrior 1485 family, are based on a MIPS64r6 processor. If you own an older 1486 processor, you probably need to select MIPS64r1 or MIPS64r2 instead. 1487 1488config CPU_P5600 1489 bool "MIPS Warrior P5600" 1490 depends on SYS_HAS_CPU_P5600 1491 select CPU_HAS_PREFETCH 1492 select CPU_SUPPORTS_32BIT_KERNEL 1493 select CPU_SUPPORTS_HIGHMEM 1494 select CPU_SUPPORTS_MSA 1495 select CPU_SUPPORTS_CPUFREQ 1496 select CPU_MIPSR2_IRQ_VI 1497 select CPU_MIPSR2_IRQ_EI 1498 select HAVE_KVM 1499 select MIPS_O32_FP64_SUPPORT 1500 help 1501 Choose this option to build a kernel for MIPS Warrior P5600 CPU. 1502 It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes, 1503 MMU with two-levels TLB, UCA, MSA, MDU core level features and system 1504 level features like up to six P5600 calculation cores, CM2 with L2 1505 cache, IOCU/IOMMU (though might be unused depending on the system- 1506 specific IP core configuration), GIC, CPC, virtualisation module, 1507 eJTAG and PDtrace. 1508 1509config CPU_R3000 1510 bool "R3000" 1511 depends on SYS_HAS_CPU_R3000 1512 select CPU_HAS_WB 1513 select CPU_R3K_TLB 1514 select CPU_SUPPORTS_32BIT_KERNEL 1515 select CPU_SUPPORTS_HIGHMEM 1516 help 1517 Please make sure to pick the right CPU type. Linux/MIPS is not 1518 designed to be generic, i.e. Kernels compiled for R3000 CPUs will 1519 *not* work on R4000 machines and vice versa. However, since most 1520 of the supported machines have an R4000 (or similar) CPU, R4x00 1521 might be a safe bet. If the resulting kernel does not work, 1522 try to recompile with R3000. 1523 1524config CPU_R4300 1525 bool "R4300" 1526 depends on SYS_HAS_CPU_R4300 1527 select CPU_SUPPORTS_32BIT_KERNEL 1528 select CPU_SUPPORTS_64BIT_KERNEL 1529 help 1530 MIPS Technologies R4300-series processors. 1531 1532config CPU_R4X00 1533 bool "R4x00" 1534 depends on SYS_HAS_CPU_R4X00 1535 select CPU_SUPPORTS_32BIT_KERNEL 1536 select CPU_SUPPORTS_64BIT_KERNEL 1537 select CPU_SUPPORTS_HUGEPAGES 1538 help 1539 MIPS Technologies R4000-series processors other than 4300, including 1540 the R4000, R4400, R4600, and 4700. 1541 1542config CPU_TX49XX 1543 bool "R49XX" 1544 depends on SYS_HAS_CPU_TX49XX 1545 select CPU_HAS_PREFETCH 1546 select CPU_SUPPORTS_32BIT_KERNEL 1547 select CPU_SUPPORTS_64BIT_KERNEL 1548 select CPU_SUPPORTS_HUGEPAGES 1549 1550config CPU_R5000 1551 bool "R5000" 1552 depends on SYS_HAS_CPU_R5000 1553 select CPU_SUPPORTS_32BIT_KERNEL 1554 select CPU_SUPPORTS_64BIT_KERNEL 1555 select CPU_SUPPORTS_HUGEPAGES 1556 help 1557 MIPS Technologies R5000-series processors other than the Nevada. 1558 1559config CPU_R5500 1560 bool "R5500" 1561 depends on SYS_HAS_CPU_R5500 1562 select CPU_SUPPORTS_32BIT_KERNEL 1563 select CPU_SUPPORTS_64BIT_KERNEL 1564 select CPU_SUPPORTS_HUGEPAGES 1565 help 1566 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV 1567 instruction set. 1568 1569config CPU_NEVADA 1570 bool "RM52xx" 1571 depends on SYS_HAS_CPU_NEVADA 1572 select CPU_SUPPORTS_32BIT_KERNEL 1573 select CPU_SUPPORTS_64BIT_KERNEL 1574 select CPU_SUPPORTS_HUGEPAGES 1575 help 1576 QED / PMC-Sierra RM52xx-series ("Nevada") processors. 1577 1578config CPU_R10000 1579 bool "R10000" 1580 depends on SYS_HAS_CPU_R10000 1581 select CPU_HAS_PREFETCH 1582 select CPU_SUPPORTS_32BIT_KERNEL 1583 select CPU_SUPPORTS_64BIT_KERNEL 1584 select CPU_SUPPORTS_HIGHMEM 1585 select CPU_SUPPORTS_HUGEPAGES 1586 help 1587 MIPS Technologies R10000-series processors. 1588 1589config CPU_RM7000 1590 bool "RM7000" 1591 depends on SYS_HAS_CPU_RM7000 1592 select CPU_HAS_PREFETCH 1593 select CPU_SUPPORTS_32BIT_KERNEL 1594 select CPU_SUPPORTS_64BIT_KERNEL 1595 select CPU_SUPPORTS_HIGHMEM 1596 select CPU_SUPPORTS_HUGEPAGES 1597 1598config CPU_SB1 1599 bool "SB1" 1600 depends on SYS_HAS_CPU_SB1 1601 select CPU_SUPPORTS_32BIT_KERNEL 1602 select CPU_SUPPORTS_64BIT_KERNEL 1603 select CPU_SUPPORTS_HIGHMEM 1604 select CPU_SUPPORTS_HUGEPAGES 1605 select WEAK_ORDERING 1606 1607config CPU_CAVIUM_OCTEON 1608 bool "Cavium Octeon processor" 1609 depends on SYS_HAS_CPU_CAVIUM_OCTEON 1610 select CPU_HAS_PREFETCH 1611 select CPU_SUPPORTS_64BIT_KERNEL 1612 select WEAK_ORDERING 1613 select CPU_SUPPORTS_HIGHMEM 1614 select CPU_SUPPORTS_HUGEPAGES 1615 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 1616 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 1617 select MIPS_L1_CACHE_SHIFT_7 1618 select HAVE_KVM 1619 help 1620 The Cavium Octeon processor is a highly integrated chip containing 1621 many ethernet hardware widgets for networking tasks. The processor 1622 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets. 1623 Full details can be found at http://www.caviumnetworks.com. 1624 1625config CPU_BMIPS 1626 bool "Broadcom BMIPS" 1627 depends on SYS_HAS_CPU_BMIPS 1628 select CPU_MIPS32 1629 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300 1630 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350 1631 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380 1632 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000 1633 select CPU_SUPPORTS_32BIT_KERNEL 1634 select DMA_NONCOHERENT 1635 select IRQ_MIPS_CPU 1636 select SWAP_IO_SPACE 1637 select WEAK_ORDERING 1638 select CPU_SUPPORTS_HIGHMEM 1639 select CPU_HAS_PREFETCH 1640 select CPU_SUPPORTS_CPUFREQ 1641 select MIPS_EXTERNAL_TIMER 1642 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU 1643 help 1644 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors. 1645 1646endchoice 1647 1648config CPU_MIPS32_3_5_FEATURES 1649 bool "MIPS32 Release 3.5 Features" 1650 depends on SYS_HAS_CPU_MIPS32_R3_5 1651 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \ 1652 CPU_P5600 1653 help 1654 Choose this option to build a kernel for release 2 or later of the 1655 MIPS32 architecture including features from the 3.5 release such as 1656 support for Enhanced Virtual Addressing (EVA). 1657 1658config CPU_MIPS32_3_5_EVA 1659 bool "Enhanced Virtual Addressing (EVA)" 1660 depends on CPU_MIPS32_3_5_FEATURES 1661 select EVA 1662 default y 1663 help 1664 Choose this option if you want to enable the Enhanced Virtual 1665 Addressing (EVA) on your MIPS32 core (such as proAptiv). 1666 One of its primary benefits is an increase in the maximum size 1667 of lowmem (up to 3GB). If unsure, say 'N' here. 1668 1669config CPU_MIPS32_R5_FEATURES 1670 bool "MIPS32 Release 5 Features" 1671 depends on SYS_HAS_CPU_MIPS32_R5 1672 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600 1673 help 1674 Choose this option to build a kernel for release 2 or later of the 1675 MIPS32 architecture including features from release 5 such as 1676 support for Extended Physical Addressing (XPA). 1677 1678config CPU_MIPS32_R5_XPA 1679 bool "Extended Physical Addressing (XPA)" 1680 depends on CPU_MIPS32_R5_FEATURES 1681 depends on !EVA 1682 depends on !PAGE_SIZE_4KB 1683 depends on SYS_SUPPORTS_HIGHMEM 1684 select XPA 1685 select HIGHMEM 1686 select PHYS_ADDR_T_64BIT 1687 default n 1688 help 1689 Choose this option if you want to enable the Extended Physical 1690 Addressing (XPA) on your MIPS32 core (such as P5600 series). The 1691 benefit is to increase physical addressing equal to or greater 1692 than 40 bits. Note that this has the side effect of turning on 1693 64-bit addressing which in turn makes the PTEs 64-bit in size. 1694 If unsure, say 'N' here. 1695 1696if CPU_LOONGSON2F 1697config CPU_NOP_WORKAROUNDS 1698 bool 1699 1700config CPU_JUMP_WORKAROUNDS 1701 bool 1702 1703config CPU_LOONGSON2F_WORKAROUNDS 1704 bool "Loongson 2F Workarounds" 1705 default y 1706 select CPU_NOP_WORKAROUNDS 1707 select CPU_JUMP_WORKAROUNDS 1708 help 1709 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which 1710 require workarounds. Without workarounds the system may hang 1711 unexpectedly. For more information please refer to the gas 1712 -mfix-loongson2f-nop and -mfix-loongson2f-jump options. 1713 1714 Loongson 2F03 and later have fixed these issues and no workarounds 1715 are needed. The workarounds have no significant side effect on them 1716 but may decrease the performance of the system so this option should 1717 be disabled unless the kernel is intended to be run on 2F01 or 2F02 1718 systems. 1719 1720 If unsure, please say Y. 1721endif # CPU_LOONGSON2F 1722 1723config SYS_SUPPORTS_ZBOOT 1724 bool 1725 select HAVE_KERNEL_GZIP 1726 select HAVE_KERNEL_BZIP2 1727 select HAVE_KERNEL_LZ4 1728 select HAVE_KERNEL_LZMA 1729 select HAVE_KERNEL_LZO 1730 select HAVE_KERNEL_XZ 1731 select HAVE_KERNEL_ZSTD 1732 1733config SYS_SUPPORTS_ZBOOT_UART16550 1734 bool 1735 select SYS_SUPPORTS_ZBOOT 1736 1737config SYS_SUPPORTS_ZBOOT_UART_PROM 1738 bool 1739 select SYS_SUPPORTS_ZBOOT 1740 1741config CPU_LOONGSON2EF 1742 bool 1743 select CPU_SUPPORTS_32BIT_KERNEL 1744 select CPU_SUPPORTS_64BIT_KERNEL 1745 select CPU_SUPPORTS_HIGHMEM 1746 select CPU_SUPPORTS_HUGEPAGES 1747 1748config CPU_LOONGSON32 1749 bool 1750 select CPU_MIPS32 1751 select CPU_MIPSR2 1752 select CPU_HAS_PREFETCH 1753 select CPU_SUPPORTS_32BIT_KERNEL 1754 select CPU_SUPPORTS_HIGHMEM 1755 select CPU_SUPPORTS_CPUFREQ 1756 1757config CPU_BMIPS32_3300 1758 select SMP_UP if SMP 1759 bool 1760 1761config CPU_BMIPS4350 1762 bool 1763 select SYS_SUPPORTS_SMP 1764 select SYS_SUPPORTS_HOTPLUG_CPU 1765 1766config CPU_BMIPS4380 1767 bool 1768 select MIPS_L1_CACHE_SHIFT_6 1769 select SYS_SUPPORTS_SMP 1770 select SYS_SUPPORTS_HOTPLUG_CPU 1771 select CPU_HAS_RIXI 1772 1773config CPU_BMIPS5000 1774 bool 1775 select MIPS_CPU_SCACHE 1776 select MIPS_L1_CACHE_SHIFT_7 1777 select SYS_SUPPORTS_SMP 1778 select SYS_SUPPORTS_HOTPLUG_CPU 1779 select CPU_HAS_RIXI 1780 1781config SYS_HAS_CPU_LOONGSON64 1782 bool 1783 select CPU_SUPPORTS_CPUFREQ 1784 select CPU_HAS_RIXI 1785 1786config SYS_HAS_CPU_LOONGSON2E 1787 bool 1788 1789config SYS_HAS_CPU_LOONGSON2F 1790 bool 1791 select CPU_SUPPORTS_CPUFREQ 1792 select CPU_SUPPORTS_ADDRWINCFG if 64BIT 1793 1794config SYS_HAS_CPU_LOONGSON1B 1795 bool 1796 1797config SYS_HAS_CPU_LOONGSON1C 1798 bool 1799 1800config SYS_HAS_CPU_MIPS32_R1 1801 bool 1802 1803config SYS_HAS_CPU_MIPS32_R2 1804 bool 1805 1806config SYS_HAS_CPU_MIPS32_R3_5 1807 bool 1808 1809config SYS_HAS_CPU_MIPS32_R5 1810 bool 1811 1812config SYS_HAS_CPU_MIPS32_R6 1813 bool 1814 1815config SYS_HAS_CPU_MIPS64_R1 1816 bool 1817 1818config SYS_HAS_CPU_MIPS64_R2 1819 bool 1820 1821config SYS_HAS_CPU_MIPS64_R5 1822 bool 1823 1824config SYS_HAS_CPU_MIPS64_R6 1825 bool 1826 1827config SYS_HAS_CPU_P5600 1828 bool 1829 1830config SYS_HAS_CPU_R3000 1831 bool 1832 1833config SYS_HAS_CPU_R4300 1834 bool 1835 1836config SYS_HAS_CPU_R4X00 1837 bool 1838 1839config SYS_HAS_CPU_TX49XX 1840 bool 1841 1842config SYS_HAS_CPU_R5000 1843 bool 1844 1845config SYS_HAS_CPU_R5500 1846 bool 1847 1848config SYS_HAS_CPU_NEVADA 1849 bool 1850 1851config SYS_HAS_CPU_R10000 1852 bool 1853 1854config SYS_HAS_CPU_RM7000 1855 bool 1856 1857config SYS_HAS_CPU_SB1 1858 bool 1859 1860config SYS_HAS_CPU_CAVIUM_OCTEON 1861 bool 1862 1863config SYS_HAS_CPU_BMIPS 1864 bool 1865 1866config SYS_HAS_CPU_BMIPS32_3300 1867 bool 1868 select SYS_HAS_CPU_BMIPS 1869 1870config SYS_HAS_CPU_BMIPS4350 1871 bool 1872 select SYS_HAS_CPU_BMIPS 1873 1874config SYS_HAS_CPU_BMIPS4380 1875 bool 1876 select SYS_HAS_CPU_BMIPS 1877 1878config SYS_HAS_CPU_BMIPS5000 1879 bool 1880 select SYS_HAS_CPU_BMIPS 1881 1882# 1883# CPU may reorder R->R, R->W, W->R, W->W 1884# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC 1885# 1886config WEAK_ORDERING 1887 bool 1888 1889# 1890# CPU may reorder reads and writes beyond LL/SC 1891# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC 1892# 1893config WEAK_REORDERING_BEYOND_LLSC 1894 bool 1895endmenu 1896 1897# 1898# These two indicate any level of the MIPS32 and MIPS64 architecture 1899# 1900config CPU_MIPS32 1901 bool 1902 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \ 1903 CPU_MIPS32_R6 || CPU_P5600 1904 1905config CPU_MIPS64 1906 bool 1907 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \ 1908 CPU_MIPS64_R6 || CPU_LOONGSON64 || CPU_CAVIUM_OCTEON 1909 1910# 1911# These indicate the revision of the architecture 1912# 1913config CPU_MIPSR1 1914 bool 1915 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1 1916 1917config CPU_MIPSR2 1918 bool 1919 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON 1920 select CPU_HAS_RIXI 1921 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 1922 select MIPS_SPRAM 1923 1924config CPU_MIPSR5 1925 bool 1926 default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600 1927 select CPU_HAS_RIXI 1928 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 1929 select MIPS_SPRAM 1930 1931config CPU_MIPSR6 1932 bool 1933 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6 1934 select CPU_HAS_RIXI 1935 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 1936 select HAVE_ARCH_BITREVERSE 1937 select MIPS_ASID_BITS_VARIABLE 1938 select MIPS_CRC_SUPPORT 1939 select MIPS_SPRAM 1940 1941config TARGET_ISA_REV 1942 int 1943 default 1 if CPU_MIPSR1 1944 default 2 if CPU_MIPSR2 1945 default 5 if CPU_MIPSR5 1946 default 6 if CPU_MIPSR6 1947 default 0 1948 help 1949 Reflects the ISA revision being targeted by the kernel build. This 1950 is effectively the Kconfig equivalent of MIPS_ISA_REV. 1951 1952config EVA 1953 bool 1954 1955config XPA 1956 bool 1957 1958config SYS_SUPPORTS_32BIT_KERNEL 1959 bool 1960config SYS_SUPPORTS_64BIT_KERNEL 1961 bool 1962config CPU_SUPPORTS_32BIT_KERNEL 1963 bool 1964config CPU_SUPPORTS_64BIT_KERNEL 1965 bool 1966config CPU_SUPPORTS_CPUFREQ 1967 bool 1968config CPU_SUPPORTS_ADDRWINCFG 1969 bool 1970config CPU_SUPPORTS_HUGEPAGES 1971 bool 1972 depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA)) 1973config MIPS_PGD_C0_CONTEXT 1974 bool 1975 depends on 64BIT 1976 default y if (CPU_MIPSR2 || CPU_MIPSR6) 1977 1978# 1979# Set to y for ptrace access to watch registers. 1980# 1981config HARDWARE_WATCHPOINTS 1982 bool 1983 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6 1984 1985menu "Kernel type" 1986 1987choice 1988 prompt "Kernel code model" 1989 help 1990 You should only select this option if you have a workload that 1991 actually benefits from 64-bit processing or if your machine has 1992 large memory. You will only be presented a single option in this 1993 menu if your system does not support both 32-bit and 64-bit kernels. 1994 1995config 32BIT 1996 bool "32-bit kernel" 1997 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL 1998 select TRAD_SIGNALS 1999 help 2000 Select this option if you want to build a 32-bit kernel. 2001 2002config 64BIT 2003 bool "64-bit kernel" 2004 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL 2005 help 2006 Select this option if you want to build a 64-bit kernel. 2007 2008endchoice 2009 2010config MIPS_VA_BITS_48 2011 bool "48 bits virtual memory" 2012 depends on 64BIT 2013 help 2014 Support a maximum at least 48 bits of application virtual 2015 memory. Default is 40 bits or less, depending on the CPU. 2016 For page sizes 16k and above, this option results in a small 2017 memory overhead for page tables. For 4k page size, a fourth 2018 level of page tables is added which imposes both a memory 2019 overhead as well as slower TLB fault handling. 2020 2021 If unsure, say N. 2022 2023config ZBOOT_LOAD_ADDRESS 2024 hex "Compressed kernel load address" 2025 default 0xffffffff80400000 if BCM47XX 2026 default 0x0 2027 depends on SYS_SUPPORTS_ZBOOT 2028 help 2029 The address to load compressed kernel, aka vmlinuz. 2030 2031 This is only used if non-zero. 2032 2033choice 2034 prompt "Kernel page size" 2035 default PAGE_SIZE_4KB 2036 2037config PAGE_SIZE_4KB 2038 bool "4kB" 2039 depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64 2040 help 2041 This option select the standard 4kB Linux page size. On some 2042 R3000-family processors this is the only available page size. Using 2043 4kB page size will minimize memory consumption and is therefore 2044 recommended for low memory systems. 2045 2046config PAGE_SIZE_8KB 2047 bool "8kB" 2048 depends on CPU_CAVIUM_OCTEON 2049 depends on !MIPS_VA_BITS_48 2050 help 2051 Using 8kB page size will result in higher performance kernel at 2052 the price of higher memory consumption. This option is available 2053 only on cnMIPS processors. Note that you will need a suitable Linux 2054 distribution to support this. 2055 2056config PAGE_SIZE_16KB 2057 bool "16kB" 2058 depends on !CPU_R3000 2059 help 2060 Using 16kB page size will result in higher performance kernel at 2061 the price of higher memory consumption. This option is available on 2062 all non-R3000 family processors. Note that you will need a suitable 2063 Linux distribution to support this. 2064 2065config PAGE_SIZE_32KB 2066 bool "32kB" 2067 depends on CPU_CAVIUM_OCTEON 2068 depends on !MIPS_VA_BITS_48 2069 help 2070 Using 32kB page size will result in higher performance kernel at 2071 the price of higher memory consumption. This option is available 2072 only on cnMIPS cores. Note that you will need a suitable Linux 2073 distribution to support this. 2074 2075config PAGE_SIZE_64KB 2076 bool "64kB" 2077 depends on !CPU_R3000 2078 help 2079 Using 64kB page size will result in higher performance kernel at 2080 the price of higher memory consumption. This option is available on 2081 all non-R3000 family processor. Not that at the time of this 2082 writing this option is still high experimental. 2083 2084endchoice 2085 2086config ARCH_FORCE_MAX_ORDER 2087 int "Maximum zone order" 2088 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB 2089 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB 2090 default "11" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB 2091 default "10" 2092 help 2093 The kernel memory allocator divides physically contiguous memory 2094 blocks into "zones", where each zone is a power of two number of 2095 pages. This option selects the largest power of two that the kernel 2096 keeps in the memory allocator. If you need to allocate very large 2097 blocks of physically contiguous memory, then you may need to 2098 increase this value. 2099 2100 The page size is not necessarily 4KB. Keep this in mind 2101 when choosing a value for this option. 2102 2103config BOARD_SCACHE 2104 bool 2105 2106config IP22_CPU_SCACHE 2107 bool 2108 select BOARD_SCACHE 2109 2110# 2111# Support for a MIPS32 / MIPS64 style S-caches 2112# 2113config MIPS_CPU_SCACHE 2114 bool 2115 select BOARD_SCACHE 2116 2117config R5000_CPU_SCACHE 2118 bool 2119 select BOARD_SCACHE 2120 2121config RM7000_CPU_SCACHE 2122 bool 2123 select BOARD_SCACHE 2124 2125config SIBYTE_DMA_PAGEOPS 2126 bool "Use DMA to clear/copy pages" 2127 depends on CPU_SB1 2128 help 2129 Instead of using the CPU to zero and copy pages, use a Data Mover 2130 channel. These DMA channels are otherwise unused by the standard 2131 SiByte Linux port. Seems to give a small performance benefit. 2132 2133config CPU_HAS_PREFETCH 2134 bool 2135 2136config CPU_GENERIC_DUMP_TLB 2137 bool 2138 default y if !CPU_R3000 2139 2140config MIPS_FP_SUPPORT 2141 bool "Floating Point support" if EXPERT 2142 default y 2143 help 2144 Select y to include support for floating point in the kernel 2145 including initialization of FPU hardware, FP context save & restore 2146 and emulation of an FPU where necessary. Without this support any 2147 userland program attempting to use floating point instructions will 2148 receive a SIGILL. 2149 2150 If you know that your userland will not attempt to use floating point 2151 instructions then you can say n here to shrink the kernel a little. 2152 2153 If unsure, say y. 2154 2155config CPU_R2300_FPU 2156 bool 2157 depends on MIPS_FP_SUPPORT 2158 default y if CPU_R3000 2159 2160config CPU_R3K_TLB 2161 bool 2162 2163config CPU_R4K_FPU 2164 bool 2165 depends on MIPS_FP_SUPPORT 2166 default y if !CPU_R2300_FPU 2167 2168config CPU_R4K_CACHE_TLB 2169 bool 2170 default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON) 2171 2172config MIPS_MT_SMP 2173 bool "MIPS MT SMP support (1 TC on each available VPE)" 2174 default y 2175 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS 2176 select CPU_MIPSR2_IRQ_VI 2177 select CPU_MIPSR2_IRQ_EI 2178 select SYNC_R4K 2179 select MIPS_MT 2180 select SMP 2181 select SMP_UP 2182 select SYS_SUPPORTS_SMP 2183 select SYS_SUPPORTS_SCHED_SMT 2184 select MIPS_PERF_SHARED_TC_COUNTERS 2185 help 2186 This is a kernel model which is known as SMVP. This is supported 2187 on cores with the MT ASE and uses the available VPEs to implement 2188 virtual processors which supports SMP. This is equivalent to the 2189 Intel Hyperthreading feature. For further information go to 2190 <http://www.imgtec.com/mips/mips-multithreading.asp>. 2191 2192config MIPS_MT 2193 bool 2194 2195config SCHED_SMT 2196 bool "SMT (multithreading) scheduler support" 2197 depends on SYS_SUPPORTS_SCHED_SMT 2198 default n 2199 help 2200 SMT scheduler support improves the CPU scheduler's decision making 2201 when dealing with MIPS MT enabled cores at a cost of slightly 2202 increased overhead in some places. If unsure say N here. 2203 2204config SYS_SUPPORTS_SCHED_SMT 2205 bool 2206 2207config SYS_SUPPORTS_MULTITHREADING 2208 bool 2209 2210config MIPS_MT_FPAFF 2211 bool "Dynamic FPU affinity for FP-intensive threads" 2212 default y 2213 depends on MIPS_MT_SMP 2214 2215config MIPSR2_TO_R6_EMULATOR 2216 bool "MIPS R2-to-R6 emulator" 2217 depends on CPU_MIPSR6 2218 depends on MIPS_FP_SUPPORT 2219 default y 2220 help 2221 Choose this option if you want to run non-R6 MIPS userland code. 2222 Even if you say 'Y' here, the emulator will still be disabled by 2223 default. You can enable it using the 'mipsr2emu' kernel option. 2224 The only reason this is a build-time option is to save ~14K from the 2225 final kernel image. 2226 2227config SYS_SUPPORTS_VPE_LOADER 2228 bool 2229 depends on SYS_SUPPORTS_MULTITHREADING 2230 help 2231 Indicates that the platform supports the VPE loader, and provides 2232 physical_memsize. 2233 2234config MIPS_VPE_LOADER 2235 bool "VPE loader support." 2236 depends on SYS_SUPPORTS_VPE_LOADER && MODULES 2237 select CPU_MIPSR2_IRQ_VI 2238 select CPU_MIPSR2_IRQ_EI 2239 select MIPS_MT 2240 help 2241 Includes a loader for loading an elf relocatable object 2242 onto another VPE and running it. 2243 2244config MIPS_VPE_LOADER_MT 2245 bool 2246 default "y" 2247 depends on MIPS_VPE_LOADER 2248 2249config MIPS_VPE_LOADER_TOM 2250 bool "Load VPE program into memory hidden from linux" 2251 depends on MIPS_VPE_LOADER 2252 default y 2253 help 2254 The loader can use memory that is present but has been hidden from 2255 Linux using the kernel command line option "mem=xxMB". It's up to 2256 you to ensure the amount you put in the option and the space your 2257 program requires is less or equal to the amount physically present. 2258 2259config MIPS_VPE_APSP_API 2260 bool "Enable support for AP/SP API (RTLX)" 2261 depends on MIPS_VPE_LOADER 2262 2263config MIPS_VPE_APSP_API_MT 2264 bool 2265 default "y" 2266 depends on MIPS_VPE_APSP_API 2267 2268config MIPS_CPS 2269 bool "MIPS Coherent Processing System support" 2270 depends on SYS_SUPPORTS_MIPS_CPS 2271 select MIPS_CM 2272 select MIPS_CPS_PM if HOTPLUG_CPU 2273 select SMP 2274 select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU 2275 select SYNC_R4K if (CEVT_R4K || CSRC_R4K) 2276 select SYS_SUPPORTS_HOTPLUG_CPU 2277 select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6 2278 select SYS_SUPPORTS_SMP 2279 select WEAK_ORDERING 2280 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU 2281 help 2282 Select this if you wish to run an SMP kernel across multiple cores 2283 within a MIPS Coherent Processing System. When this option is 2284 enabled the kernel will probe for other cores and boot them with 2285 no external assistance. It is safe to enable this when hardware 2286 support is unavailable. 2287 2288config MIPS_CPS_PM 2289 depends on MIPS_CPS 2290 bool 2291 2292config MIPS_CM 2293 bool 2294 select MIPS_CPC 2295 2296config MIPS_CPC 2297 bool 2298 2299config SB1_PASS_2_WORKAROUNDS 2300 bool 2301 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2) 2302 default y 2303 2304config SB1_PASS_2_1_WORKAROUNDS 2305 bool 2306 depends on CPU_SB1 && CPU_SB1_PASS_2 2307 default y 2308 2309choice 2310 prompt "SmartMIPS or microMIPS ASE support" 2311 2312config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS 2313 bool "None" 2314 help 2315 Select this if you want neither microMIPS nor SmartMIPS support 2316 2317config CPU_HAS_SMARTMIPS 2318 depends on SYS_SUPPORTS_SMARTMIPS 2319 bool "SmartMIPS" 2320 help 2321 SmartMIPS is a extension of the MIPS32 architecture aimed at 2322 increased security at both hardware and software level for 2323 smartcards. Enabling this option will allow proper use of the 2324 SmartMIPS instructions by Linux applications. However a kernel with 2325 this option will not work on a MIPS core without SmartMIPS core. If 2326 you don't know you probably don't have SmartMIPS and should say N 2327 here. 2328 2329config CPU_MICROMIPS 2330 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6 2331 bool "microMIPS" 2332 help 2333 When this option is enabled the kernel will be built using the 2334 microMIPS ISA 2335 2336endchoice 2337 2338config CPU_HAS_MSA 2339 bool "Support for the MIPS SIMD Architecture" 2340 depends on CPU_SUPPORTS_MSA 2341 depends on MIPS_FP_SUPPORT 2342 depends on 64BIT || MIPS_O32_FP64_SUPPORT 2343 help 2344 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers 2345 and a set of SIMD instructions to operate on them. When this option 2346 is enabled the kernel will support allocating & switching MSA 2347 vector register contexts. If you know that your kernel will only be 2348 running on CPUs which do not support MSA or that your userland will 2349 not be making use of it then you may wish to say N here to reduce 2350 the size & complexity of your kernel. 2351 2352 If unsure, say Y. 2353 2354config CPU_HAS_WB 2355 bool 2356 2357config XKS01 2358 bool 2359 2360config CPU_HAS_DIEI 2361 depends on !CPU_DIEI_BROKEN 2362 bool 2363 2364config CPU_DIEI_BROKEN 2365 bool 2366 2367config CPU_HAS_RIXI 2368 bool 2369 2370config CPU_NO_LOAD_STORE_LR 2371 bool 2372 help 2373 CPU lacks support for unaligned load and store instructions: 2374 LWL, LWR, SWL, SWR (Load/store word left/right). 2375 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit 2376 systems). 2377 2378# 2379# Vectored interrupt mode is an R2 feature 2380# 2381config CPU_MIPSR2_IRQ_VI 2382 bool 2383 2384# 2385# Extended interrupt mode is an R2 feature 2386# 2387config CPU_MIPSR2_IRQ_EI 2388 bool 2389 2390config CPU_HAS_SYNC 2391 bool 2392 depends on !CPU_R3000 2393 default y 2394 2395# 2396# CPU non-features 2397# 2398 2399# Work around the "daddi" and "daddiu" CPU errata: 2400# 2401# - The `daddi' instruction fails to trap on overflow. 2402# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2403# erratum #23 2404# 2405# - The `daddiu' instruction can produce an incorrect result. 2406# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2407# erratum #41 2408# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum 2409# #15 2410# "MIPS R4400PC/SC Errata, Processor Revision 1.0", erratum #7 2411# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #5 2412config CPU_DADDI_WORKAROUNDS 2413 bool 2414 2415# Work around certain R4000 CPU errata (as implemented by GCC): 2416# 2417# - A double-word or a variable shift may give an incorrect result 2418# if executed immediately after starting an integer division: 2419# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2420# erratum #28 2421# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum 2422# #19 2423# 2424# - A double-word or a variable shift may give an incorrect result 2425# if executed while an integer multiplication is in progress: 2426# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2427# errata #16 & #28 2428# 2429# - An integer division may give an incorrect result if started in 2430# a delay slot of a taken branch or a jump: 2431# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2432# erratum #52 2433config CPU_R4000_WORKAROUNDS 2434 bool 2435 select CPU_R4400_WORKAROUNDS 2436 2437# Work around certain R4400 CPU errata (as implemented by GCC): 2438# 2439# - A double-word or a variable shift may give an incorrect result 2440# if executed immediately after starting an integer division: 2441# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #10 2442# "MIPS R4400MC Errata, Processor Revision 2.0 & 3.0", erratum #4 2443config CPU_R4400_WORKAROUNDS 2444 bool 2445 2446config CPU_R4X00_BUGS64 2447 bool 2448 default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1) 2449 2450config MIPS_ASID_SHIFT 2451 int 2452 default 6 if CPU_R3000 2453 default 0 2454 2455config MIPS_ASID_BITS 2456 int 2457 default 0 if MIPS_ASID_BITS_VARIABLE 2458 default 6 if CPU_R3000 2459 default 8 2460 2461config MIPS_ASID_BITS_VARIABLE 2462 bool 2463 2464config MIPS_CRC_SUPPORT 2465 bool 2466 2467# R4600 erratum. Due to the lack of errata information the exact 2468# technical details aren't known. I've experimentally found that disabling 2469# interrupts during indexed I-cache flushes seems to be sufficient to deal 2470# with the issue. 2471config WAR_R4600_V1_INDEX_ICACHEOP 2472 bool 2473 2474# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata: 2475# 2476# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D, 2477# Hit_Invalidate_D and Create_Dirty_Excl_D should only be 2478# executed if there is no other dcache activity. If the dcache is 2479# accessed for another instruction immediately preceding when these 2480# cache instructions are executing, it is possible that the dcache 2481# tag match outputs used by these cache instructions will be 2482# incorrect. These cache instructions should be preceded by at least 2483# four instructions that are not any kind of load or store 2484# instruction. 2485# 2486# This is not allowed: lw 2487# nop 2488# nop 2489# nop 2490# cache Hit_Writeback_Invalidate_D 2491# 2492# This is allowed: lw 2493# nop 2494# nop 2495# nop 2496# nop 2497# cache Hit_Writeback_Invalidate_D 2498config WAR_R4600_V1_HIT_CACHEOP 2499 bool 2500 2501# Writeback and invalidate the primary cache dcache before DMA. 2502# 2503# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D, 2504# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only 2505# operate correctly if the internal data cache refill buffer is empty. These 2506# CACHE instructions should be separated from any potential data cache miss 2507# by a load instruction to an uncached address to empty the response buffer." 2508# (Revision 2.0 device errata from IDT available on https://www.idt.com/ 2509# in .pdf format.) 2510config WAR_R4600_V2_HIT_CACHEOP 2511 bool 2512 2513# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for 2514# the line which this instruction itself exists, the following 2515# operation is not guaranteed." 2516# 2517# Workaround: do two phase flushing for Index_Invalidate_I 2518config WAR_TX49XX_ICACHE_INDEX_INV 2519 bool 2520 2521# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra 2522# opposes it being called that) where invalid instructions in the same 2523# I-cache line worth of instructions being fetched may case spurious 2524# exceptions. 2525config WAR_ICACHE_REFILLS 2526 bool 2527 2528# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that 2529# may cause ll / sc and lld / scd sequences to execute non-atomically. 2530config WAR_R10000_LLSC 2531 bool 2532 2533# 34K core erratum: "Problems Executing the TLBR Instruction" 2534config WAR_MIPS34K_MISSED_ITLB 2535 bool 2536 2537# 2538# - Highmem only makes sense for the 32-bit kernel. 2539# - The current highmem code will only work properly on physically indexed 2540# caches such as R3000, SB1, R7000 or those that look like they're virtually 2541# indexed such as R4000/R4400 SC and MC versions or R10000. So for the 2542# moment we protect the user and offer the highmem option only on machines 2543# where it's known to be safe. This will not offer highmem on a few systems 2544# such as MIPS32 and MIPS64 CPUs which may have virtual and physically 2545# indexed CPUs but we're playing safe. 2546# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we 2547# know they might have memory configurations that could make use of highmem 2548# support. 2549# 2550config HIGHMEM 2551 bool "High Memory Support" 2552 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA 2553 select KMAP_LOCAL 2554 2555config CPU_SUPPORTS_HIGHMEM 2556 bool 2557 2558config SYS_SUPPORTS_HIGHMEM 2559 bool 2560 2561config SYS_SUPPORTS_SMARTMIPS 2562 bool 2563 2564config SYS_SUPPORTS_MICROMIPS 2565 bool 2566 2567config SYS_SUPPORTS_MIPS16 2568 bool 2569 help 2570 This option must be set if a kernel might be executed on a MIPS16- 2571 enabled CPU even if MIPS16 is not actually being used. In other 2572 words, it makes the kernel MIPS16-tolerant. 2573 2574config CPU_SUPPORTS_MSA 2575 bool 2576 2577config ARCH_FLATMEM_ENABLE 2578 def_bool y 2579 depends on !NUMA && !CPU_LOONGSON2EF 2580 2581config ARCH_SPARSEMEM_ENABLE 2582 bool 2583 2584config NUMA 2585 bool "NUMA Support" 2586 depends on SYS_SUPPORTS_NUMA 2587 select SMP 2588 select HAVE_SETUP_PER_CPU_AREA 2589 select NEED_PER_CPU_EMBED_FIRST_CHUNK 2590 help 2591 Say Y to compile the kernel to support NUMA (Non-Uniform Memory 2592 Access). This option improves performance on systems with more 2593 than two nodes; on two node systems it is generally better to 2594 leave it disabled; on single node systems leave this option 2595 disabled. 2596 2597config SYS_SUPPORTS_NUMA 2598 bool 2599 2600config HAVE_ARCH_NODEDATA_EXTENSION 2601 bool 2602 2603config RELOCATABLE 2604 bool "Relocatable kernel" 2605 depends on SYS_SUPPORTS_RELOCATABLE 2606 depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \ 2607 CPU_MIPS32_R5 || CPU_MIPS64_R5 || \ 2608 CPU_MIPS32_R6 || CPU_MIPS64_R6 || \ 2609 CPU_P5600 || CAVIUM_OCTEON_SOC || \ 2610 CPU_LOONGSON64 2611 help 2612 This builds a kernel image that retains relocation information 2613 so it can be loaded someplace besides the default 1MB. 2614 The relocations make the kernel binary about 15% larger, 2615 but are discarded at runtime 2616 2617config RELOCATION_TABLE_SIZE 2618 hex "Relocation table size" 2619 depends on RELOCATABLE 2620 range 0x0 0x01000000 2621 default "0x00200000" if CPU_LOONGSON64 2622 default "0x00100000" 2623 help 2624 A table of relocation data will be appended to the kernel binary 2625 and parsed at boot to fix up the relocated kernel. 2626 2627 This option allows the amount of space reserved for the table to be 2628 adjusted, although the default of 1Mb should be ok in most cases. 2629 2630 The build will fail and a valid size suggested if this is too small. 2631 2632 If unsure, leave at the default value. 2633 2634config RANDOMIZE_BASE 2635 bool "Randomize the address of the kernel image" 2636 depends on RELOCATABLE 2637 help 2638 Randomizes the physical and virtual address at which the 2639 kernel image is loaded, as a security feature that 2640 deters exploit attempts relying on knowledge of the location 2641 of kernel internals. 2642 2643 Entropy is generated using any coprocessor 0 registers available. 2644 2645 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. 2646 2647 If unsure, say N. 2648 2649config RANDOMIZE_BASE_MAX_OFFSET 2650 hex "Maximum kASLR offset" if EXPERT 2651 depends on RANDOMIZE_BASE 2652 range 0x0 0x40000000 if EVA || 64BIT 2653 range 0x0 0x08000000 2654 default "0x01000000" 2655 help 2656 When kASLR is active, this provides the maximum offset that will 2657 be applied to the kernel image. It should be set according to the 2658 amount of physical RAM available in the target system minus 2659 PHYSICAL_START and must be a power of 2. 2660 2661 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with 2662 EVA or 64-bit. The default is 16Mb. 2663 2664config NODES_SHIFT 2665 int 2666 default "6" 2667 depends on NUMA 2668 2669config HW_PERF_EVENTS 2670 bool "Enable hardware performance counter support for perf events" 2671 depends on PERF_EVENTS && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_LOONGSON64) 2672 default y 2673 help 2674 Enable hardware performance counter support for perf events. If 2675 disabled, perf events will use software events only. 2676 2677config DMI 2678 bool "Enable DMI scanning" 2679 depends on MACH_LOONGSON64 2680 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 2681 default y 2682 help 2683 Enabled scanning of DMI to identify machine quirks. Say Y 2684 here unless you have verified that your setup is not 2685 affected by entries in the DMI blacklist. Required by PNP 2686 BIOS code. 2687 2688config SMP 2689 bool "Multi-Processing support" 2690 depends on SYS_SUPPORTS_SMP 2691 help 2692 This enables support for systems with more than one CPU. If you have 2693 a system with only one CPU, say N. If you have a system with more 2694 than one CPU, say Y. 2695 2696 If you say N here, the kernel will run on uni- and multiprocessor 2697 machines, but will use only one CPU of a multiprocessor machine. If 2698 you say Y here, the kernel will run on many, but not all, 2699 uniprocessor machines. On a uniprocessor machine, the kernel 2700 will run faster if you say N here. 2701 2702 People using multiprocessor machines who say Y here should also say 2703 Y to "Enhanced Real Time Clock Support", below. 2704 2705 See also the SMP-HOWTO available at 2706 <https://www.tldp.org/docs.html#howto>. 2707 2708 If you don't know what to do here, say N. 2709 2710config HOTPLUG_CPU 2711 bool "Support for hot-pluggable CPUs" 2712 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU 2713 help 2714 Say Y here to allow turning CPUs off and on. CPUs can be 2715 controlled through /sys/devices/system/cpu. 2716 (Note: power management support will enable this option 2717 automatically on SMP systems. ) 2718 Say N if you want to disable CPU hotplug. 2719 2720config SMP_UP 2721 bool 2722 2723config SYS_SUPPORTS_MIPS_CPS 2724 bool 2725 2726config SYS_SUPPORTS_SMP 2727 bool 2728 2729config NR_CPUS_DEFAULT_4 2730 bool 2731 2732config NR_CPUS_DEFAULT_8 2733 bool 2734 2735config NR_CPUS_DEFAULT_16 2736 bool 2737 2738config NR_CPUS_DEFAULT_32 2739 bool 2740 2741config NR_CPUS_DEFAULT_64 2742 bool 2743 2744config NR_CPUS 2745 int "Maximum number of CPUs (2-256)" 2746 range 2 256 2747 depends on SMP 2748 default "4" if NR_CPUS_DEFAULT_4 2749 default "8" if NR_CPUS_DEFAULT_8 2750 default "16" if NR_CPUS_DEFAULT_16 2751 default "32" if NR_CPUS_DEFAULT_32 2752 default "64" if NR_CPUS_DEFAULT_64 2753 help 2754 This allows you to specify the maximum number of CPUs which this 2755 kernel will support. The maximum supported value is 32 for 32-bit 2756 kernel and 64 for 64-bit kernels; the minimum value which makes 2757 sense is 1 for Qemu (useful only for kernel debugging purposes) 2758 and 2 for all others. 2759 2760 This is purely to save memory - each supported CPU adds 2761 approximately eight kilobytes to the kernel image. For best 2762 performance should round up your number of processors to the next 2763 power of two. 2764 2765config MIPS_PERF_SHARED_TC_COUNTERS 2766 bool 2767 2768config MIPS_NR_CPU_NR_MAP_1024 2769 bool 2770 2771config MIPS_NR_CPU_NR_MAP 2772 int 2773 depends on SMP 2774 default 1024 if MIPS_NR_CPU_NR_MAP_1024 2775 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024 2776 2777# 2778# Timer Interrupt Frequency Configuration 2779# 2780 2781choice 2782 prompt "Timer frequency" 2783 default HZ_250 2784 help 2785 Allows the configuration of the timer frequency. 2786 2787 config HZ_24 2788 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ 2789 2790 config HZ_48 2791 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ 2792 2793 config HZ_100 2794 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ 2795 2796 config HZ_128 2797 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ 2798 2799 config HZ_250 2800 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ 2801 2802 config HZ_256 2803 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ 2804 2805 config HZ_1000 2806 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ 2807 2808 config HZ_1024 2809 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ 2810 2811endchoice 2812 2813config SYS_SUPPORTS_24HZ 2814 bool 2815 2816config SYS_SUPPORTS_48HZ 2817 bool 2818 2819config SYS_SUPPORTS_100HZ 2820 bool 2821 2822config SYS_SUPPORTS_128HZ 2823 bool 2824 2825config SYS_SUPPORTS_250HZ 2826 bool 2827 2828config SYS_SUPPORTS_256HZ 2829 bool 2830 2831config SYS_SUPPORTS_1000HZ 2832 bool 2833 2834config SYS_SUPPORTS_1024HZ 2835 bool 2836 2837config SYS_SUPPORTS_ARBIT_HZ 2838 bool 2839 default y if !SYS_SUPPORTS_24HZ && \ 2840 !SYS_SUPPORTS_48HZ && \ 2841 !SYS_SUPPORTS_100HZ && \ 2842 !SYS_SUPPORTS_128HZ && \ 2843 !SYS_SUPPORTS_250HZ && \ 2844 !SYS_SUPPORTS_256HZ && \ 2845 !SYS_SUPPORTS_1000HZ && \ 2846 !SYS_SUPPORTS_1024HZ 2847 2848config HZ 2849 int 2850 default 24 if HZ_24 2851 default 48 if HZ_48 2852 default 100 if HZ_100 2853 default 128 if HZ_128 2854 default 250 if HZ_250 2855 default 256 if HZ_256 2856 default 1000 if HZ_1000 2857 default 1024 if HZ_1024 2858 2859config SCHED_HRTICK 2860 def_bool HIGH_RES_TIMERS 2861 2862config ARCH_SUPPORTS_KEXEC 2863 def_bool y 2864 2865config ARCH_SUPPORTS_CRASH_DUMP 2866 def_bool y 2867 2868config PHYSICAL_START 2869 hex "Physical address where the kernel is loaded" 2870 default "0xffffffff84000000" 2871 depends on CRASH_DUMP 2872 help 2873 This gives the CKSEG0 or KSEG0 address where the kernel is loaded. 2874 If you plan to use kernel for capturing the crash dump change 2875 this value to start of the reserved region (the "X" value as 2876 specified in the "crashkernel=YM@XM" command line boot parameter 2877 passed to the panic-ed kernel). 2878 2879config MIPS_O32_FP64_SUPPORT 2880 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6 2881 depends on 32BIT || MIPS32_O32 2882 help 2883 When this is enabled, the kernel will support use of 64-bit floating 2884 point registers with binaries using the O32 ABI along with the 2885 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On 2886 32-bit MIPS systems this support is at the cost of increasing the 2887 size and complexity of the compiled FPU emulator. Thus if you are 2888 running a MIPS32 system and know that none of your userland binaries 2889 will require 64-bit floating point, you may wish to reduce the size 2890 of your kernel & potentially improve FP emulation performance by 2891 saying N here. 2892 2893 Although binutils currently supports use of this flag the details 2894 concerning its effect upon the O32 ABI in userland are still being 2895 worked on. In order to avoid userland becoming dependent upon current 2896 behaviour before the details have been finalised, this option should 2897 be considered experimental and only enabled by those working upon 2898 said details. 2899 2900 If unsure, say N. 2901 2902config USE_OF 2903 bool 2904 select OF 2905 select OF_EARLY_FLATTREE 2906 select IRQ_DOMAIN 2907 2908config UHI_BOOT 2909 bool 2910 2911config BUILTIN_DTB 2912 bool 2913 2914choice 2915 prompt "Kernel appended dtb support" if USE_OF 2916 default MIPS_NO_APPENDED_DTB 2917 2918 config MIPS_NO_APPENDED_DTB 2919 bool "None" 2920 help 2921 Do not enable appended dtb support. 2922 2923 config MIPS_ELF_APPENDED_DTB 2924 bool "vmlinux" 2925 help 2926 With this option, the boot code will look for a device tree binary 2927 DTB) included in the vmlinux ELF section .appended_dtb. By default 2928 it is empty and the DTB can be appended using binutils command 2929 objcopy: 2930 2931 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux 2932 2933 This is meant as a backward compatibility convenience for those 2934 systems with a bootloader that can't be upgraded to accommodate 2935 the documented boot protocol using a device tree. 2936 2937 config MIPS_RAW_APPENDED_DTB 2938 bool "vmlinux.bin or vmlinuz.bin" 2939 help 2940 With this option, the boot code will look for a device tree binary 2941 DTB) appended to raw vmlinux.bin or vmlinuz.bin. 2942 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb). 2943 2944 This is meant as a backward compatibility convenience for those 2945 systems with a bootloader that can't be upgraded to accommodate 2946 the documented boot protocol using a device tree. 2947 2948 Beware that there is very little in terms of protection against 2949 this option being confused by leftover garbage in memory that might 2950 look like a DTB header after a reboot if no actual DTB is appended 2951 to vmlinux.bin. Do not leave this option active in a production kernel 2952 if you don't intend to always append a DTB. 2953endchoice 2954 2955choice 2956 prompt "Kernel command line type" if !CMDLINE_OVERRIDE 2957 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \ 2958 !MACH_LOONGSON64 && !MIPS_MALTA && \ 2959 !CAVIUM_OCTEON_SOC 2960 default MIPS_CMDLINE_FROM_BOOTLOADER 2961 2962 config MIPS_CMDLINE_FROM_DTB 2963 depends on USE_OF 2964 bool "Dtb kernel arguments if available" 2965 2966 config MIPS_CMDLINE_DTB_EXTEND 2967 depends on USE_OF 2968 bool "Extend dtb kernel arguments with bootloader arguments" 2969 2970 config MIPS_CMDLINE_FROM_BOOTLOADER 2971 bool "Bootloader kernel arguments if available" 2972 2973 config MIPS_CMDLINE_BUILTIN_EXTEND 2974 depends on CMDLINE_BOOL 2975 bool "Extend builtin kernel arguments with bootloader arguments" 2976endchoice 2977 2978endmenu 2979 2980config LOCKDEP_SUPPORT 2981 bool 2982 default y 2983 2984config STACKTRACE_SUPPORT 2985 bool 2986 default y 2987 2988config PGTABLE_LEVELS 2989 int 2990 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48 2991 default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48) 2992 default 2 2993 2994config MIPS_AUTO_PFN_OFFSET 2995 bool 2996 2997menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" 2998 2999config PCI_DRIVERS_GENERIC 3000 select PCI_DOMAINS_GENERIC if PCI 3001 bool 3002 3003config PCI_DRIVERS_LEGACY 3004 def_bool !PCI_DRIVERS_GENERIC 3005 select NO_GENERIC_PCI_IOPORT_MAP 3006 select PCI_DOMAINS if PCI 3007 3008# 3009# ISA support is now enabled via select. Too many systems still have the one 3010# or other ISA chip on the board that users don't know about so don't expect 3011# users to choose the right thing ... 3012# 3013config ISA 3014 bool 3015 3016config TC 3017 bool "TURBOchannel support" 3018 depends on MACH_DECSTATION 3019 help 3020 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS 3021 processors. TURBOchannel programming specifications are available 3022 at: 3023 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/> 3024 and: 3025 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/> 3026 Linux driver support status is documented at: 3027 <http://www.linux-mips.org/wiki/DECstation> 3028 3029config MMU 3030 bool 3031 default y 3032 3033config ARCH_MMAP_RND_BITS_MIN 3034 default 12 if 64BIT 3035 default 8 3036 3037config ARCH_MMAP_RND_BITS_MAX 3038 default 18 if 64BIT 3039 default 15 3040 3041config ARCH_MMAP_RND_COMPAT_BITS_MIN 3042 default 8 3043 3044config ARCH_MMAP_RND_COMPAT_BITS_MAX 3045 default 15 3046 3047config I8253 3048 bool 3049 select CLKSRC_I8253 3050 select CLKEVT_I8253 3051 select MIPS_EXTERNAL_TIMER 3052endmenu 3053 3054config TRAD_SIGNALS 3055 bool 3056 3057config MIPS32_COMPAT 3058 bool 3059 3060config COMPAT 3061 bool 3062 3063config MIPS32_O32 3064 bool "Kernel support for o32 binaries" 3065 depends on 64BIT 3066 select ARCH_WANT_OLD_COMPAT_IPC 3067 select COMPAT 3068 select MIPS32_COMPAT 3069 help 3070 Select this option if you want to run o32 binaries. These are pure 3071 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of 3072 existing binaries are in this format. 3073 3074 If unsure, say Y. 3075 3076config MIPS32_N32 3077 bool "Kernel support for n32 binaries" 3078 depends on 64BIT 3079 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION 3080 select COMPAT 3081 select MIPS32_COMPAT 3082 help 3083 Select this option if you want to run n32 binaries. These are 3084 64-bit binaries using 32-bit quantities for addressing and certain 3085 data that would normally be 64-bit. They are used in special 3086 cases. 3087 3088 If unsure, say N. 3089 3090config CC_HAS_MNO_BRANCH_LIKELY 3091 def_bool y 3092 depends on $(cc-option,-mno-branch-likely) 3093 3094# https://github.com/llvm/llvm-project/issues/61045 3095config CC_HAS_BROKEN_INLINE_COMPAT_BRANCH 3096 def_bool y if CC_IS_CLANG 3097 3098menu "Power management options" 3099 3100config ARCH_HIBERNATION_POSSIBLE 3101 def_bool y 3102 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 3103 3104config ARCH_SUSPEND_POSSIBLE 3105 def_bool y 3106 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 3107 3108source "kernel/power/Kconfig" 3109 3110endmenu 3111 3112config MIPS_EXTERNAL_TIMER 3113 bool 3114 3115menu "CPU Power Management" 3116 3117if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER 3118source "drivers/cpufreq/Kconfig" 3119endif # CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER 3120 3121source "drivers/cpuidle/Kconfig" 3122 3123endmenu 3124 3125source "arch/mips/kvm/Kconfig" 3126 3127source "arch/mips/vdso/Kconfig" 3128