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 MIPS_CLOCK_VSYSCALL 1137 def_bool CSRC_R4K || CLKSRC_MIPS_GIC 1138 1139config GPIO_TXX9 1140 select GPIOLIB 1141 bool 1142 1143config FW_CFE 1144 bool 1145 1146config ARCH_SUPPORTS_UPROBES 1147 def_bool y 1148 1149config DMA_NONCOHERENT 1150 bool 1151 # 1152 # MIPS allows mixing "slightly different" Cacheability and Coherency 1153 # Attribute bits. It is believed that the uncached access through 1154 # KSEG1 and the implementation specific "uncached accelerated" used 1155 # by pgprot_writcombine can be mixed, and the latter sometimes provides 1156 # significant advantages. 1157 # 1158 select ARCH_HAS_SETUP_DMA_OPS 1159 select ARCH_HAS_DMA_WRITE_COMBINE 1160 select ARCH_HAS_DMA_PREP_COHERENT 1161 select ARCH_HAS_SYNC_DMA_FOR_CPU 1162 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 1163 select ARCH_HAS_DMA_SET_UNCACHED 1164 select DMA_NONCOHERENT_MMAP 1165 select NEED_DMA_MAP_STATE 1166 1167config SYS_HAS_EARLY_PRINTK 1168 bool 1169 1170config SYS_SUPPORTS_HOTPLUG_CPU 1171 bool 1172 1173config MIPS_BONITO64 1174 bool 1175 1176config MIPS_MSC 1177 bool 1178 1179config SYNC_R4K 1180 bool 1181 1182config NO_IOPORT_MAP 1183 def_bool n 1184 1185config GENERIC_CSUM 1186 def_bool CPU_NO_LOAD_STORE_LR 1187 1188config GENERIC_ISA_DMA 1189 bool 1190 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n 1191 select ISA_DMA_API 1192 1193config GENERIC_ISA_DMA_SUPPORT_BROKEN 1194 bool 1195 select GENERIC_ISA_DMA 1196 1197config HAVE_PLAT_DELAY 1198 bool 1199 1200config HAVE_PLAT_FW_INIT_CMDLINE 1201 bool 1202 1203config HAVE_PLAT_MEMCPY 1204 bool 1205 1206config ISA_DMA_API 1207 bool 1208 1209config SYS_SUPPORTS_RELOCATABLE 1210 bool 1211 help 1212 Selected if the platform supports relocating the kernel. 1213 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF 1214 to allow access to command line and entropy sources. 1215 1216# 1217# Endianness selection. Sufficiently obscure so many users don't know what to 1218# answer,so we try hard to limit the available choices. Also the use of a 1219# choice statement should be more obvious to the user. 1220# 1221choice 1222 prompt "Endianness selection" 1223 help 1224 Some MIPS machines can be configured for either little or big endian 1225 byte order. These modes require different kernels and a different 1226 Linux distribution. In general there is one preferred byteorder for a 1227 particular system but some systems are just as commonly used in the 1228 one or the other endianness. 1229 1230config CPU_BIG_ENDIAN 1231 bool "Big endian" 1232 depends on SYS_SUPPORTS_BIG_ENDIAN 1233 1234config CPU_LITTLE_ENDIAN 1235 bool "Little endian" 1236 depends on SYS_SUPPORTS_LITTLE_ENDIAN 1237 1238endchoice 1239 1240config EXPORT_UASM 1241 bool 1242 1243config SYS_SUPPORTS_APM_EMULATION 1244 bool 1245 1246config SYS_SUPPORTS_BIG_ENDIAN 1247 bool 1248 1249config SYS_SUPPORTS_LITTLE_ENDIAN 1250 bool 1251 1252config MIPS_HUGE_TLB_SUPPORT 1253 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE 1254 1255config IRQ_TXX9 1256 bool 1257 1258config IRQ_GT641XX 1259 bool 1260 1261config PCI_GT64XXX_PCI0 1262 bool 1263 1264config PCI_XTALK_BRIDGE 1265 bool 1266 1267config NO_EXCEPT_FILL 1268 bool 1269 1270config MIPS_SPRAM 1271 bool 1272 1273config SWAP_IO_SPACE 1274 bool 1275 1276config SGI_HAS_INDYDOG 1277 bool 1278 1279config SGI_HAS_HAL2 1280 bool 1281 1282config SGI_HAS_SEEQ 1283 bool 1284 1285config SGI_HAS_WD93 1286 bool 1287 1288config SGI_HAS_ZILOG 1289 bool 1290 1291config SGI_HAS_I8042 1292 bool 1293 1294config DEFAULT_SGI_PARTITION 1295 bool 1296 1297config FW_ARC32 1298 bool 1299 1300config FW_SNIPROM 1301 bool 1302 1303config BOOT_ELF32 1304 bool 1305 1306config MIPS_L1_CACHE_SHIFT_4 1307 bool 1308 1309config MIPS_L1_CACHE_SHIFT_5 1310 bool 1311 1312config MIPS_L1_CACHE_SHIFT_6 1313 bool 1314 1315config MIPS_L1_CACHE_SHIFT_7 1316 bool 1317 1318config MIPS_L1_CACHE_SHIFT 1319 int 1320 default "7" if MIPS_L1_CACHE_SHIFT_7 1321 default "6" if MIPS_L1_CACHE_SHIFT_6 1322 default "5" if MIPS_L1_CACHE_SHIFT_5 1323 default "4" if MIPS_L1_CACHE_SHIFT_4 1324 default "5" 1325 1326config ARC_CMDLINE_ONLY 1327 bool 1328 1329config ARC_CONSOLE 1330 bool "ARC console support" 1331 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN) 1332 1333config ARC_MEMORY 1334 bool 1335 1336config ARC_PROMLIB 1337 bool 1338 1339config FW_ARC64 1340 bool 1341 1342config BOOT_ELF64 1343 bool 1344 1345menu "CPU selection" 1346 1347choice 1348 prompt "CPU type" 1349 default CPU_R4X00 1350 1351config CPU_LOONGSON64 1352 bool "Loongson 64-bit CPU" 1353 depends on SYS_HAS_CPU_LOONGSON64 1354 select ARCH_HAS_PHYS_TO_DMA 1355 select CPU_MIPSR2 1356 select CPU_HAS_PREFETCH 1357 select CPU_SUPPORTS_64BIT_KERNEL 1358 select CPU_SUPPORTS_HIGHMEM 1359 select CPU_SUPPORTS_HUGEPAGES 1360 select CPU_SUPPORTS_MSA 1361 select CPU_SUPPORTS_VZ 1362 select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT 1363 select CPU_MIPSR2_IRQ_VI 1364 select DMA_NONCOHERENT 1365 select WEAK_ORDERING 1366 select WEAK_REORDERING_BEYOND_LLSC 1367 select MIPS_ASID_BITS_VARIABLE 1368 select MIPS_PGD_C0_CONTEXT 1369 select MIPS_L1_CACHE_SHIFT_6 1370 select MIPS_FP_SUPPORT 1371 select GPIOLIB 1372 select SWIOTLB 1373 help 1374 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor 1375 cores implements the MIPS64R2 instruction set with many extensions, 1376 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000, 1377 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old 1378 Loongson-2E/2F is not covered here and will be removed in future. 1379 1380config CPU_LOONGSON2E 1381 bool "Loongson 2E" 1382 depends on SYS_HAS_CPU_LOONGSON2E 1383 select CPU_LOONGSON2EF 1384 help 1385 The Loongson 2E processor implements the MIPS III instruction set 1386 with many extensions. 1387 1388 It has an internal FPGA northbridge, which is compatible to 1389 bonito64. 1390 1391config CPU_LOONGSON2F 1392 bool "Loongson 2F" 1393 depends on SYS_HAS_CPU_LOONGSON2F 1394 select CPU_LOONGSON2EF 1395 help 1396 The Loongson 2F processor implements the MIPS III instruction set 1397 with many extensions. 1398 1399 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller 1400 have a similar programming interface with FPGA northbridge used in 1401 Loongson2E. 1402 1403config CPU_LOONGSON32 1404 bool "Loongson 32-bit CPU" 1405 depends on SYS_HAS_CPU_LOONGSON32 1406 select CPU_MIPS32 1407 select CPU_MIPSR2 1408 select CPU_HAS_PREFETCH 1409 select CPU_SUPPORTS_32BIT_KERNEL 1410 select CPU_SUPPORTS_HIGHMEM 1411 select CPU_SUPPORTS_CPUFREQ 1412 select LEDS_GPIO_REGISTER 1413 help 1414 The Loongson GS232 microarchitecture implements the MIPS32 Release 1 1415 instruction set and part of the MIPS32 Release 2 instruction set. 1416 1417config CPU_MIPS32_R1 1418 bool "MIPS32 Release 1" 1419 depends on SYS_HAS_CPU_MIPS32_R1 1420 select CPU_HAS_PREFETCH 1421 select CPU_SUPPORTS_32BIT_KERNEL 1422 select CPU_SUPPORTS_HIGHMEM 1423 help 1424 Choose this option to build a kernel for release 1 or later of the 1425 MIPS32 architecture. Most modern embedded systems with a 32-bit 1426 MIPS processor are based on a MIPS32 processor. If you know the 1427 specific type of processor in your system, choose those that one 1428 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. 1429 Release 2 of the MIPS32 architecture is available since several 1430 years so chances are you even have a MIPS32 Release 2 processor 1431 in which case you should choose CPU_MIPS32_R2 instead for better 1432 performance. 1433 1434config CPU_MIPS32_R2 1435 bool "MIPS32 Release 2" 1436 depends on SYS_HAS_CPU_MIPS32_R2 1437 select CPU_HAS_PREFETCH 1438 select CPU_SUPPORTS_32BIT_KERNEL 1439 select CPU_SUPPORTS_HIGHMEM 1440 select CPU_SUPPORTS_MSA 1441 help 1442 Choose this option to build a kernel for release 2 or later of the 1443 MIPS32 architecture. Most modern embedded systems with a 32-bit 1444 MIPS processor are based on a MIPS32 processor. If you know the 1445 specific type of processor in your system, choose those that one 1446 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. 1447 1448config CPU_MIPS32_R5 1449 bool "MIPS32 Release 5" 1450 depends on SYS_HAS_CPU_MIPS32_R5 1451 select CPU_HAS_PREFETCH 1452 select CPU_SUPPORTS_32BIT_KERNEL 1453 select CPU_SUPPORTS_HIGHMEM 1454 select CPU_SUPPORTS_MSA 1455 select CPU_SUPPORTS_VZ 1456 select MIPS_O32_FP64_SUPPORT 1457 help 1458 Choose this option to build a kernel for release 5 or later of the 1459 MIPS32 architecture. New MIPS processors, starting with the Warrior 1460 family, are based on a MIPS32r5 processor. If you own an older 1461 processor, you probably need to select MIPS32r1 or MIPS32r2 instead. 1462 1463config CPU_MIPS32_R6 1464 bool "MIPS32 Release 6" 1465 depends on SYS_HAS_CPU_MIPS32_R6 1466 select CPU_HAS_PREFETCH 1467 select CPU_NO_LOAD_STORE_LR 1468 select CPU_SUPPORTS_32BIT_KERNEL 1469 select CPU_SUPPORTS_HIGHMEM 1470 select CPU_SUPPORTS_MSA 1471 select CPU_SUPPORTS_VZ 1472 select MIPS_O32_FP64_SUPPORT 1473 help 1474 Choose this option to build a kernel for release 6 or later of the 1475 MIPS32 architecture. New MIPS processors, starting with the Warrior 1476 family, are based on a MIPS32r6 processor. If you own an older 1477 processor, you probably need to select MIPS32r1 or MIPS32r2 instead. 1478 1479config CPU_MIPS64_R1 1480 bool "MIPS64 Release 1" 1481 depends on SYS_HAS_CPU_MIPS64_R1 1482 select CPU_HAS_PREFETCH 1483 select CPU_SUPPORTS_32BIT_KERNEL 1484 select CPU_SUPPORTS_64BIT_KERNEL 1485 select CPU_SUPPORTS_HIGHMEM 1486 select CPU_SUPPORTS_HUGEPAGES 1487 help 1488 Choose this option to build a kernel for release 1 or later of the 1489 MIPS64 architecture. Many modern embedded systems with a 64-bit 1490 MIPS processor are based on a MIPS64 processor. If you know the 1491 specific type of processor in your system, choose those that one 1492 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. 1493 Release 2 of the MIPS64 architecture is available since several 1494 years so chances are you even have a MIPS64 Release 2 processor 1495 in which case you should choose CPU_MIPS64_R2 instead for better 1496 performance. 1497 1498config CPU_MIPS64_R2 1499 bool "MIPS64 Release 2" 1500 depends on SYS_HAS_CPU_MIPS64_R2 1501 select CPU_HAS_PREFETCH 1502 select CPU_SUPPORTS_32BIT_KERNEL 1503 select CPU_SUPPORTS_64BIT_KERNEL 1504 select CPU_SUPPORTS_HIGHMEM 1505 select CPU_SUPPORTS_HUGEPAGES 1506 select CPU_SUPPORTS_MSA 1507 help 1508 Choose this option to build a kernel for release 2 or later of the 1509 MIPS64 architecture. Many modern embedded systems with a 64-bit 1510 MIPS processor are based on a MIPS64 processor. If you know the 1511 specific type of processor in your system, choose those that one 1512 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. 1513 1514config CPU_MIPS64_R5 1515 bool "MIPS64 Release 5" 1516 depends on SYS_HAS_CPU_MIPS64_R5 1517 select CPU_HAS_PREFETCH 1518 select CPU_SUPPORTS_32BIT_KERNEL 1519 select CPU_SUPPORTS_64BIT_KERNEL 1520 select CPU_SUPPORTS_HIGHMEM 1521 select CPU_SUPPORTS_HUGEPAGES 1522 select CPU_SUPPORTS_MSA 1523 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 1524 select CPU_SUPPORTS_VZ 1525 help 1526 Choose this option to build a kernel for release 5 or later of the 1527 MIPS64 architecture. This is a intermediate MIPS architecture 1528 release partly implementing release 6 features. Though there is no 1529 any hardware known to be based on this release. 1530 1531config CPU_MIPS64_R6 1532 bool "MIPS64 Release 6" 1533 depends on SYS_HAS_CPU_MIPS64_R6 1534 select CPU_HAS_PREFETCH 1535 select CPU_NO_LOAD_STORE_LR 1536 select CPU_SUPPORTS_32BIT_KERNEL 1537 select CPU_SUPPORTS_64BIT_KERNEL 1538 select CPU_SUPPORTS_HIGHMEM 1539 select CPU_SUPPORTS_HUGEPAGES 1540 select CPU_SUPPORTS_MSA 1541 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 1542 select CPU_SUPPORTS_VZ 1543 help 1544 Choose this option to build a kernel for release 6 or later of the 1545 MIPS64 architecture. New MIPS processors, starting with the Warrior 1546 family, are based on a MIPS64r6 processor. If you own an older 1547 processor, you probably need to select MIPS64r1 or MIPS64r2 instead. 1548 1549config CPU_P5600 1550 bool "MIPS Warrior P5600" 1551 depends on SYS_HAS_CPU_P5600 1552 select CPU_HAS_PREFETCH 1553 select CPU_SUPPORTS_32BIT_KERNEL 1554 select CPU_SUPPORTS_HIGHMEM 1555 select CPU_SUPPORTS_MSA 1556 select CPU_SUPPORTS_CPUFREQ 1557 select CPU_SUPPORTS_VZ 1558 select CPU_MIPSR2_IRQ_VI 1559 select CPU_MIPSR2_IRQ_EI 1560 select MIPS_O32_FP64_SUPPORT 1561 help 1562 Choose this option to build a kernel for MIPS Warrior P5600 CPU. 1563 It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes, 1564 MMU with two-levels TLB, UCA, MSA, MDU core level features and system 1565 level features like up to six P5600 calculation cores, CM2 with L2 1566 cache, IOCU/IOMMU (though might be unused depending on the system- 1567 specific IP core configuration), GIC, CPC, virtualisation module, 1568 eJTAG and PDtrace. 1569 1570config CPU_R3000 1571 bool "R3000" 1572 depends on SYS_HAS_CPU_R3000 1573 select CPU_HAS_WB 1574 select CPU_R3K_TLB 1575 select CPU_SUPPORTS_32BIT_KERNEL 1576 select CPU_SUPPORTS_HIGHMEM 1577 help 1578 Please make sure to pick the right CPU type. Linux/MIPS is not 1579 designed to be generic, i.e. Kernels compiled for R3000 CPUs will 1580 *not* work on R4000 machines and vice versa. However, since most 1581 of the supported machines have an R4000 (or similar) CPU, R4x00 1582 might be a safe bet. If the resulting kernel does not work, 1583 try to recompile with R3000. 1584 1585config CPU_R4300 1586 bool "R4300" 1587 depends on SYS_HAS_CPU_R4300 1588 select CPU_SUPPORTS_32BIT_KERNEL 1589 select CPU_SUPPORTS_64BIT_KERNEL 1590 help 1591 MIPS Technologies R4300-series processors. 1592 1593config CPU_R4X00 1594 bool "R4x00" 1595 depends on SYS_HAS_CPU_R4X00 1596 select CPU_SUPPORTS_32BIT_KERNEL 1597 select CPU_SUPPORTS_64BIT_KERNEL 1598 select CPU_SUPPORTS_HUGEPAGES 1599 help 1600 MIPS Technologies R4000-series processors other than 4300, including 1601 the R4000, R4400, R4600, and 4700. 1602 1603config CPU_TX49XX 1604 bool "R49XX" 1605 depends on SYS_HAS_CPU_TX49XX 1606 select CPU_HAS_PREFETCH 1607 select CPU_SUPPORTS_32BIT_KERNEL 1608 select CPU_SUPPORTS_64BIT_KERNEL 1609 select CPU_SUPPORTS_HUGEPAGES 1610 1611config CPU_R5000 1612 bool "R5000" 1613 depends on SYS_HAS_CPU_R5000 1614 select CPU_SUPPORTS_32BIT_KERNEL 1615 select CPU_SUPPORTS_64BIT_KERNEL 1616 select CPU_SUPPORTS_HUGEPAGES 1617 help 1618 MIPS Technologies R5000-series processors other than the Nevada. 1619 1620config CPU_R5500 1621 bool "R5500" 1622 depends on SYS_HAS_CPU_R5500 1623 select CPU_SUPPORTS_32BIT_KERNEL 1624 select CPU_SUPPORTS_64BIT_KERNEL 1625 select CPU_SUPPORTS_HUGEPAGES 1626 help 1627 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV 1628 instruction set. 1629 1630config CPU_NEVADA 1631 bool "RM52xx" 1632 depends on SYS_HAS_CPU_NEVADA 1633 select CPU_SUPPORTS_32BIT_KERNEL 1634 select CPU_SUPPORTS_64BIT_KERNEL 1635 select CPU_SUPPORTS_HUGEPAGES 1636 help 1637 QED / PMC-Sierra RM52xx-series ("Nevada") processors. 1638 1639config CPU_R10000 1640 bool "R10000" 1641 depends on SYS_HAS_CPU_R10000 1642 select CPU_HAS_PREFETCH 1643 select CPU_SUPPORTS_32BIT_KERNEL 1644 select CPU_SUPPORTS_64BIT_KERNEL 1645 select CPU_SUPPORTS_HIGHMEM 1646 select CPU_SUPPORTS_HUGEPAGES 1647 help 1648 MIPS Technologies R10000-series processors. 1649 1650config CPU_RM7000 1651 bool "RM7000" 1652 depends on SYS_HAS_CPU_RM7000 1653 select CPU_HAS_PREFETCH 1654 select CPU_SUPPORTS_32BIT_KERNEL 1655 select CPU_SUPPORTS_64BIT_KERNEL 1656 select CPU_SUPPORTS_HIGHMEM 1657 select CPU_SUPPORTS_HUGEPAGES 1658 1659config CPU_SB1 1660 bool "SB1" 1661 depends on SYS_HAS_CPU_SB1 1662 select CPU_SUPPORTS_32BIT_KERNEL 1663 select CPU_SUPPORTS_64BIT_KERNEL 1664 select CPU_SUPPORTS_HIGHMEM 1665 select CPU_SUPPORTS_HUGEPAGES 1666 select WEAK_ORDERING 1667 1668config CPU_CAVIUM_OCTEON 1669 bool "Cavium Octeon processor" 1670 depends on SYS_HAS_CPU_CAVIUM_OCTEON 1671 select CPU_HAS_PREFETCH 1672 select CPU_SUPPORTS_64BIT_KERNEL 1673 select HAVE_PAGE_SIZE_8KB if !MIPS_VA_BITS_48 1674 select HAVE_PAGE_SIZE_32KB if !MIPS_VA_BITS_48 1675 select WEAK_ORDERING 1676 select CPU_SUPPORTS_HIGHMEM 1677 select CPU_SUPPORTS_HUGEPAGES 1678 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 1679 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 1680 select MIPS_L1_CACHE_SHIFT_7 1681 select CPU_SUPPORTS_VZ 1682 help 1683 The Cavium Octeon processor is a highly integrated chip containing 1684 many ethernet hardware widgets for networking tasks. The processor 1685 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets. 1686 Full details can be found at http://www.caviumnetworks.com. 1687 1688config CPU_BMIPS 1689 bool "Broadcom BMIPS" 1690 depends on SYS_HAS_CPU_BMIPS 1691 select CPU_MIPS32 1692 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300 1693 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350 1694 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380 1695 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000 1696 select CPU_SUPPORTS_32BIT_KERNEL 1697 select DMA_NONCOHERENT 1698 select IRQ_MIPS_CPU 1699 select SWAP_IO_SPACE 1700 select WEAK_ORDERING 1701 select CPU_SUPPORTS_HIGHMEM 1702 select CPU_HAS_PREFETCH 1703 select CPU_SUPPORTS_CPUFREQ 1704 select MIPS_EXTERNAL_TIMER 1705 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU 1706 help 1707 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors. 1708 1709endchoice 1710 1711config LOONGSON3_ENHANCEMENT 1712 bool "New Loongson-3 CPU Enhancements" 1713 default n 1714 depends on CPU_LOONGSON64 1715 help 1716 New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A 1717 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as 1718 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User 1719 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer), 1720 Fast TLB refill support, etc. 1721 1722 This option enable those enhancements which are not probed at run 1723 time. If you want a generic kernel to run on all Loongson 3 machines, 1724 please say 'N' here. If you want a high-performance kernel to run on 1725 new Loongson-3 machines only, please say 'Y' here. 1726 1727config CPU_LOONGSON3_WORKAROUNDS 1728 bool "Loongson-3 LLSC Workarounds" 1729 default y if SMP 1730 depends on CPU_LOONGSON64 1731 help 1732 Loongson-3 processors have the llsc issues which require workarounds. 1733 Without workarounds the system may hang unexpectedly. 1734 1735 Say Y, unless you know what you are doing. 1736 1737config CPU_LOONGSON3_CPUCFG_EMULATION 1738 bool "Emulate the CPUCFG instruction on older Loongson cores" 1739 default y 1740 depends on CPU_LOONGSON64 1741 help 1742 Loongson-3A R4 and newer have the CPUCFG instruction available for 1743 userland to query CPU capabilities, much like CPUID on x86. This 1744 option provides emulation of the instruction on older Loongson 1745 cores, back to Loongson-3A1000. 1746 1747 If unsure, please say Y. 1748 1749config CPU_MIPS32_3_5_FEATURES 1750 bool "MIPS32 Release 3.5 Features" 1751 depends on SYS_HAS_CPU_MIPS32_R3_5 1752 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \ 1753 CPU_P5600 1754 help 1755 Choose this option to build a kernel for release 2 or later of the 1756 MIPS32 architecture including features from the 3.5 release such as 1757 support for Enhanced Virtual Addressing (EVA). 1758 1759config CPU_MIPS32_3_5_EVA 1760 bool "Enhanced Virtual Addressing (EVA)" 1761 depends on CPU_MIPS32_3_5_FEATURES 1762 select EVA 1763 default y 1764 help 1765 Choose this option if you want to enable the Enhanced Virtual 1766 Addressing (EVA) on your MIPS32 core (such as proAptiv). 1767 One of its primary benefits is an increase in the maximum size 1768 of lowmem (up to 3GB). If unsure, say 'N' here. 1769 1770config CPU_MIPS32_R5_FEATURES 1771 bool "MIPS32 Release 5 Features" 1772 depends on SYS_HAS_CPU_MIPS32_R5 1773 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600 1774 help 1775 Choose this option to build a kernel for release 2 or later of the 1776 MIPS32 architecture including features from release 5 such as 1777 support for Extended Physical Addressing (XPA). 1778 1779config CPU_MIPS32_R5_XPA 1780 bool "Extended Physical Addressing (XPA)" 1781 depends on CPU_MIPS32_R5_FEATURES 1782 depends on !EVA 1783 depends on !PAGE_SIZE_4KB 1784 depends on SYS_SUPPORTS_HIGHMEM 1785 select XPA 1786 select HIGHMEM 1787 select PHYS_ADDR_T_64BIT 1788 default n 1789 help 1790 Choose this option if you want to enable the Extended Physical 1791 Addressing (XPA) on your MIPS32 core (such as P5600 series). The 1792 benefit is to increase physical addressing equal to or greater 1793 than 40 bits. Note that this has the side effect of turning on 1794 64-bit addressing which in turn makes the PTEs 64-bit in size. 1795 If unsure, say 'N' here. 1796 1797if CPU_LOONGSON2F 1798config CPU_NOP_WORKAROUNDS 1799 bool 1800 1801config CPU_JUMP_WORKAROUNDS 1802 bool 1803 1804config CPU_LOONGSON2F_WORKAROUNDS 1805 bool "Loongson 2F Workarounds" 1806 default y 1807 select CPU_NOP_WORKAROUNDS 1808 select CPU_JUMP_WORKAROUNDS 1809 help 1810 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which 1811 require workarounds. Without workarounds the system may hang 1812 unexpectedly. For more information please refer to the gas 1813 -mfix-loongson2f-nop and -mfix-loongson2f-jump options. 1814 1815 Loongson 2F03 and later have fixed these issues and no workarounds 1816 are needed. The workarounds have no significant side effect on them 1817 but may decrease the performance of the system so this option should 1818 be disabled unless the kernel is intended to be run on 2F01 or 2F02 1819 systems. 1820 1821 If unsure, please say Y. 1822endif # CPU_LOONGSON2F 1823 1824config SYS_SUPPORTS_ZBOOT 1825 bool 1826 select HAVE_KERNEL_GZIP 1827 select HAVE_KERNEL_BZIP2 1828 select HAVE_KERNEL_LZ4 1829 select HAVE_KERNEL_LZMA 1830 select HAVE_KERNEL_LZO 1831 select HAVE_KERNEL_XZ 1832 select HAVE_KERNEL_ZSTD 1833 1834config SYS_SUPPORTS_ZBOOT_UART16550 1835 bool 1836 select SYS_SUPPORTS_ZBOOT 1837 1838config SYS_SUPPORTS_ZBOOT_UART_PROM 1839 bool 1840 select SYS_SUPPORTS_ZBOOT 1841 1842config CPU_LOONGSON2EF 1843 bool 1844 select CPU_SUPPORTS_32BIT_KERNEL 1845 select CPU_SUPPORTS_64BIT_KERNEL 1846 select CPU_SUPPORTS_HIGHMEM 1847 select CPU_SUPPORTS_HUGEPAGES 1848 select RTC_MC146818_LIB 1849 1850config CPU_BMIPS32_3300 1851 select SMP_UP if SMP 1852 bool 1853 1854config CPU_BMIPS4350 1855 bool 1856 select SYS_SUPPORTS_SMP 1857 select SYS_SUPPORTS_HOTPLUG_CPU 1858 1859config CPU_BMIPS4380 1860 bool 1861 select MIPS_L1_CACHE_SHIFT_6 1862 select SYS_SUPPORTS_SMP 1863 select SYS_SUPPORTS_HOTPLUG_CPU 1864 select CPU_HAS_RIXI 1865 1866config CPU_BMIPS5000 1867 bool 1868 select MIPS_CPU_SCACHE 1869 select MIPS_L1_CACHE_SHIFT_7 1870 select SYS_SUPPORTS_SMP 1871 select SYS_SUPPORTS_HOTPLUG_CPU 1872 select CPU_HAS_RIXI 1873 1874config SYS_HAS_CPU_LOONGSON64 1875 bool 1876 select CPU_SUPPORTS_CPUFREQ 1877 select CPU_HAS_RIXI 1878 1879config SYS_HAS_CPU_LOONGSON2E 1880 bool 1881 1882config SYS_HAS_CPU_LOONGSON2F 1883 bool 1884 select CPU_SUPPORTS_CPUFREQ 1885 select CPU_SUPPORTS_ADDRWINCFG if 64BIT 1886 1887config SYS_HAS_CPU_LOONGSON32 1888 bool 1889 1890config SYS_HAS_CPU_MIPS32_R1 1891 bool 1892 1893config SYS_HAS_CPU_MIPS32_R2 1894 bool 1895 1896config SYS_HAS_CPU_MIPS32_R3_5 1897 bool 1898 1899config SYS_HAS_CPU_MIPS32_R5 1900 bool 1901 1902config SYS_HAS_CPU_MIPS32_R6 1903 bool 1904 1905config SYS_HAS_CPU_MIPS64_R1 1906 bool 1907 1908config SYS_HAS_CPU_MIPS64_R2 1909 bool 1910 1911config SYS_HAS_CPU_MIPS64_R5 1912 bool 1913 1914config SYS_HAS_CPU_MIPS64_R6 1915 bool 1916 1917config SYS_HAS_CPU_P5600 1918 bool 1919 1920config SYS_HAS_CPU_R3000 1921 bool 1922 1923config SYS_HAS_CPU_R4300 1924 bool 1925 1926config SYS_HAS_CPU_R4X00 1927 bool 1928 1929config SYS_HAS_CPU_TX49XX 1930 bool 1931 1932config SYS_HAS_CPU_R5000 1933 bool 1934 1935config SYS_HAS_CPU_R5500 1936 bool 1937 1938config SYS_HAS_CPU_NEVADA 1939 bool 1940 1941config SYS_HAS_CPU_R10000 1942 bool 1943 1944config SYS_HAS_CPU_RM7000 1945 bool 1946 1947config SYS_HAS_CPU_SB1 1948 bool 1949 1950config SYS_HAS_CPU_CAVIUM_OCTEON 1951 bool 1952 1953config SYS_HAS_CPU_BMIPS 1954 bool 1955 1956config SYS_HAS_CPU_BMIPS32_3300 1957 bool 1958 select SYS_HAS_CPU_BMIPS 1959 1960config SYS_HAS_CPU_BMIPS4350 1961 bool 1962 select SYS_HAS_CPU_BMIPS 1963 1964config SYS_HAS_CPU_BMIPS4380 1965 bool 1966 select SYS_HAS_CPU_BMIPS 1967 1968config SYS_HAS_CPU_BMIPS5000 1969 bool 1970 select SYS_HAS_CPU_BMIPS 1971 1972# 1973# CPU may reorder R->R, R->W, W->R, W->W 1974# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC 1975# 1976config WEAK_ORDERING 1977 bool 1978 1979# 1980# CPU may reorder reads and writes beyond LL/SC 1981# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC 1982# 1983config WEAK_REORDERING_BEYOND_LLSC 1984 bool 1985endmenu 1986 1987# 1988# These two indicate any level of the MIPS32 and MIPS64 architecture 1989# 1990config CPU_MIPS32 1991 bool 1992 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \ 1993 CPU_MIPS32_R6 || CPU_P5600 1994 1995config CPU_MIPS64 1996 bool 1997 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \ 1998 CPU_MIPS64_R6 || CPU_LOONGSON64 || CPU_CAVIUM_OCTEON 1999 2000# 2001# These indicate the revision of the architecture 2002# 2003config CPU_MIPSR1 2004 bool 2005 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1 2006 2007config CPU_MIPSR2 2008 bool 2009 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON 2010 select CPU_HAS_RIXI 2011 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 2012 select MIPS_SPRAM 2013 2014config CPU_MIPSR5 2015 bool 2016 default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600 2017 select CPU_HAS_RIXI 2018 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 2019 select MIPS_SPRAM 2020 2021config CPU_MIPSR6 2022 bool 2023 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6 2024 select CPU_HAS_RIXI 2025 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN 2026 select HAVE_ARCH_BITREVERSE 2027 select MIPS_ASID_BITS_VARIABLE 2028 select MIPS_SPRAM 2029 2030config TARGET_ISA_REV 2031 int 2032 default 1 if CPU_MIPSR1 2033 default 2 if CPU_MIPSR2 2034 default 5 if CPU_MIPSR5 2035 default 6 if CPU_MIPSR6 2036 default 0 2037 help 2038 Reflects the ISA revision being targeted by the kernel build. This 2039 is effectively the Kconfig equivalent of MIPS_ISA_REV. 2040 2041config EVA 2042 bool 2043 2044config XPA 2045 bool 2046 2047config SYS_SUPPORTS_32BIT_KERNEL 2048 bool 2049config SYS_SUPPORTS_64BIT_KERNEL 2050 bool 2051config CPU_SUPPORTS_32BIT_KERNEL 2052 bool 2053config CPU_SUPPORTS_64BIT_KERNEL 2054 bool 2055config CPU_SUPPORTS_CPUFREQ 2056 bool 2057config CPU_SUPPORTS_ADDRWINCFG 2058 bool 2059config CPU_SUPPORTS_HUGEPAGES 2060 bool 2061 depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA)) 2062config CPU_SUPPORTS_VZ 2063 bool 2064config MIPS_PGD_C0_CONTEXT 2065 bool 2066 depends on 64BIT 2067 default y if (CPU_MIPSR2 || CPU_MIPSR6) 2068 2069# 2070# Set to y for ptrace access to watch registers. 2071# 2072config HARDWARE_WATCHPOINTS 2073 bool 2074 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6 2075 2076menu "Kernel type" 2077 2078choice 2079 prompt "Kernel code model" 2080 help 2081 You should only select this option if you have a workload that 2082 actually benefits from 64-bit processing or if your machine has 2083 large memory. You will only be presented a single option in this 2084 menu if your system does not support both 32-bit and 64-bit kernels. 2085 2086config 32BIT 2087 bool "32-bit kernel" 2088 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL 2089 select TRAD_SIGNALS 2090 help 2091 Select this option if you want to build a 32-bit kernel. 2092 2093config 64BIT 2094 bool "64-bit kernel" 2095 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL 2096 help 2097 Select this option if you want to build a 64-bit kernel. 2098 2099endchoice 2100 2101config MIPS_VA_BITS_48 2102 bool "48 bits virtual memory" 2103 depends on 64BIT 2104 help 2105 Support a maximum at least 48 bits of application virtual 2106 memory. Default is 40 bits or less, depending on the CPU. 2107 For page sizes 16k and above, this option results in a small 2108 memory overhead for page tables. For 4k page size, a fourth 2109 level of page tables is added which imposes both a memory 2110 overhead as well as slower TLB fault handling. 2111 2112 If unsure, say N. 2113 2114config ZBOOT_LOAD_ADDRESS 2115 hex "Compressed kernel load address" 2116 default 0xffffffff80400000 if BCM47XX 2117 default 0x0 2118 depends on SYS_SUPPORTS_ZBOOT 2119 help 2120 The address to load compressed kernel, aka vmlinuz. 2121 2122 This is only used if non-zero. 2123 2124config ARCH_FORCE_MAX_ORDER 2125 int "Maximum zone order" 2126 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB 2127 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB 2128 default "11" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB 2129 default "10" 2130 help 2131 The kernel memory allocator divides physically contiguous memory 2132 blocks into "zones", where each zone is a power of two number of 2133 pages. This option selects the largest power of two that the kernel 2134 keeps in the memory allocator. If you need to allocate very large 2135 blocks of physically contiguous memory, then you may need to 2136 increase this value. 2137 2138 The page size is not necessarily 4KB. Keep this in mind 2139 when choosing a value for this option. 2140 2141config BOARD_SCACHE 2142 bool 2143 2144config IP22_CPU_SCACHE 2145 bool 2146 select BOARD_SCACHE 2147 2148# 2149# Support for a MIPS32 / MIPS64 style S-caches 2150# 2151config MIPS_CPU_SCACHE 2152 bool 2153 select BOARD_SCACHE 2154 2155config R5000_CPU_SCACHE 2156 bool 2157 select BOARD_SCACHE 2158 2159config RM7000_CPU_SCACHE 2160 bool 2161 select BOARD_SCACHE 2162 2163config SIBYTE_DMA_PAGEOPS 2164 bool "Use DMA to clear/copy pages" 2165 depends on CPU_SB1 2166 help 2167 Instead of using the CPU to zero and copy pages, use a Data Mover 2168 channel. These DMA channels are otherwise unused by the standard 2169 SiByte Linux port. Seems to give a small performance benefit. 2170 2171config CPU_HAS_PREFETCH 2172 bool 2173 2174config CPU_GENERIC_DUMP_TLB 2175 bool 2176 default y if !CPU_R3000 2177 2178config MIPS_FP_SUPPORT 2179 bool "Floating Point support" if EXPERT 2180 default y 2181 help 2182 Select y to include support for floating point in the kernel 2183 including initialization of FPU hardware, FP context save & restore 2184 and emulation of an FPU where necessary. Without this support any 2185 userland program attempting to use floating point instructions will 2186 receive a SIGILL. 2187 2188 If you know that your userland will not attempt to use floating point 2189 instructions then you can say n here to shrink the kernel a little. 2190 2191 If unsure, say y. 2192 2193config CPU_R2300_FPU 2194 bool 2195 depends on MIPS_FP_SUPPORT 2196 default y if CPU_R3000 2197 2198config CPU_R3K_TLB 2199 bool 2200 2201config CPU_R4K_FPU 2202 bool 2203 depends on MIPS_FP_SUPPORT 2204 default y if !CPU_R2300_FPU 2205 2206config CPU_R4K_CACHE_TLB 2207 bool 2208 default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON) 2209 2210config MIPS_MT_SMP 2211 bool "MIPS MT SMP support (1 TC on each available VPE)" 2212 default y 2213 depends on TARGET_ISA_REV > 0 && TARGET_ISA_REV < 6 2214 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MICROMIPS 2215 select CPU_MIPSR2_IRQ_VI 2216 select CPU_MIPSR2_IRQ_EI 2217 select SYNC_R4K 2218 select MIPS_MT 2219 select SMP 2220 select SMP_UP 2221 select SYS_SUPPORTS_SMP 2222 select ARCH_SUPPORTS_SCHED_SMT 2223 select MIPS_PERF_SHARED_TC_COUNTERS 2224 help 2225 This is a kernel model which is known as SMVP. This is supported 2226 on cores with the MT ASE and uses the available VPEs to implement 2227 virtual processors which supports SMP. This is equivalent to the 2228 Intel Hyperthreading feature. For further information go to 2229 <http://www.imgtec.com/mips/mips-multithreading.asp>. 2230 2231config MIPS_MT 2232 bool 2233 2234config SYS_SUPPORTS_MULTITHREADING 2235 bool 2236 2237config MIPS_MT_FPAFF 2238 bool "Dynamic FPU affinity for FP-intensive threads" 2239 default y 2240 depends on MIPS_MT_SMP 2241 2242config MIPSR2_TO_R6_EMULATOR 2243 bool "MIPS R2-to-R6 emulator" 2244 depends on CPU_MIPSR6 2245 depends on MIPS_FP_SUPPORT 2246 default y 2247 help 2248 Choose this option if you want to run non-R6 MIPS userland code. 2249 Even if you say 'Y' here, the emulator will still be disabled by 2250 default. You can enable it using the 'mipsr2emu' kernel option. 2251 The only reason this is a build-time option is to save ~14K from the 2252 final kernel image. 2253 2254config SYS_SUPPORTS_VPE_LOADER 2255 bool 2256 depends on SYS_SUPPORTS_MULTITHREADING 2257 help 2258 Indicates that the platform supports the VPE loader, and provides 2259 physical_memsize. 2260 2261config MIPS_VPE_LOADER 2262 bool "VPE loader support." 2263 depends on SYS_SUPPORTS_VPE_LOADER && MODULES 2264 select CPU_MIPSR2_IRQ_VI 2265 select CPU_MIPSR2_IRQ_EI 2266 select MIPS_MT 2267 help 2268 Includes a loader for loading an elf relocatable object 2269 onto another VPE and running it. 2270 2271config MIPS_VPE_LOADER_MT 2272 bool 2273 default "y" 2274 depends on MIPS_VPE_LOADER 2275 2276config MIPS_VPE_LOADER_TOM 2277 bool "Load VPE program into memory hidden from linux" 2278 depends on MIPS_VPE_LOADER 2279 default y 2280 help 2281 The loader can use memory that is present but has been hidden from 2282 Linux using the kernel command line option "mem=xxMB". It's up to 2283 you to ensure the amount you put in the option and the space your 2284 program requires is less or equal to the amount physically present. 2285 2286config MIPS_VPE_APSP_API 2287 bool "Enable support for AP/SP API (RTLX)" 2288 depends on MIPS_VPE_LOADER 2289 2290config MIPS_VPE_APSP_API_MT 2291 bool 2292 default "y" 2293 depends on MIPS_VPE_APSP_API 2294 2295config MIPS_CPS 2296 bool "MIPS Coherent Processing System support" 2297 depends on SYS_SUPPORTS_MIPS_CPS 2298 select MIPS_CM 2299 select MIPS_CPS_PM if HOTPLUG_CPU 2300 select SMP 2301 select HOTPLUG_SMT if HOTPLUG_PARALLEL 2302 select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU 2303 select SYNC_R4K if (CEVT_R4K || CSRC_R4K) 2304 select SYS_SUPPORTS_HOTPLUG_CPU 2305 select ARCH_SUPPORTS_SCHED_SMT if CPU_MIPSR6 2306 select SYS_SUPPORTS_SMP 2307 select WEAK_ORDERING 2308 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU 2309 help 2310 Select this if you wish to run an SMP kernel across multiple cores 2311 within a MIPS Coherent Processing System. When this option is 2312 enabled the kernel will probe for other cores and boot them with 2313 no external assistance. It is safe to enable this when hardware 2314 support is unavailable. 2315 2316config MIPS_CPS_PM 2317 depends on MIPS_CPS 2318 bool 2319 2320config MIPS_CM 2321 bool 2322 select MIPS_CPC 2323 2324config MIPS_CPC 2325 bool 2326 2327config SB1_PASS_2_WORKAROUNDS 2328 bool 2329 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2) 2330 default y 2331 2332config SB1_PASS_2_1_WORKAROUNDS 2333 bool 2334 depends on CPU_SB1 && CPU_SB1_PASS_2 2335 default y 2336 2337choice 2338 prompt "SmartMIPS or microMIPS ASE support" 2339 2340config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS 2341 bool "None" 2342 help 2343 Select this if you want neither microMIPS nor SmartMIPS support 2344 2345config CPU_HAS_SMARTMIPS 2346 depends on SYS_SUPPORTS_SMARTMIPS 2347 bool "SmartMIPS" 2348 help 2349 SmartMIPS is a extension of the MIPS32 architecture aimed at 2350 increased security at both hardware and software level for 2351 smartcards. Enabling this option will allow proper use of the 2352 SmartMIPS instructions by Linux applications. However a kernel with 2353 this option will not work on a MIPS core without SmartMIPS core. If 2354 you don't know you probably don't have SmartMIPS and should say N 2355 here. 2356 2357config CPU_MICROMIPS 2358 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6 2359 bool "microMIPS" 2360 help 2361 When this option is enabled the kernel will be built using the 2362 microMIPS ISA 2363 2364endchoice 2365 2366config CPU_HAS_MSA 2367 bool "Support for the MIPS SIMD Architecture" 2368 depends on CPU_SUPPORTS_MSA 2369 depends on MIPS_FP_SUPPORT 2370 depends on 64BIT || MIPS_O32_FP64_SUPPORT 2371 help 2372 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers 2373 and a set of SIMD instructions to operate on them. When this option 2374 is enabled the kernel will support allocating & switching MSA 2375 vector register contexts. If you know that your kernel will only be 2376 running on CPUs which do not support MSA or that your userland will 2377 not be making use of it then you may wish to say N here to reduce 2378 the size & complexity of your kernel. 2379 2380 If unsure, say Y. 2381 2382config CPU_HAS_WB 2383 bool 2384 2385config XKS01 2386 bool 2387 2388config CPU_HAS_DIEI 2389 depends on !CPU_DIEI_BROKEN 2390 bool 2391 2392config CPU_DIEI_BROKEN 2393 bool 2394 2395config CPU_HAS_RIXI 2396 bool 2397 2398config CPU_NO_LOAD_STORE_LR 2399 bool 2400 help 2401 CPU lacks support for unaligned load and store instructions: 2402 LWL, LWR, SWL, SWR (Load/store word left/right). 2403 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit 2404 systems). 2405 2406# 2407# Vectored interrupt mode is an R2 feature 2408# 2409config CPU_MIPSR2_IRQ_VI 2410 bool 2411 2412# 2413# Extended interrupt mode is an R2 feature 2414# 2415config CPU_MIPSR2_IRQ_EI 2416 bool 2417 2418config CPU_HAS_SYNC 2419 bool 2420 depends on !CPU_R3000 2421 default y 2422 2423# 2424# CPU non-features 2425# 2426 2427# Work around the "daddi" and "daddiu" CPU errata: 2428# 2429# - The `daddi' instruction fails to trap on overflow. 2430# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2431# erratum #23 2432# 2433# - The `daddiu' instruction can produce an incorrect result. 2434# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2435# erratum #41 2436# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum 2437# #15 2438# "MIPS R4400PC/SC Errata, Processor Revision 1.0", erratum #7 2439# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #5 2440config CPU_DADDI_WORKAROUNDS 2441 bool 2442 2443# Work around certain R4000 CPU errata (as implemented by GCC): 2444# 2445# - A double-word or a variable shift may give an incorrect result 2446# if executed immediately after starting an integer division: 2447# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2448# erratum #28 2449# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum 2450# #19 2451# 2452# - A double-word or a variable shift may give an incorrect result 2453# if executed while an integer multiplication is in progress: 2454# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2455# errata #16 & #28 2456# 2457# - An integer division may give an incorrect result if started in 2458# a delay slot of a taken branch or a jump: 2459# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0", 2460# erratum #52 2461config CPU_R4000_WORKAROUNDS 2462 bool 2463 select CPU_R4400_WORKAROUNDS 2464 2465# Work around certain R4400 CPU errata (as implemented by GCC): 2466# 2467# - A double-word or a variable shift may give an incorrect result 2468# if executed immediately after starting an integer division: 2469# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #10 2470# "MIPS R4400MC Errata, Processor Revision 2.0 & 3.0", erratum #4 2471config CPU_R4400_WORKAROUNDS 2472 bool 2473 2474config CPU_R4X00_BUGS64 2475 bool 2476 default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1) 2477 2478config MIPS_ASID_SHIFT 2479 int 2480 default 6 if CPU_R3000 2481 default 0 2482 2483config MIPS_ASID_BITS 2484 int 2485 default 0 if MIPS_ASID_BITS_VARIABLE 2486 default 6 if CPU_R3000 2487 default 8 2488 2489config MIPS_ASID_BITS_VARIABLE 2490 bool 2491 2492# R4600 erratum. Due to the lack of errata information the exact 2493# technical details aren't known. I've experimentally found that disabling 2494# interrupts during indexed I-cache flushes seems to be sufficient to deal 2495# with the issue. 2496config WAR_R4600_V1_INDEX_ICACHEOP 2497 bool 2498 2499# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata: 2500# 2501# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D, 2502# Hit_Invalidate_D and Create_Dirty_Excl_D should only be 2503# executed if there is no other dcache activity. If the dcache is 2504# accessed for another instruction immediately preceding when these 2505# cache instructions are executing, it is possible that the dcache 2506# tag match outputs used by these cache instructions will be 2507# incorrect. These cache instructions should be preceded by at least 2508# four instructions that are not any kind of load or store 2509# instruction. 2510# 2511# This is not allowed: lw 2512# nop 2513# nop 2514# nop 2515# cache Hit_Writeback_Invalidate_D 2516# 2517# This is allowed: lw 2518# nop 2519# nop 2520# nop 2521# nop 2522# cache Hit_Writeback_Invalidate_D 2523config WAR_R4600_V1_HIT_CACHEOP 2524 bool 2525 2526# Writeback and invalidate the primary cache dcache before DMA. 2527# 2528# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D, 2529# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only 2530# operate correctly if the internal data cache refill buffer is empty. These 2531# CACHE instructions should be separated from any potential data cache miss 2532# by a load instruction to an uncached address to empty the response buffer." 2533# (Revision 2.0 device errata from IDT available on https://www.idt.com/ 2534# in .pdf format.) 2535config WAR_R4600_V2_HIT_CACHEOP 2536 bool 2537 2538# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for 2539# the line which this instruction itself exists, the following 2540# operation is not guaranteed." 2541# 2542# Workaround: do two phase flushing for Index_Invalidate_I 2543config WAR_TX49XX_ICACHE_INDEX_INV 2544 bool 2545 2546# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra 2547# opposes it being called that) where invalid instructions in the same 2548# I-cache line worth of instructions being fetched may case spurious 2549# exceptions. 2550config WAR_ICACHE_REFILLS 2551 bool 2552 2553# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that 2554# may cause ll / sc and lld / scd sequences to execute non-atomically. 2555config WAR_R10000_LLSC 2556 bool 2557 2558# 34K core erratum: "Problems Executing the TLBR Instruction" 2559config WAR_MIPS34K_MISSED_ITLB 2560 bool 2561 2562# 2563# - Highmem only makes sense for the 32-bit kernel. 2564# - The current highmem code will only work properly on physically indexed 2565# caches such as R3000, SB1, R7000 or those that look like they're virtually 2566# indexed such as R4000/R4400 SC and MC versions or R10000. So for the 2567# moment we protect the user and offer the highmem option only on machines 2568# where it's known to be safe. This will not offer highmem on a few systems 2569# such as MIPS32 and MIPS64 CPUs which may have virtual and physically 2570# indexed CPUs but we're playing safe. 2571# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we 2572# know they might have memory configurations that could make use of highmem 2573# support. 2574# 2575config HIGHMEM 2576 bool "High Memory Support" 2577 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA 2578 select KMAP_LOCAL 2579 2580config CPU_SUPPORTS_HIGHMEM 2581 bool 2582 2583config SYS_SUPPORTS_HIGHMEM 2584 bool 2585 2586config SYS_SUPPORTS_SMARTMIPS 2587 bool 2588 2589config SYS_SUPPORTS_MICROMIPS 2590 bool 2591 2592config SYS_SUPPORTS_MIPS16 2593 bool 2594 help 2595 This option must be set if a kernel might be executed on a MIPS16- 2596 enabled CPU even if MIPS16 is not actually being used. In other 2597 words, it makes the kernel MIPS16-tolerant. 2598 2599config CPU_SUPPORTS_MSA 2600 bool 2601 2602config ARCH_FLATMEM_ENABLE 2603 def_bool y 2604 depends on !NUMA && !CPU_LOONGSON2EF 2605 2606config ARCH_SPARSEMEM_ENABLE 2607 bool 2608 2609config NUMA 2610 bool "NUMA Support" 2611 depends on SYS_SUPPORTS_NUMA 2612 select SMP 2613 select HAVE_SETUP_PER_CPU_AREA 2614 select NEED_PER_CPU_EMBED_FIRST_CHUNK 2615 help 2616 Say Y to compile the kernel to support NUMA (Non-Uniform Memory 2617 Access). This option improves performance on systems with more 2618 than two nodes; on two node systems it is generally better to 2619 leave it disabled; on single node systems leave this option 2620 disabled. 2621 2622config SYS_SUPPORTS_NUMA 2623 bool 2624 2625config RELOCATABLE 2626 bool "Relocatable kernel" 2627 depends on SYS_SUPPORTS_RELOCATABLE 2628 depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \ 2629 CPU_MIPS32_R5 || CPU_MIPS64_R5 || \ 2630 CPU_MIPS32_R6 || CPU_MIPS64_R6 || \ 2631 CPU_P5600 || CAVIUM_OCTEON_SOC || \ 2632 CPU_LOONGSON64 2633 select ARCH_VMLINUX_NEEDS_RELOCS 2634 help 2635 This builds a kernel image that retains relocation information 2636 so it can be loaded someplace besides the default 1MB. 2637 The relocations make the kernel binary about 15% larger, 2638 but are discarded at runtime 2639 2640config RELOCATION_TABLE_SIZE 2641 hex "Relocation table size" 2642 depends on RELOCATABLE 2643 range 0x0 0x01000000 2644 default "0x00200000" if CPU_LOONGSON64 2645 default "0x00100000" 2646 help 2647 A table of relocation data will be appended to the kernel binary 2648 and parsed at boot to fix up the relocated kernel. 2649 2650 This option allows the amount of space reserved for the table to be 2651 adjusted, although the default of 1Mb should be ok in most cases. 2652 2653 The build will fail and a valid size suggested if this is too small. 2654 2655 If unsure, leave at the default value. 2656 2657config RANDOMIZE_BASE 2658 bool "Randomize the address of the kernel image" 2659 depends on RELOCATABLE 2660 help 2661 Randomizes the physical and virtual address at which the 2662 kernel image is loaded, as a security feature that 2663 deters exploit attempts relying on knowledge of the location 2664 of kernel internals. 2665 2666 Entropy is generated using any coprocessor 0 registers available. 2667 2668 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. 2669 2670 If unsure, say N. 2671 2672config RANDOMIZE_BASE_MAX_OFFSET 2673 hex "Maximum kASLR offset" if EXPERT 2674 depends on RANDOMIZE_BASE 2675 range 0x0 0x40000000 if EVA || 64BIT 2676 range 0x0 0x08000000 2677 default "0x01000000" 2678 help 2679 When kASLR is active, this provides the maximum offset that will 2680 be applied to the kernel image. It should be set according to the 2681 amount of physical RAM available in the target system minus 2682 PHYSICAL_START and must be a power of 2. 2683 2684 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with 2685 EVA or 64-bit. The default is 16Mb. 2686 2687config NODES_SHIFT 2688 int 2689 default "6" 2690 depends on NUMA 2691 2692config HW_PERF_EVENTS 2693 bool "Enable hardware performance counter support for perf events" 2694 depends on PERF_EVENTS && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_LOONGSON64) 2695 default y 2696 help 2697 Enable hardware performance counter support for perf events. If 2698 disabled, perf events will use software events only. 2699 2700config DMI 2701 bool "Enable DMI scanning" 2702 depends on MACH_LOONGSON64 2703 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 2704 default y 2705 help 2706 Enabled scanning of DMI to identify machine quirks. Say Y 2707 here unless you have verified that your setup is not 2708 affected by entries in the DMI blacklist. Required by PNP 2709 BIOS code. 2710 2711config SMP 2712 bool "Multi-Processing support" 2713 depends on SYS_SUPPORTS_SMP 2714 help 2715 This enables support for systems with more than one CPU. If you have 2716 a system with only one CPU, say N. If you have a system with more 2717 than one CPU, say Y. 2718 2719 If you say N here, the kernel will run on uni- and multiprocessor 2720 machines, but will use only one CPU of a multiprocessor machine. If 2721 you say Y here, the kernel will run on many, but not all, 2722 uniprocessor machines. On a uniprocessor machine, the kernel 2723 will run faster if you say N here. 2724 2725 People using multiprocessor machines who say Y here should also say 2726 Y to "Enhanced Real Time Clock Support", below. 2727 2728 See also the SMP-HOWTO available at 2729 <https://www.tldp.org/docs.html#howto>. 2730 2731 If you don't know what to do here, say N. 2732 2733config HOTPLUG_CPU 2734 bool "Support for hot-pluggable CPUs" 2735 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU 2736 help 2737 Say Y here to allow turning CPUs off and on. CPUs can be 2738 controlled through /sys/devices/system/cpu. 2739 (Note: power management support will enable this option 2740 automatically on SMP systems. ) 2741 Say N if you want to disable CPU hotplug. 2742 2743config SMP_UP 2744 bool 2745 2746config SYS_SUPPORTS_MIPS_CPS 2747 bool 2748 2749config SYS_SUPPORTS_SMP 2750 bool 2751 2752config NR_CPUS_DEFAULT_4 2753 bool 2754 2755config NR_CPUS_DEFAULT_8 2756 bool 2757 2758config NR_CPUS_DEFAULT_16 2759 bool 2760 2761config NR_CPUS_DEFAULT_32 2762 bool 2763 2764config NR_CPUS_DEFAULT_64 2765 bool 2766 2767config NR_CPUS 2768 int "Maximum number of CPUs (2-256)" 2769 range 2 256 2770 depends on SMP 2771 default "4" if NR_CPUS_DEFAULT_4 2772 default "8" if NR_CPUS_DEFAULT_8 2773 default "16" if NR_CPUS_DEFAULT_16 2774 default "32" if NR_CPUS_DEFAULT_32 2775 default "64" if NR_CPUS_DEFAULT_64 2776 help 2777 This allows you to specify the maximum number of CPUs which this 2778 kernel will support. The maximum supported value is 32 for 32-bit 2779 kernel and 64 for 64-bit kernels; the minimum value which makes 2780 sense is 1 for Qemu (useful only for kernel debugging purposes) 2781 and 2 for all others. 2782 2783 This is purely to save memory - each supported CPU adds 2784 approximately eight kilobytes to the kernel image. For best 2785 performance should round up your number of processors to the next 2786 power of two. 2787 2788config MIPS_PERF_SHARED_TC_COUNTERS 2789 bool 2790 2791config MIPS_NR_CPU_NR_MAP_1024 2792 bool 2793 2794config MIPS_NR_CPU_NR_MAP 2795 int 2796 depends on SMP 2797 default 1024 if MIPS_NR_CPU_NR_MAP_1024 2798 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024 2799 2800# 2801# Timer Interrupt Frequency Configuration 2802# 2803 2804choice 2805 prompt "Timer frequency" 2806 default HZ_250 2807 help 2808 Allows the configuration of the timer frequency. 2809 2810 config HZ_24 2811 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ 2812 2813 config HZ_48 2814 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ 2815 2816 config HZ_100 2817 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ 2818 2819 config HZ_128 2820 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ 2821 2822 config HZ_250 2823 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ 2824 2825 config HZ_256 2826 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ 2827 2828 config HZ_1000 2829 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ 2830 2831 config HZ_1024 2832 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ 2833 2834endchoice 2835 2836config SYS_SUPPORTS_24HZ 2837 bool 2838 2839config SYS_SUPPORTS_48HZ 2840 bool 2841 2842config SYS_SUPPORTS_100HZ 2843 bool 2844 2845config SYS_SUPPORTS_128HZ 2846 bool 2847 2848config SYS_SUPPORTS_250HZ 2849 bool 2850 2851config SYS_SUPPORTS_256HZ 2852 bool 2853 2854config SYS_SUPPORTS_1000HZ 2855 bool 2856 2857config SYS_SUPPORTS_1024HZ 2858 bool 2859 2860config SYS_SUPPORTS_ARBIT_HZ 2861 bool 2862 default y if !SYS_SUPPORTS_24HZ && \ 2863 !SYS_SUPPORTS_48HZ && \ 2864 !SYS_SUPPORTS_100HZ && \ 2865 !SYS_SUPPORTS_128HZ && \ 2866 !SYS_SUPPORTS_250HZ && \ 2867 !SYS_SUPPORTS_256HZ && \ 2868 !SYS_SUPPORTS_1000HZ && \ 2869 !SYS_SUPPORTS_1024HZ 2870 2871config HZ 2872 int 2873 default 24 if HZ_24 2874 default 48 if HZ_48 2875 default 100 if HZ_100 2876 default 128 if HZ_128 2877 default 250 if HZ_250 2878 default 256 if HZ_256 2879 default 1000 if HZ_1000 2880 default 1024 if HZ_1024 2881 2882config SCHED_HRTICK 2883 def_bool HIGH_RES_TIMERS 2884 2885config ARCH_SUPPORTS_KEXEC 2886 def_bool y 2887 2888config ARCH_SUPPORTS_CRASH_DUMP 2889 def_bool y 2890 2891config ARCH_DEFAULT_CRASH_DUMP 2892 def_bool y 2893 2894config PHYSICAL_START 2895 hex "Physical address where the kernel is loaded" 2896 default "0xffffffff84000000" 2897 depends on CRASH_DUMP 2898 help 2899 This gives the CKSEG0 or KSEG0 address where the kernel is loaded. 2900 If you plan to use kernel for capturing the crash dump change 2901 this value to start of the reserved region (the "X" value as 2902 specified in the "crashkernel=YM@XM" command line boot parameter 2903 passed to the panic-ed kernel). 2904 2905config MIPS_O32_FP64_SUPPORT 2906 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6 2907 depends on 32BIT || MIPS32_O32 2908 help 2909 When this is enabled, the kernel will support use of 64-bit floating 2910 point registers with binaries using the O32 ABI along with the 2911 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On 2912 32-bit MIPS systems this support is at the cost of increasing the 2913 size and complexity of the compiled FPU emulator. Thus if you are 2914 running a MIPS32 system and know that none of your userland binaries 2915 will require 64-bit floating point, you may wish to reduce the size 2916 of your kernel & potentially improve FP emulation performance by 2917 saying N here. 2918 2919 Although binutils currently supports use of this flag the details 2920 concerning its effect upon the O32 ABI in userland are still being 2921 worked on. In order to avoid userland becoming dependent upon current 2922 behaviour before the details have been finalised, this option should 2923 be considered experimental and only enabled by those working upon 2924 said details. 2925 2926 If unsure, say N. 2927 2928config USE_OF 2929 bool 2930 select OF 2931 select OF_EARLY_FLATTREE 2932 select IRQ_DOMAIN 2933 2934config UHI_BOOT 2935 bool 2936 2937config BUILTIN_DTB 2938 bool 2939 2940choice 2941 prompt "Kernel appended dtb support" 2942 depends on USE_OF 2943 default MIPS_NO_APPENDED_DTB 2944 2945 config MIPS_NO_APPENDED_DTB 2946 bool "None" 2947 help 2948 Do not enable appended dtb support. 2949 2950 config MIPS_ELF_APPENDED_DTB 2951 bool "vmlinux" 2952 help 2953 With this option, the boot code will look for a device tree binary 2954 DTB) included in the vmlinux ELF section .appended_dtb. By default 2955 it is empty and the DTB can be appended using binutils command 2956 objcopy: 2957 2958 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux 2959 2960 This is meant as a backward compatibility convenience for those 2961 systems with a bootloader that can't be upgraded to accommodate 2962 the documented boot protocol using a device tree. 2963 2964 config MIPS_RAW_APPENDED_DTB 2965 bool "vmlinux.bin or vmlinuz.bin" 2966 help 2967 With this option, the boot code will look for a device tree binary 2968 DTB) appended to raw vmlinux.bin or vmlinuz.bin. 2969 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb). 2970 2971 This is meant as a backward compatibility convenience for those 2972 systems with a bootloader that can't be upgraded to accommodate 2973 the documented boot protocol using a device tree. 2974 2975 Beware that there is very little in terms of protection against 2976 this option being confused by leftover garbage in memory that might 2977 look like a DTB header after a reboot if no actual DTB is appended 2978 to vmlinux.bin. Do not leave this option active in a production kernel 2979 if you don't intend to always append a DTB. 2980endchoice 2981 2982choice 2983 prompt "Kernel command line type" 2984 depends on !CMDLINE_OVERRIDE 2985 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \ 2986 !MACH_LOONGSON64 && !MACH_LOONGSON32 && \ 2987 !MIPS_MALTA && !CAVIUM_OCTEON_SOC 2988 default MIPS_CMDLINE_FROM_BOOTLOADER 2989 2990 config MIPS_CMDLINE_FROM_DTB 2991 depends on USE_OF 2992 bool "Dtb kernel arguments if available" 2993 2994 config MIPS_CMDLINE_DTB_EXTEND 2995 depends on USE_OF 2996 bool "Extend dtb kernel arguments with bootloader arguments" 2997 2998 config MIPS_CMDLINE_FROM_BOOTLOADER 2999 bool "Bootloader kernel arguments if available" 3000 3001 config MIPS_CMDLINE_BUILTIN_EXTEND 3002 depends on CMDLINE_BOOL 3003 bool "Extend builtin kernel arguments with bootloader arguments" 3004endchoice 3005 3006endmenu 3007 3008config LOCKDEP_SUPPORT 3009 bool 3010 default y 3011 3012config STACKTRACE_SUPPORT 3013 bool 3014 default y 3015 3016config PGTABLE_LEVELS 3017 int 3018 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48 3019 default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48) 3020 default 2 3021 3022config MIPS_AUTO_PFN_OFFSET 3023 bool 3024 3025menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" 3026 3027config PCI_DRIVERS_GENERIC 3028 select PCI_DOMAINS_GENERIC if PCI 3029 bool 3030 3031config PCI_DRIVERS_LEGACY 3032 def_bool !PCI_DRIVERS_GENERIC 3033 select NO_GENERIC_PCI_IOPORT_MAP 3034 select PCI_DOMAINS if PCI 3035 3036# 3037# ISA support is now enabled via select. Too many systems still have the one 3038# or other ISA chip on the board that users don't know about so don't expect 3039# users to choose the right thing ... 3040# 3041config ISA 3042 bool 3043 3044config TC 3045 bool "TURBOchannel support" 3046 depends on MACH_DECSTATION 3047 help 3048 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS 3049 processors. TURBOchannel programming specifications are available 3050 at: 3051 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/> 3052 and: 3053 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/> 3054 Linux driver support status is documented at: 3055 <http://www.linux-mips.org/wiki/DECstation> 3056 3057config MMU 3058 bool 3059 default y 3060 3061config ARCH_MMAP_RND_BITS_MIN 3062 default 12 if 64BIT 3063 default 8 3064 3065config ARCH_MMAP_RND_BITS_MAX 3066 default 18 if 64BIT 3067 default 15 3068 3069config ARCH_MMAP_RND_COMPAT_BITS_MIN 3070 default 8 3071 3072config ARCH_MMAP_RND_COMPAT_BITS_MAX 3073 default 15 3074 3075config I8253 3076 bool 3077 select CLKSRC_I8253 3078 select CLKEVT_I8253 3079 select MIPS_EXTERNAL_TIMER 3080endmenu 3081 3082config TRAD_SIGNALS 3083 bool 3084 3085config MIPS32_COMPAT 3086 bool 3087 3088config COMPAT 3089 bool 3090 3091config MIPS32_O32 3092 bool "Kernel support for o32 binaries" 3093 depends on 64BIT 3094 select ARCH_WANT_OLD_COMPAT_IPC 3095 select COMPAT 3096 select MIPS32_COMPAT 3097 help 3098 Select this option if you want to run o32 binaries. These are pure 3099 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of 3100 existing binaries are in this format. 3101 3102 If unsure, say Y. 3103 3104config MIPS32_N32 3105 bool "Kernel support for n32 binaries" 3106 depends on 64BIT 3107 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION 3108 select COMPAT 3109 select MIPS32_COMPAT 3110 help 3111 Select this option if you want to run n32 binaries. These are 3112 64-bit binaries using 32-bit quantities for addressing and certain 3113 data that would normally be 64-bit. They are used in special 3114 cases. 3115 3116 If unsure, say N. 3117 3118config CC_HAS_MNO_BRANCH_LIKELY 3119 def_bool y 3120 depends on $(cc-option,-mno-branch-likely) 3121 3122# https://github.com/llvm/llvm-project/issues/61045 3123config CC_HAS_BROKEN_INLINE_COMPAT_BRANCH 3124 def_bool y if CC_IS_CLANG 3125 3126config ARCH_CC_CAN_LINK_N32 3127 bool 3128 default $(cc_can_link_user,-mabi=n32 -EL) if MIPS32_N32 && CPU_LITTLE_ENDIAN 3129 default $(cc_can_link_user,-mabi=n32 -EB) if MIPS32_N32 && CPU_BIG_ENDIAN 3130 3131config ARCH_CC_CAN_LINK_N64 3132 bool 3133 default $(cc_can_link_user,-mabi=64 -EL) if 64BIT && CPU_LITTLE_ENDIAN 3134 default $(cc_can_link_user,-mabi=64 -EB) if 64BIT && CPU_BIG_ENDIAN 3135 3136config ARCH_CC_CAN_LINK_O32 3137 bool 3138 default $(cc_can_link_user,-mabi=32 -EL) if (32BIT || MIPS32_O32) && CPU_LITTLE_ENDIAN 3139 default $(cc_can_link_user,-mabi=32 -EB) if (32BIT || MIPS32_O32) && CPU_BIG_ENDIAN 3140 3141config ARCH_CC_CAN_LINK 3142 def_bool ARCH_CC_CAN_LINK_N32 || ARCH_CC_CAN_LINK_N64 || ARCH_CC_CAN_LINK_O32 3143 3144config ARCH_USERFLAGS 3145 string 3146 default "-mabi=n32 -EL" if ARCH_CC_CAN_LINK_N32 && CPU_LITTLE_ENDIAN 3147 default "-mabi=n32 -EB" if ARCH_CC_CAN_LINK_N32 && CPU_BIG_ENDIAN 3148 default "-mabi=64 -EL" if ARCH_CC_CAN_LINK_N64 && CPU_LITTLE_ENDIAN 3149 default "-mabi=64 -EB" if ARCH_CC_CAN_LINK_N64 && CPU_BIG_ENDIAN 3150 default "-mabi=32 -EL" if ARCH_CC_CAN_LINK_O32 && CPU_LITTLE_ENDIAN 3151 default "-mabi=32 -EB" if ARCH_CC_CAN_LINK_O32 && CPU_BIG_ENDIAN 3152 3153menu "Power management options" 3154 3155config ARCH_HIBERNATION_POSSIBLE 3156 def_bool y 3157 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 3158 3159config ARCH_SUSPEND_POSSIBLE 3160 def_bool y 3161 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 3162 3163source "kernel/power/Kconfig" 3164 3165endmenu 3166 3167config MIPS_EXTERNAL_TIMER 3168 bool 3169 3170config MIPS_GENERIC_GETTIMEOFDAY 3171 def_bool y 3172 select GENERIC_GETTIMEOFDAY 3173 select HAVE_GENERIC_VDSO 3174 3175menu "CPU Power Management" 3176 3177if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER 3178source "drivers/cpufreq/Kconfig" 3179endif # CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER 3180 3181source "drivers/cpuidle/Kconfig" 3182 3183endmenu 3184 3185source "arch/mips/kvm/Kconfig" 3186 3187source "arch/mips/vdso/Kconfig" 3188