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