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