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