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