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