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