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