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