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