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