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