linux/arch/mips/Kconfig
<<
>>
Prefs
   1config MIPS
   2        bool
   3        default y
   4        select HAVE_GENERIC_DMA_COHERENT
   5        select HAVE_IDE
   6        select HAVE_OPROFILE
   7        select HAVE_IRQ_WORK
   8        select HAVE_PERF_EVENTS
   9        select PERF_USE_VMALLOC
  10        select HAVE_ARCH_KGDB
  11        select ARCH_HAVE_CUSTOM_GPIO_H
  12        select HAVE_FUNCTION_TRACER
  13        select HAVE_FUNCTION_TRACE_MCOUNT_TEST
  14        select HAVE_DYNAMIC_FTRACE
  15        select HAVE_FTRACE_MCOUNT_RECORD
  16        select HAVE_C_RECORDMCOUNT
  17        select HAVE_FUNCTION_GRAPH_TRACER
  18        select HAVE_KPROBES
  19        select HAVE_KRETPROBES
  20        select HAVE_DEBUG_KMEMLEAK
  21        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
  22        select RTC_LIB if !MACH_LOONGSON
  23        select GENERIC_ATOMIC64 if !64BIT
  24        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
  25        select HAVE_DMA_ATTRS
  26        select HAVE_DMA_API_DEBUG
  27        select HAVE_GENERIC_HARDIRQS
  28        select GENERIC_IRQ_PROBE
  29        select GENERIC_IRQ_SHOW
  30        select HAVE_ARCH_JUMP_LABEL
  31        select ARCH_WANT_IPC_PARSE_VERSION
  32        select IRQ_FORCED_THREADING
  33        select HAVE_MEMBLOCK
  34        select HAVE_MEMBLOCK_NODE_MAP
  35        select ARCH_DISCARD_MEMBLOCK
  36        select GENERIC_SMP_IDLE_THREAD
  37        select BUILDTIME_EXTABLE_SORT
  38        select GENERIC_CLOCKEVENTS
  39        select GENERIC_CMOS_UPDATE
  40        select HAVE_MOD_ARCH_SPECIFIC
  41        select MODULES_USE_ELF_REL
  42        select MODULES_USE_ELF_RELA if 64BIT
  43
  44menu "Machine selection"
  45
  46config ZONE_DMA
  47        bool
  48
  49choice
  50        prompt "System type"
  51        default SGI_IP22
  52
  53config MIPS_ALCHEMY
  54        bool "Alchemy processor based machines"
  55        select 64BIT_PHYS_ADDR
  56        select CEVT_R4K_LIB
  57        select CSRC_R4K_LIB
  58        select IRQ_CPU
  59        select SYS_HAS_CPU_MIPS32_R1
  60        select SYS_SUPPORTS_32BIT_KERNEL
  61        select SYS_SUPPORTS_APM_EMULATION
  62        select GENERIC_GPIO
  63        select ARCH_WANT_OPTIONAL_GPIOLIB
  64        select SYS_SUPPORTS_ZBOOT
  65        select USB_ARCH_HAS_OHCI
  66        select USB_ARCH_HAS_EHCI
  67
  68config AR7
  69        bool "Texas Instruments AR7"
  70        select BOOT_ELF32
  71        select DMA_NONCOHERENT
  72        select CEVT_R4K
  73        select CSRC_R4K
  74        select IRQ_CPU
  75        select NO_EXCEPT_FILL
  76        select SWAP_IO_SPACE
  77        select SYS_HAS_CPU_MIPS32_R1
  78        select SYS_HAS_EARLY_PRINTK
  79        select SYS_SUPPORTS_32BIT_KERNEL
  80        select SYS_SUPPORTS_LITTLE_ENDIAN
  81        select SYS_SUPPORTS_ZBOOT_UART16550
  82        select ARCH_REQUIRE_GPIOLIB
  83        select VLYNQ
  84        select HAVE_CLK
  85        help
  86          Support for the Texas Instruments AR7 System-on-a-Chip
  87          family: TNETD7100, 7200 and 7300.
  88
  89config ATH79
  90        bool "Atheros AR71XX/AR724X/AR913X based boards"
  91        select ARCH_REQUIRE_GPIOLIB
  92        select BOOT_RAW
  93        select CEVT_R4K
  94        select CSRC_R4K
  95        select DMA_NONCOHERENT
  96        select HAVE_CLK
  97        select IRQ_CPU
  98        select MIPS_MACHINE
  99        select SYS_HAS_CPU_MIPS32_R2
 100        select SYS_HAS_EARLY_PRINTK
 101        select SYS_SUPPORTS_32BIT_KERNEL
 102        select SYS_SUPPORTS_BIG_ENDIAN
 103        help
 104          Support for the Atheros AR71XX/AR724X/AR913X SoCs.
 105
 106config BCM47XX
 107        bool "Broadcom BCM47XX based boards"
 108        select CEVT_R4K
 109        select CSRC_R4K
 110        select DMA_NONCOHERENT
 111        select HW_HAS_PCI
 112        select IRQ_CPU
 113        select SYS_SUPPORTS_32BIT_KERNEL
 114        select SYS_SUPPORTS_LITTLE_ENDIAN
 115        select GENERIC_GPIO
 116        select SYS_HAS_EARLY_PRINTK
 117        select CFE
 118        help
 119         Support for BCM47XX based boards
 120
 121config BCM63XX
 122        bool "Broadcom BCM63XX based boards"
 123        select CEVT_R4K
 124        select CSRC_R4K
 125        select DMA_NONCOHERENT
 126        select IRQ_CPU
 127        select SYS_HAS_CPU_MIPS32_R1
 128        select SYS_SUPPORTS_32BIT_KERNEL
 129        select SYS_SUPPORTS_BIG_ENDIAN
 130        select SYS_HAS_EARLY_PRINTK
 131        select SWAP_IO_SPACE
 132        select ARCH_REQUIRE_GPIOLIB
 133        select HAVE_CLK
 134        help
 135         Support for BCM63XX based boards
 136
 137config MIPS_COBALT
 138        bool "Cobalt Server"
 139        select CEVT_R4K
 140        select CSRC_R4K
 141        select CEVT_GT641XX
 142        select DMA_NONCOHERENT
 143        select HW_HAS_PCI
 144        select I8253
 145        select I8259
 146        select IRQ_CPU
 147        select IRQ_GT641XX
 148        select PCI_GT64XXX_PCI0
 149        select PCI
 150        select SYS_HAS_CPU_NEVADA
 151        select SYS_HAS_EARLY_PRINTK
 152        select SYS_SUPPORTS_32BIT_KERNEL
 153        select SYS_SUPPORTS_64BIT_KERNEL
 154        select SYS_SUPPORTS_LITTLE_ENDIAN
 155
 156config MACH_DECSTATION
 157        bool "DECstations"
 158        select BOOT_ELF32
 159        select CEVT_DS1287
 160        select CEVT_R4K
 161        select CSRC_IOASIC
 162        select CSRC_R4K
 163        select CPU_DADDI_WORKAROUNDS if 64BIT
 164        select CPU_R4000_WORKAROUNDS if 64BIT
 165        select CPU_R4400_WORKAROUNDS if 64BIT
 166        select DMA_NONCOHERENT
 167        select NO_IOPORT
 168        select IRQ_CPU
 169        select SYS_HAS_CPU_R3000
 170        select SYS_HAS_CPU_R4X00
 171        select SYS_SUPPORTS_32BIT_KERNEL
 172        select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
 173        select SYS_SUPPORTS_LITTLE_ENDIAN
 174        select SYS_SUPPORTS_128HZ
 175        select SYS_SUPPORTS_256HZ
 176        select SYS_SUPPORTS_1024HZ
 177        help
 178          This enables support for DEC's MIPS based workstations.  For details
 179          see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
 180          DECstation porting pages on <http://decstation.unix-ag.org/>.
 181
 182          If you have one of the following DECstation Models you definitely
 183          want to choose R4xx0 for the CPU Type:
 184
 185                DECstation 5000/50
 186                DECstation 5000/150
 187                DECstation 5000/260
 188                DECsystem 5900/260
 189
 190          otherwise choose R3000.
 191
 192config MACH_JAZZ
 193        bool "Jazz family of machines"
 194        select ARC
 195        select ARC32
 196        select ARCH_MAY_HAVE_PC_FDC
 197        select CEVT_R4K
 198        select CSRC_R4K
 199        select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
 200        select GENERIC_ISA_DMA
 201        select HAVE_PCSPKR_PLATFORM
 202        select IRQ_CPU
 203        select I8253
 204        select I8259
 205        select ISA
 206        select SYS_HAS_CPU_R4X00
 207        select SYS_SUPPORTS_32BIT_KERNEL
 208        select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
 209        select SYS_SUPPORTS_100HZ
 210        help
 211         This a family of machines based on the MIPS R4030 chipset which was
 212         used by several vendors to build RISC/os and Windows NT workstations.
 213         Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
 214         Olivetti M700-10 workstations.
 215
 216config MACH_JZ4740
 217        bool "Ingenic JZ4740 based machines"
 218        select SYS_HAS_CPU_MIPS32_R1
 219        select SYS_SUPPORTS_32BIT_KERNEL
 220        select SYS_SUPPORTS_LITTLE_ENDIAN
 221        select SYS_SUPPORTS_ZBOOT_UART16550
 222        select DMA_NONCOHERENT
 223        select IRQ_CPU
 224        select GENERIC_GPIO
 225        select ARCH_REQUIRE_GPIOLIB
 226        select SYS_HAS_EARLY_PRINTK
 227        select HAVE_PWM
 228        select HAVE_CLK
 229        select GENERIC_IRQ_CHIP
 230
 231config LANTIQ
 232        bool "Lantiq based platforms"
 233        select DMA_NONCOHERENT
 234        select IRQ_CPU
 235        select CEVT_R4K
 236        select CSRC_R4K
 237        select SYS_HAS_CPU_MIPS32_R1
 238        select SYS_HAS_CPU_MIPS32_R2
 239        select SYS_SUPPORTS_BIG_ENDIAN
 240        select SYS_SUPPORTS_32BIT_KERNEL
 241        select SYS_SUPPORTS_MULTITHREADING
 242        select SYS_HAS_EARLY_PRINTK
 243        select ARCH_REQUIRE_GPIOLIB
 244        select SWAP_IO_SPACE
 245        select BOOT_RAW
 246        select HAVE_MACH_CLKDEV
 247        select CLKDEV_LOOKUP
 248        select USE_OF
 249        select PINCTRL
 250        select PINCTRL_LANTIQ
 251
 252config LASAT
 253        bool "LASAT Networks platforms"
 254        select CEVT_R4K
 255        select CSRC_R4K
 256        select DMA_NONCOHERENT
 257        select SYS_HAS_EARLY_PRINTK
 258        select HW_HAS_PCI
 259        select IRQ_CPU
 260        select PCI_GT64XXX_PCI0
 261        select MIPS_NILE4
 262        select R5000_CPU_SCACHE
 263        select SYS_HAS_CPU_R5000
 264        select SYS_SUPPORTS_32BIT_KERNEL
 265        select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
 266        select SYS_SUPPORTS_LITTLE_ENDIAN
 267
 268config MACH_LOONGSON
 269        bool "Loongson family of machines"
 270        select SYS_SUPPORTS_ZBOOT
 271        help
 272          This enables the support of Loongson family of machines.
 273
 274          Loongson is a family of general-purpose MIPS-compatible CPUs.
 275          developed at Institute of Computing Technology (ICT),
 276          Chinese Academy of Sciences (CAS) in the People's Republic
 277          of China. The chief architect is Professor Weiwu Hu.
 278
 279config MACH_LOONGSON1
 280        bool "Loongson 1 family of machines"
 281        select SYS_SUPPORTS_ZBOOT
 282        help
 283          This enables support for the Loongson 1 based machines.
 284
 285          Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
 286          the ICT (Institute of Computing Technology) and the Chinese Academy
 287          of Sciences.
 288
 289config MIPS_MALTA
 290        bool "MIPS Malta board"
 291        select ARCH_MAY_HAVE_PC_FDC
 292        select BOOT_ELF32
 293        select BOOT_RAW
 294        select CEVT_R4K
 295        select CSRC_R4K
 296        select DMA_NONCOHERENT
 297        select GENERIC_ISA_DMA
 298        select HAVE_PCSPKR_PLATFORM
 299        select IRQ_CPU
 300        select IRQ_GIC
 301        select HW_HAS_PCI
 302        select I8253
 303        select I8259
 304        select MIPS_BOARDS_GEN
 305        select MIPS_BONITO64
 306        select MIPS_CPU_SCACHE
 307        select PCI_GT64XXX_PCI0
 308        select MIPS_MSC
 309        select SWAP_IO_SPACE
 310        select SYS_HAS_CPU_MIPS32_R1
 311        select SYS_HAS_CPU_MIPS32_R2
 312        select SYS_HAS_CPU_MIPS64_R1
 313        select SYS_HAS_CPU_MIPS64_R2
 314        select SYS_HAS_CPU_NEVADA
 315        select SYS_HAS_CPU_RM7000
 316        select SYS_HAS_EARLY_PRINTK
 317        select SYS_SUPPORTS_32BIT_KERNEL
 318        select SYS_SUPPORTS_64BIT_KERNEL
 319        select SYS_SUPPORTS_BIG_ENDIAN
 320        select SYS_SUPPORTS_LITTLE_ENDIAN
 321        select SYS_SUPPORTS_MIPS_CMP
 322        select SYS_SUPPORTS_MULTITHREADING
 323        select SYS_SUPPORTS_SMARTMIPS
 324        select SYS_SUPPORTS_ZBOOT
 325        help
 326          This enables support for the MIPS Technologies Malta evaluation
 327          board.
 328
 329config MIPS_SEAD3
 330        bool "MIPS SEAD3 board"
 331        select BOOT_ELF32
 332        select BOOT_RAW
 333        select CEVT_R4K
 334        select CSRC_R4K
 335        select CPU_MIPSR2_IRQ_VI
 336        select CPU_MIPSR2_IRQ_EI
 337        select DMA_NONCOHERENT
 338        select IRQ_CPU
 339        select IRQ_GIC
 340        select MIPS_BOARDS_GEN
 341        select MIPS_CPU_SCACHE
 342        select MIPS_MSC
 343        select SYS_HAS_CPU_MIPS32_R1
 344        select SYS_HAS_CPU_MIPS32_R2
 345        select SYS_HAS_CPU_MIPS64_R1
 346        select SYS_HAS_EARLY_PRINTK
 347        select SYS_SUPPORTS_32BIT_KERNEL
 348        select SYS_SUPPORTS_64BIT_KERNEL
 349        select SYS_SUPPORTS_BIG_ENDIAN
 350        select SYS_SUPPORTS_LITTLE_ENDIAN
 351        select SYS_SUPPORTS_SMARTMIPS
 352        select USB_ARCH_HAS_EHCI
 353        select USB_EHCI_BIG_ENDIAN_DESC
 354        select USB_EHCI_BIG_ENDIAN_MMIO
 355        help
 356          This enables support for the MIPS Technologies SEAD3 evaluation
 357          board.
 358
 359config NEC_MARKEINS
 360        bool "NEC EMMA2RH Mark-eins board"
 361        select SOC_EMMA2RH
 362        select HW_HAS_PCI
 363        help
 364          This enables support for the NEC Electronics Mark-eins boards.
 365
 366config MACH_VR41XX
 367        bool "NEC VR4100 series based machines"
 368        select CEVT_R4K
 369        select CSRC_R4K
 370        select SYS_HAS_CPU_VR41XX
 371        select ARCH_REQUIRE_GPIOLIB
 372
 373config NXP_STB220
 374        bool "NXP STB220 board"
 375        select SOC_PNX833X
 376        help
 377         Support for NXP Semiconductors STB220 Development Board.
 378
 379config NXP_STB225
 380        bool "NXP 225 board"
 381        select SOC_PNX833X
 382        select SOC_PNX8335
 383        help
 384         Support for NXP Semiconductors STB225 Development Board.
 385
 386config PNX8550_JBS
 387        bool "NXP PNX8550 based JBS board"
 388        select PNX8550
 389        select SYS_SUPPORTS_LITTLE_ENDIAN
 390
 391config PNX8550_STB810
 392        bool "NXP PNX8550 based STB810 board"
 393        select PNX8550
 394        select SYS_SUPPORTS_LITTLE_ENDIAN
 395
 396config PMC_MSP
 397        bool "PMC-Sierra MSP chipsets"
 398        depends on EXPERIMENTAL
 399        select CEVT_R4K
 400        select CSRC_R4K
 401        select DMA_NONCOHERENT
 402        select SWAP_IO_SPACE
 403        select NO_EXCEPT_FILL
 404        select BOOT_RAW
 405        select SYS_HAS_CPU_MIPS32_R1
 406        select SYS_HAS_CPU_MIPS32_R2
 407        select SYS_SUPPORTS_32BIT_KERNEL
 408        select SYS_SUPPORTS_BIG_ENDIAN
 409        select IRQ_CPU
 410        select SERIAL_8250
 411        select SERIAL_8250_CONSOLE
 412        help
 413          This adds support for the PMC-Sierra family of Multi-Service
 414          Processor System-On-A-Chips.  These parts include a number
 415          of integrated peripherals, interfaces and DSPs in addition to
 416          a variety of MIPS cores.
 417
 418config PMC_YOSEMITE
 419        bool "PMC-Sierra Yosemite eval board"
 420        select CEVT_R4K
 421        select CSRC_R4K
 422        select DMA_COHERENT
 423        select HW_HAS_PCI
 424        select IRQ_CPU
 425        select IRQ_CPU_RM7K
 426        select IRQ_CPU_RM9K
 427        select SWAP_IO_SPACE
 428        select SYS_HAS_CPU_RM9000
 429        select SYS_HAS_EARLY_PRINTK
 430        select SYS_SUPPORTS_32BIT_KERNEL
 431        select SYS_SUPPORTS_64BIT_KERNEL
 432        select SYS_SUPPORTS_BIG_ENDIAN
 433        select SYS_SUPPORTS_HIGHMEM
 434        select SYS_SUPPORTS_SMP
 435        help
 436          Yosemite is an evaluation board for the RM9000x2 processor
 437          manufactured by PMC-Sierra.
 438
 439config POWERTV
 440        bool "Cisco PowerTV"
 441        select BOOT_ELF32
 442        select CEVT_R4K
 443        select CPU_MIPSR2_IRQ_VI
 444        select CPU_MIPSR2_IRQ_EI
 445        select CSRC_POWERTV
 446        select DMA_NONCOHERENT
 447        select HW_HAS_PCI
 448        select SYS_HAS_EARLY_PRINTK
 449        select SYS_HAS_CPU_MIPS32_R2
 450        select SYS_SUPPORTS_32BIT_KERNEL
 451        select SYS_SUPPORTS_BIG_ENDIAN
 452        select SYS_SUPPORTS_HIGHMEM
 453        select USB_OHCI_LITTLE_ENDIAN
 454        help
 455          This enables support for the Cisco PowerTV Platform.
 456
 457config SGI_IP22
 458        bool "SGI IP22 (Indy/Indigo2)"
 459        select ARC
 460        select ARC32
 461        select BOOT_ELF32
 462        select CEVT_R4K
 463        select CSRC_R4K
 464        select DEFAULT_SGI_PARTITION
 465        select DMA_NONCOHERENT
 466        select HW_HAS_EISA
 467        select I8253
 468        select I8259
 469        select IP22_CPU_SCACHE
 470        select IRQ_CPU
 471        select GENERIC_ISA_DMA_SUPPORT_BROKEN
 472        select SGI_HAS_I8042
 473        select SGI_HAS_INDYDOG
 474        select SGI_HAS_HAL2
 475        select SGI_HAS_SEEQ
 476        select SGI_HAS_WD93
 477        select SGI_HAS_ZILOG
 478        select SWAP_IO_SPACE
 479        select SYS_HAS_CPU_R4X00
 480        select SYS_HAS_CPU_R5000
 481        #
 482        # Disable EARLY_PRINTK for now since it leads to overwritten prom
 483        # memory during early boot on some machines.
 484        #
 485        # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
 486        # for a more details discussion
 487        #
 488        # select SYS_HAS_EARLY_PRINTK
 489        select SYS_SUPPORTS_32BIT_KERNEL
 490        select SYS_SUPPORTS_64BIT_KERNEL
 491        select SYS_SUPPORTS_BIG_ENDIAN
 492        help
 493          This are the SGI Indy, Challenge S and Indigo2, as well as certain
 494          OEM variants like the Tandem CMN B006S. To compile a Linux kernel
 495          that runs on these, say Y here.
 496
 497config SGI_IP27
 498        bool "SGI IP27 (Origin200/2000)"
 499        select ARC
 500        select ARC64
 501        select BOOT_ELF64
 502        select DEFAULT_SGI_PARTITION
 503        select DMA_COHERENT
 504        select SYS_HAS_EARLY_PRINTK
 505        select HW_HAS_PCI
 506        select NR_CPUS_DEFAULT_64
 507        select SYS_HAS_CPU_R10000
 508        select SYS_SUPPORTS_64BIT_KERNEL
 509        select SYS_SUPPORTS_BIG_ENDIAN
 510        select SYS_SUPPORTS_NUMA
 511        select SYS_SUPPORTS_SMP
 512        help
 513          This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
 514          workstations.  To compile a Linux kernel that runs on these, say Y
 515          here.
 516
 517config SGI_IP28
 518        bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
 519        depends on EXPERIMENTAL
 520        select ARC
 521        select ARC64
 522        select BOOT_ELF64
 523        select CEVT_R4K
 524        select CSRC_R4K
 525        select DEFAULT_SGI_PARTITION
 526        select DMA_NONCOHERENT
 527        select GENERIC_ISA_DMA_SUPPORT_BROKEN
 528        select IRQ_CPU
 529        select HW_HAS_EISA
 530        select I8253
 531        select I8259
 532        select SGI_HAS_I8042
 533        select SGI_HAS_INDYDOG
 534        select SGI_HAS_HAL2
 535        select SGI_HAS_SEEQ
 536        select SGI_HAS_WD93
 537        select SGI_HAS_ZILOG
 538        select SWAP_IO_SPACE
 539        select SYS_HAS_CPU_R10000
 540        #
 541        # Disable EARLY_PRINTK for now since it leads to overwritten prom
 542        # memory during early boot on some machines.
 543        #
 544        # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
 545        # for a more details discussion
 546        #
 547        # select SYS_HAS_EARLY_PRINTK
 548        select SYS_SUPPORTS_64BIT_KERNEL
 549        select SYS_SUPPORTS_BIG_ENDIAN
 550      help
 551        This is the SGI Indigo2 with R10000 processor.  To compile a Linux
 552        kernel that runs on these, say Y here.
 553
 554config SGI_IP32
 555        bool "SGI IP32 (O2)"
 556        select ARC
 557        select ARC32
 558        select BOOT_ELF32
 559        select CEVT_R4K
 560        select CSRC_R4K
 561        select DMA_NONCOHERENT
 562        select HW_HAS_PCI
 563        select IRQ_CPU
 564        select R5000_CPU_SCACHE
 565        select RM7000_CPU_SCACHE
 566        select SYS_HAS_CPU_R5000
 567        select SYS_HAS_CPU_R10000 if BROKEN
 568        select SYS_HAS_CPU_RM7000
 569        select SYS_HAS_CPU_NEVADA
 570        select SYS_SUPPORTS_64BIT_KERNEL
 571        select SYS_SUPPORTS_BIG_ENDIAN
 572        help
 573          If you want this kernel to run on SGI O2 workstation, say Y here.
 574
 575config SIBYTE_CRHINE
 576        bool "Sibyte BCM91120C-CRhine"
 577        depends on EXPERIMENTAL
 578        select BOOT_ELF32
 579        select DMA_COHERENT
 580        select SIBYTE_BCM1120
 581        select SWAP_IO_SPACE
 582        select SYS_HAS_CPU_SB1
 583        select SYS_SUPPORTS_BIG_ENDIAN
 584        select SYS_SUPPORTS_LITTLE_ENDIAN
 585
 586config SIBYTE_CARMEL
 587        bool "Sibyte BCM91120x-Carmel"
 588        depends on EXPERIMENTAL
 589        select BOOT_ELF32
 590        select DMA_COHERENT
 591        select SIBYTE_BCM1120
 592        select SWAP_IO_SPACE
 593        select SYS_HAS_CPU_SB1
 594        select SYS_SUPPORTS_BIG_ENDIAN
 595        select SYS_SUPPORTS_LITTLE_ENDIAN
 596
 597config SIBYTE_CRHONE
 598        bool "Sibyte BCM91125C-CRhone"
 599        depends on EXPERIMENTAL
 600        select BOOT_ELF32
 601        select DMA_COHERENT
 602        select SIBYTE_BCM1125
 603        select SWAP_IO_SPACE
 604        select SYS_HAS_CPU_SB1
 605        select SYS_SUPPORTS_BIG_ENDIAN
 606        select SYS_SUPPORTS_HIGHMEM
 607        select SYS_SUPPORTS_LITTLE_ENDIAN
 608
 609config SIBYTE_RHONE
 610        bool "Sibyte BCM91125E-Rhone"
 611        depends on EXPERIMENTAL
 612        select BOOT_ELF32
 613        select DMA_COHERENT
 614        select SIBYTE_BCM1125H
 615        select SWAP_IO_SPACE
 616        select SYS_HAS_CPU_SB1
 617        select SYS_SUPPORTS_BIG_ENDIAN
 618        select SYS_SUPPORTS_LITTLE_ENDIAN
 619
 620config SIBYTE_SWARM
 621        bool "Sibyte BCM91250A-SWARM"
 622        select BOOT_ELF32
 623        select DMA_COHERENT
 624        select HAVE_PATA_PLATFORM
 625        select NR_CPUS_DEFAULT_2
 626        select SIBYTE_SB1250
 627        select SWAP_IO_SPACE
 628        select SYS_HAS_CPU_SB1
 629        select SYS_SUPPORTS_BIG_ENDIAN
 630        select SYS_SUPPORTS_HIGHMEM
 631        select SYS_SUPPORTS_LITTLE_ENDIAN
 632        select ZONE_DMA32 if 64BIT
 633
 634config SIBYTE_LITTLESUR
 635        bool "Sibyte BCM91250C2-LittleSur"
 636        depends on EXPERIMENTAL
 637        select BOOT_ELF32
 638        select DMA_COHERENT
 639        select HAVE_PATA_PLATFORM
 640        select NR_CPUS_DEFAULT_2
 641        select SIBYTE_SB1250
 642        select SWAP_IO_SPACE
 643        select SYS_HAS_CPU_SB1
 644        select SYS_SUPPORTS_BIG_ENDIAN
 645        select SYS_SUPPORTS_HIGHMEM
 646        select SYS_SUPPORTS_LITTLE_ENDIAN
 647
 648config SIBYTE_SENTOSA
 649        bool "Sibyte BCM91250E-Sentosa"
 650        depends on EXPERIMENTAL
 651        select BOOT_ELF32
 652        select DMA_COHERENT
 653        select NR_CPUS_DEFAULT_2
 654        select SIBYTE_SB1250
 655        select SWAP_IO_SPACE
 656        select SYS_HAS_CPU_SB1
 657        select SYS_SUPPORTS_BIG_ENDIAN
 658        select SYS_SUPPORTS_LITTLE_ENDIAN
 659
 660config SIBYTE_BIGSUR
 661        bool "Sibyte BCM91480B-BigSur"
 662        select BOOT_ELF32
 663        select DMA_COHERENT
 664        select NR_CPUS_DEFAULT_4
 665        select SIBYTE_BCM1x80
 666        select SWAP_IO_SPACE
 667        select SYS_HAS_CPU_SB1
 668        select SYS_SUPPORTS_BIG_ENDIAN
 669        select SYS_SUPPORTS_HIGHMEM
 670        select SYS_SUPPORTS_LITTLE_ENDIAN
 671        select ZONE_DMA32 if 64BIT
 672
 673config SNI_RM
 674        bool "SNI RM200/300/400"
 675        select ARC if CPU_LITTLE_ENDIAN
 676        select ARC32 if CPU_LITTLE_ENDIAN
 677        select SNIPROM if CPU_BIG_ENDIAN
 678        select ARCH_MAY_HAVE_PC_FDC
 679        select BOOT_ELF32
 680        select CEVT_R4K
 681        select CSRC_R4K
 682        select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
 683        select DMA_NONCOHERENT
 684        select GENERIC_ISA_DMA
 685        select HAVE_PCSPKR_PLATFORM
 686        select HW_HAS_EISA
 687        select HW_HAS_PCI
 688        select IRQ_CPU
 689        select I8253
 690        select I8259
 691        select ISA
 692        select SWAP_IO_SPACE if CPU_BIG_ENDIAN
 693        select SYS_HAS_CPU_R4X00
 694        select SYS_HAS_CPU_R5000
 695        select SYS_HAS_CPU_R10000
 696        select R5000_CPU_SCACHE
 697        select SYS_HAS_EARLY_PRINTK
 698        select SYS_SUPPORTS_32BIT_KERNEL
 699        select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
 700        select SYS_SUPPORTS_BIG_ENDIAN
 701        select SYS_SUPPORTS_HIGHMEM
 702        select SYS_SUPPORTS_LITTLE_ENDIAN
 703        help
 704          The SNI RM200/300/400 are MIPS-based machines manufactured by
 705          Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
 706          Technology and now in turn merged with Fujitsu.  Say Y here to
 707          support this machine type.
 708
 709config MACH_TX39XX
 710        bool "Toshiba TX39 series based machines"
 711
 712config MACH_TX49XX
 713        bool "Toshiba TX49 series based machines"
 714
 715config MIKROTIK_RB532
 716        bool "Mikrotik RB532 boards"
 717        select CEVT_R4K
 718        select CSRC_R4K
 719        select DMA_NONCOHERENT
 720        select HW_HAS_PCI
 721        select IRQ_CPU
 722        select SYS_HAS_CPU_MIPS32_R1
 723        select SYS_SUPPORTS_32BIT_KERNEL
 724        select SYS_SUPPORTS_LITTLE_ENDIAN
 725        select SWAP_IO_SPACE
 726        select BOOT_RAW
 727        select ARCH_REQUIRE_GPIOLIB
 728        help
 729          Support the Mikrotik(tm) RouterBoard 532 series,
 730          based on the IDT RC32434 SoC.
 731
 732config WR_PPMC
 733        bool "Wind River PPMC board"
 734        select CEVT_R4K
 735        select CSRC_R4K
 736        select IRQ_CPU
 737        select BOOT_ELF32
 738        select DMA_NONCOHERENT
 739        select HW_HAS_PCI
 740        select PCI_GT64XXX_PCI0
 741        select SWAP_IO_SPACE
 742        select SYS_HAS_CPU_MIPS32_R1
 743        select SYS_HAS_CPU_MIPS32_R2
 744        select SYS_HAS_CPU_MIPS64_R1
 745        select SYS_HAS_CPU_NEVADA
 746        select SYS_HAS_CPU_RM7000
 747        select SYS_SUPPORTS_32BIT_KERNEL
 748        select SYS_SUPPORTS_64BIT_KERNEL
 749        select SYS_SUPPORTS_BIG_ENDIAN
 750        select SYS_SUPPORTS_LITTLE_ENDIAN
 751        help
 752          This enables support for the Wind River MIPS32 4KC PPMC evaluation
 753          board, which is based on GT64120 bridge chip.
 754
 755config CAVIUM_OCTEON_SIMULATOR
 756        bool "Cavium Networks Octeon Simulator"
 757        select CEVT_R4K
 758        select 64BIT_PHYS_ADDR
 759        select DMA_COHERENT
 760        select SYS_SUPPORTS_64BIT_KERNEL
 761        select SYS_SUPPORTS_BIG_ENDIAN
 762        select SYS_SUPPORTS_HOTPLUG_CPU
 763        select SYS_HAS_CPU_CAVIUM_OCTEON
 764        select HOLES_IN_ZONE
 765        help
 766          The Octeon simulator is software performance model of the Cavium
 767          Octeon Processor. It supports simulating Octeon processors on x86
 768          hardware.
 769
 770config CAVIUM_OCTEON_REFERENCE_BOARD
 771        bool "Cavium Networks Octeon reference board"
 772        select CEVT_R4K
 773        select 64BIT_PHYS_ADDR
 774        select DMA_COHERENT
 775        select SYS_SUPPORTS_64BIT_KERNEL
 776        select SYS_SUPPORTS_BIG_ENDIAN
 777        select SYS_SUPPORTS_HOTPLUG_CPU
 778        select SYS_HAS_EARLY_PRINTK
 779        select SYS_HAS_CPU_CAVIUM_OCTEON
 780        select SWAP_IO_SPACE
 781        select HW_HAS_PCI
 782        select ARCH_SUPPORTS_MSI
 783        select ZONE_DMA32
 784        select USB_ARCH_HAS_OHCI
 785        select USB_ARCH_HAS_EHCI
 786        select HOLES_IN_ZONE
 787        help
 788          This option supports all of the Octeon reference boards from Cavium
 789          Networks. It builds a kernel that dynamically determines the Octeon
 790          CPU type and supports all known board reference implementations.
 791          Some of the supported boards are:
 792                EBT3000
 793                EBH3000
 794                EBH3100
 795                Thunder
 796                Kodama
 797                Hikari
 798          Say Y here for most Octeon reference boards.
 799
 800config NLM_XLR_BOARD
 801        bool "Netlogic XLR/XLS based systems"
 802        depends on EXPERIMENTAL
 803        select BOOT_ELF32
 804        select NLM_COMMON
 805        select SYS_HAS_CPU_XLR
 806        select SYS_SUPPORTS_SMP
 807        select HW_HAS_PCI
 808        select SWAP_IO_SPACE
 809        select SYS_SUPPORTS_32BIT_KERNEL
 810        select SYS_SUPPORTS_64BIT_KERNEL
 811        select 64BIT_PHYS_ADDR
 812        select SYS_SUPPORTS_BIG_ENDIAN
 813        select SYS_SUPPORTS_HIGHMEM
 814        select DMA_COHERENT
 815        select NR_CPUS_DEFAULT_32
 816        select CEVT_R4K
 817        select CSRC_R4K
 818        select IRQ_CPU
 819        select ARCH_SUPPORTS_MSI
 820        select ZONE_DMA if 64BIT
 821        select SYNC_R4K
 822        select SYS_HAS_EARLY_PRINTK
 823        select USB_ARCH_HAS_OHCI if USB_SUPPORT
 824        select USB_ARCH_HAS_EHCI if USB_SUPPORT
 825        help
 826          Support for systems based on Netlogic XLR and XLS processors.
 827          Say Y here if you have a XLR or XLS based board.
 828
 829config NLM_XLP_BOARD
 830        bool "Netlogic XLP based systems"
 831        depends on EXPERIMENTAL
 832        select BOOT_ELF32
 833        select NLM_COMMON
 834        select SYS_HAS_CPU_XLP
 835        select SYS_SUPPORTS_SMP
 836        select HW_HAS_PCI
 837        select SYS_SUPPORTS_32BIT_KERNEL
 838        select SYS_SUPPORTS_64BIT_KERNEL
 839        select 64BIT_PHYS_ADDR
 840        select SYS_SUPPORTS_BIG_ENDIAN
 841        select SYS_SUPPORTS_LITTLE_ENDIAN
 842        select SYS_SUPPORTS_HIGHMEM
 843        select DMA_COHERENT
 844        select NR_CPUS_DEFAULT_32
 845        select CEVT_R4K
 846        select CSRC_R4K
 847        select IRQ_CPU
 848        select ZONE_DMA if 64BIT
 849        select SYNC_R4K
 850        select SYS_HAS_EARLY_PRINTK
 851        select USE_OF
 852        help
 853          This board is based on Netlogic XLP Processor.
 854          Say Y here if you have a XLP based board.
 855
 856endchoice
 857
 858source "arch/mips/alchemy/Kconfig"
 859source "arch/mips/ath79/Kconfig"
 860source "arch/mips/bcm47xx/Kconfig"
 861source "arch/mips/bcm63xx/Kconfig"
 862source "arch/mips/jazz/Kconfig"
 863source "arch/mips/jz4740/Kconfig"
 864source "arch/mips/lantiq/Kconfig"
 865source "arch/mips/lasat/Kconfig"
 866source "arch/mips/pmc-sierra/Kconfig"
 867source "arch/mips/powertv/Kconfig"
 868source "arch/mips/sgi-ip27/Kconfig"
 869source "arch/mips/sibyte/Kconfig"
 870source "arch/mips/txx9/Kconfig"
 871source "arch/mips/vr41xx/Kconfig"
 872source "arch/mips/cavium-octeon/Kconfig"
 873source "arch/mips/loongson/Kconfig"
 874source "arch/mips/loongson1/Kconfig"
 875source "arch/mips/netlogic/Kconfig"
 876
 877endmenu
 878
 879config RWSEM_GENERIC_SPINLOCK
 880        bool
 881        default y
 882
 883config RWSEM_XCHGADD_ALGORITHM
 884        bool
 885
 886config ARCH_HAS_ILOG2_U32
 887        bool
 888        default n
 889
 890config ARCH_HAS_ILOG2_U64
 891        bool
 892        default n
 893
 894config GENERIC_HWEIGHT
 895        bool
 896        default y
 897
 898config GENERIC_CALIBRATE_DELAY
 899        bool
 900        default y
 901
 902config SCHED_OMIT_FRAME_POINTER
 903        bool
 904        default y
 905
 906#
 907# Select some configuration options automatically based on user selections.
 908#
 909config ARC
 910        bool
 911
 912config ARCH_MAY_HAVE_PC_FDC
 913        bool
 914
 915config BOOT_RAW
 916        bool
 917
 918config CEVT_BCM1480
 919        bool
 920
 921config CEVT_DS1287
 922        bool
 923
 924config CEVT_GT641XX
 925        bool
 926
 927config CEVT_R4K_LIB
 928        bool
 929
 930config CEVT_R4K
 931        select CEVT_R4K_LIB
 932        bool
 933
 934config CEVT_SB1250
 935        bool
 936
 937config CEVT_TXX9
 938        bool
 939
 940config CSRC_BCM1480
 941        bool
 942
 943config CSRC_IOASIC
 944        bool
 945
 946config CSRC_POWERTV
 947        bool
 948
 949config CSRC_R4K_LIB
 950        bool
 951
 952config CSRC_R4K
 953        select CSRC_R4K_LIB
 954        bool
 955
 956config CSRC_SB1250
 957        bool
 958
 959config GPIO_TXX9
 960        select GENERIC_GPIO
 961        select ARCH_REQUIRE_GPIOLIB
 962        bool
 963
 964config CFE
 965        bool
 966
 967config ARCH_DMA_ADDR_T_64BIT
 968        def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
 969
 970config DMA_COHERENT
 971        bool
 972
 973config DMA_NONCOHERENT
 974        bool
 975        select NEED_DMA_MAP_STATE
 976
 977config NEED_DMA_MAP_STATE
 978        bool
 979
 980config SYS_HAS_EARLY_PRINTK
 981        bool
 982
 983config HOTPLUG_CPU
 984        bool "Support for hot-pluggable CPUs"
 985        depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
 986        help
 987          Say Y here to allow turning CPUs off and on. CPUs can be
 988          controlled through /sys/devices/system/cpu.
 989          (Note: power management support will enable this option
 990            automatically on SMP systems. )
 991          Say N if you want to disable CPU hotplug.
 992
 993config SYS_SUPPORTS_HOTPLUG_CPU
 994        bool
 995
 996config I8259
 997        bool
 998
 999config MIPS_BONITO64
1000        bool
1001
1002config MIPS_MSC
1003        bool
1004
1005config MIPS_NILE4
1006        bool
1007
1008config MIPS_DISABLE_OBSOLETE_IDE
1009        bool
1010
1011config SYNC_R4K
1012        bool
1013
1014config MIPS_MACHINE
1015        def_bool n
1016
1017config NO_IOPORT
1018        def_bool n
1019
1020config GENERIC_ISA_DMA
1021        bool
1022        select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
1023        select ISA_DMA_API
1024
1025config GENERIC_ISA_DMA_SUPPORT_BROKEN
1026        bool
1027        select GENERIC_ISA_DMA
1028
1029config ISA_DMA_API
1030        bool
1031
1032config GENERIC_GPIO
1033        bool
1034
1035config HOLES_IN_ZONE
1036        bool
1037
1038#
1039# Endianness selection.  Sufficiently obscure so many users don't know what to
1040# answer,so we try hard to limit the available choices.  Also the use of a
1041# choice statement should be more obvious to the user.
1042#
1043choice
1044        prompt "Endianness selection"
1045        help
1046          Some MIPS machines can be configured for either little or big endian
1047          byte order. These modes require different kernels and a different
1048          Linux distribution.  In general there is one preferred byteorder for a
1049          particular system but some systems are just as commonly used in the
1050          one or the other endianness.
1051
1052config CPU_BIG_ENDIAN
1053        bool "Big endian"
1054        depends on SYS_SUPPORTS_BIG_ENDIAN
1055
1056config CPU_LITTLE_ENDIAN
1057        bool "Little endian"
1058        depends on SYS_SUPPORTS_LITTLE_ENDIAN
1059        help
1060
1061endchoice
1062
1063config EXPORT_UASM
1064        bool
1065
1066config SYS_SUPPORTS_APM_EMULATION
1067        bool
1068
1069config SYS_SUPPORTS_BIG_ENDIAN
1070        bool
1071
1072config SYS_SUPPORTS_LITTLE_ENDIAN
1073        bool
1074
1075config SYS_SUPPORTS_HUGETLBFS
1076        bool
1077        depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1078        default y
1079
1080config IRQ_CPU
1081        bool
1082
1083config IRQ_CPU_RM7K
1084        bool
1085
1086config IRQ_CPU_RM9K
1087        bool
1088
1089config IRQ_MSP_SLP
1090        bool
1091
1092config IRQ_MSP_CIC
1093        bool
1094
1095config IRQ_TXX9
1096        bool
1097
1098config IRQ_GT641XX
1099        bool
1100
1101config IRQ_GIC
1102        bool
1103
1104config MIPS_BOARDS_GEN
1105        bool
1106
1107config PCI_GT64XXX_PCI0
1108        bool
1109
1110config NO_EXCEPT_FILL
1111        bool
1112
1113config MIPS_RM9122
1114        bool
1115        select SERIAL_RM9000
1116
1117config SOC_EMMA2RH
1118        bool
1119        select CEVT_R4K
1120        select CSRC_R4K
1121        select DMA_NONCOHERENT
1122        select IRQ_CPU
1123        select SWAP_IO_SPACE
1124        select SYS_HAS_CPU_R5500
1125        select SYS_SUPPORTS_32BIT_KERNEL
1126        select SYS_SUPPORTS_64BIT_KERNEL
1127        select SYS_SUPPORTS_BIG_ENDIAN
1128
1129config SOC_PNX833X
1130        bool
1131        select CEVT_R4K
1132        select CSRC_R4K
1133        select IRQ_CPU
1134        select DMA_NONCOHERENT
1135        select SYS_HAS_CPU_MIPS32_R2
1136        select SYS_SUPPORTS_32BIT_KERNEL
1137        select SYS_SUPPORTS_LITTLE_ENDIAN
1138        select SYS_SUPPORTS_BIG_ENDIAN
1139        select GENERIC_GPIO
1140        select CPU_MIPSR2_IRQ_VI
1141
1142config SOC_PNX8335
1143        bool
1144        select SOC_PNX833X
1145
1146config PNX8550
1147        bool
1148        select SOC_PNX8550
1149
1150config SOC_PNX8550
1151        bool
1152        select DMA_NONCOHERENT
1153        select HW_HAS_PCI
1154        select SYS_HAS_CPU_MIPS32_R1
1155        select SYS_HAS_EARLY_PRINTK
1156        select SYS_SUPPORTS_32BIT_KERNEL
1157        select GENERIC_GPIO
1158
1159config SWAP_IO_SPACE
1160        bool
1161
1162config SERIAL_RM9000
1163        bool
1164
1165config SGI_HAS_INDYDOG
1166        bool
1167
1168config SGI_HAS_HAL2
1169        bool
1170
1171config SGI_HAS_SEEQ
1172        bool
1173
1174config SGI_HAS_WD93
1175        bool
1176
1177config SGI_HAS_ZILOG
1178        bool
1179
1180config SGI_HAS_I8042
1181        bool
1182
1183config DEFAULT_SGI_PARTITION
1184        bool
1185
1186config ARC32
1187        bool
1188
1189config SNIPROM
1190        bool
1191
1192config BOOT_ELF32
1193        bool
1194
1195config MIPS_L1_CACHE_SHIFT
1196        int
1197        default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1198        default "6" if MIPS_CPU_SCACHE
1199        default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1200        default "5"
1201
1202config HAVE_STD_PC_SERIAL_PORT
1203        bool
1204
1205config ARC_CONSOLE
1206        bool "ARC console support"
1207        depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1208
1209config ARC_MEMORY
1210        bool
1211        depends on MACH_JAZZ || SNI_RM || SGI_IP32
1212        default y
1213
1214config ARC_PROMLIB
1215        bool
1216        depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1217        default y
1218
1219config ARC64
1220        bool
1221
1222config BOOT_ELF64
1223        bool
1224
1225menu "CPU selection"
1226
1227choice
1228        prompt "CPU type"
1229        default CPU_R4X00
1230
1231config CPU_LOONGSON2E
1232        bool "Loongson 2E"
1233        depends on SYS_HAS_CPU_LOONGSON2E
1234        select CPU_LOONGSON2
1235        help
1236          The Loongson 2E processor implements the MIPS III instruction set
1237          with many extensions.
1238
1239          It has an internal FPGA northbridge, which is compatible to
1240          bonito64.
1241
1242config CPU_LOONGSON2F
1243        bool "Loongson 2F"
1244        depends on SYS_HAS_CPU_LOONGSON2F
1245        select CPU_LOONGSON2
1246        select GENERIC_GPIO
1247        select ARCH_REQUIRE_GPIOLIB
1248        help
1249          The Loongson 2F processor implements the MIPS III instruction set
1250          with many extensions.
1251
1252          Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1253          have a similar programming interface with FPGA northbridge used in
1254          Loongson2E.
1255
1256config CPU_LOONGSON1B
1257        bool "Loongson 1B"
1258        depends on SYS_HAS_CPU_LOONGSON1B
1259        select CPU_LOONGSON1
1260        help
1261          The Loongson 1B is a 32-bit SoC, which implements the MIPS32
1262          release 2 instruction set.
1263
1264config CPU_MIPS32_R1
1265        bool "MIPS32 Release 1"
1266        depends on SYS_HAS_CPU_MIPS32_R1
1267        select CPU_HAS_PREFETCH
1268        select CPU_SUPPORTS_32BIT_KERNEL
1269        select CPU_SUPPORTS_HIGHMEM
1270        help
1271          Choose this option to build a kernel for release 1 or later of the
1272          MIPS32 architecture.  Most modern embedded systems with a 32-bit
1273          MIPS processor are based on a MIPS32 processor.  If you know the
1274          specific type of processor in your system, choose those that one
1275          otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1276          Release 2 of the MIPS32 architecture is available since several
1277          years so chances are you even have a MIPS32 Release 2 processor
1278          in which case you should choose CPU_MIPS32_R2 instead for better
1279          performance.
1280
1281config CPU_MIPS32_R2
1282        bool "MIPS32 Release 2"
1283        depends on SYS_HAS_CPU_MIPS32_R2
1284        select CPU_HAS_PREFETCH
1285        select CPU_SUPPORTS_32BIT_KERNEL
1286        select CPU_SUPPORTS_HIGHMEM
1287        help
1288          Choose this option to build a kernel for release 2 or later of the
1289          MIPS32 architecture.  Most modern embedded systems with a 32-bit
1290          MIPS processor are based on a MIPS32 processor.  If you know the
1291          specific type of processor in your system, choose those that one
1292          otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1293
1294config CPU_MIPS64_R1
1295        bool "MIPS64 Release 1"
1296        depends on SYS_HAS_CPU_MIPS64_R1
1297        select CPU_HAS_PREFETCH
1298        select CPU_SUPPORTS_32BIT_KERNEL
1299        select CPU_SUPPORTS_64BIT_KERNEL
1300        select CPU_SUPPORTS_HIGHMEM
1301        select CPU_SUPPORTS_HUGEPAGES
1302        help
1303          Choose this option to build a kernel for release 1 or later of the
1304          MIPS64 architecture.  Many modern embedded systems with a 64-bit
1305          MIPS processor are based on a MIPS64 processor.  If you know the
1306          specific type of processor in your system, choose those that one
1307          otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1308          Release 2 of the MIPS64 architecture is available since several
1309          years so chances are you even have a MIPS64 Release 2 processor
1310          in which case you should choose CPU_MIPS64_R2 instead for better
1311          performance.
1312
1313config CPU_MIPS64_R2
1314        bool "MIPS64 Release 2"
1315        depends on SYS_HAS_CPU_MIPS64_R2
1316        select CPU_HAS_PREFETCH
1317        select CPU_SUPPORTS_32BIT_KERNEL
1318        select CPU_SUPPORTS_64BIT_KERNEL
1319        select CPU_SUPPORTS_HIGHMEM
1320        select CPU_SUPPORTS_HUGEPAGES
1321        help
1322          Choose this option to build a kernel for release 2 or later of the
1323          MIPS64 architecture.  Many modern embedded systems with a 64-bit
1324          MIPS processor are based on a MIPS64 processor.  If you know the
1325          specific type of processor in your system, choose those that one
1326          otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1327
1328config CPU_R3000
1329        bool "R3000"
1330        depends on SYS_HAS_CPU_R3000
1331        select CPU_HAS_WB
1332        select CPU_SUPPORTS_32BIT_KERNEL
1333        select CPU_SUPPORTS_HIGHMEM
1334        help
1335          Please make sure to pick the right CPU type. Linux/MIPS is not
1336          designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1337          *not* work on R4000 machines and vice versa.  However, since most
1338          of the supported machines have an R4000 (or similar) CPU, R4x00
1339          might be a safe bet.  If the resulting kernel does not work,
1340          try to recompile with R3000.
1341
1342config CPU_TX39XX
1343        bool "R39XX"
1344        depends on SYS_HAS_CPU_TX39XX
1345        select CPU_SUPPORTS_32BIT_KERNEL
1346
1347config CPU_VR41XX
1348        bool "R41xx"
1349        depends on SYS_HAS_CPU_VR41XX
1350        select CPU_SUPPORTS_32BIT_KERNEL
1351        select CPU_SUPPORTS_64BIT_KERNEL
1352        help
1353          The options selects support for the NEC VR4100 series of processors.
1354          Only choose this option if you have one of these processors as a
1355          kernel built with this option will not run on any other type of
1356          processor or vice versa.
1357
1358config CPU_R4300
1359        bool "R4300"
1360        depends on SYS_HAS_CPU_R4300
1361        select CPU_SUPPORTS_32BIT_KERNEL
1362        select CPU_SUPPORTS_64BIT_KERNEL
1363        help
1364          MIPS Technologies R4300-series processors.
1365
1366config CPU_R4X00
1367        bool "R4x00"
1368        depends on SYS_HAS_CPU_R4X00
1369        select CPU_SUPPORTS_32BIT_KERNEL
1370        select CPU_SUPPORTS_64BIT_KERNEL
1371        help
1372          MIPS Technologies R4000-series processors other than 4300, including
1373          the R4000, R4400, R4600, and 4700.
1374
1375config CPU_TX49XX
1376        bool "R49XX"
1377        depends on SYS_HAS_CPU_TX49XX
1378        select CPU_HAS_PREFETCH
1379        select CPU_SUPPORTS_32BIT_KERNEL
1380        select CPU_SUPPORTS_64BIT_KERNEL
1381
1382config CPU_R5000
1383        bool "R5000"
1384        depends on SYS_HAS_CPU_R5000
1385        select CPU_SUPPORTS_32BIT_KERNEL
1386        select CPU_SUPPORTS_64BIT_KERNEL
1387        help
1388          MIPS Technologies R5000-series processors other than the Nevada.
1389
1390config CPU_R5432
1391        bool "R5432"
1392        depends on SYS_HAS_CPU_R5432
1393        select CPU_SUPPORTS_32BIT_KERNEL
1394        select CPU_SUPPORTS_64BIT_KERNEL
1395
1396config CPU_R5500
1397        bool "R5500"
1398        depends on SYS_HAS_CPU_R5500
1399        select CPU_SUPPORTS_32BIT_KERNEL
1400        select CPU_SUPPORTS_64BIT_KERNEL
1401        select CPU_SUPPORTS_HUGEPAGES
1402        help
1403          NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1404          instruction set.
1405
1406config CPU_R6000
1407        bool "R6000"
1408        depends on EXPERIMENTAL
1409        depends on SYS_HAS_CPU_R6000
1410        select CPU_SUPPORTS_32BIT_KERNEL
1411        help
1412          MIPS Technologies R6000 and R6000A series processors.  Note these
1413          processors are extremely rare and the support for them is incomplete.
1414
1415config CPU_NEVADA
1416        bool "RM52xx"
1417        depends on SYS_HAS_CPU_NEVADA
1418        select CPU_SUPPORTS_32BIT_KERNEL
1419        select CPU_SUPPORTS_64BIT_KERNEL
1420        help
1421          QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1422
1423config CPU_R8000
1424        bool "R8000"
1425        depends on EXPERIMENTAL
1426        depends on SYS_HAS_CPU_R8000
1427        select CPU_HAS_PREFETCH
1428        select CPU_SUPPORTS_64BIT_KERNEL
1429        help
1430          MIPS Technologies R8000 processors.  Note these processors are
1431          uncommon and the support for them is incomplete.
1432
1433config CPU_R10000
1434        bool "R10000"
1435        depends on SYS_HAS_CPU_R10000
1436        select CPU_HAS_PREFETCH
1437        select CPU_SUPPORTS_32BIT_KERNEL
1438        select CPU_SUPPORTS_64BIT_KERNEL
1439        select CPU_SUPPORTS_HIGHMEM
1440        help
1441          MIPS Technologies R10000-series processors.
1442
1443config CPU_RM7000
1444        bool "RM7000"
1445        depends on SYS_HAS_CPU_RM7000
1446        select CPU_HAS_PREFETCH
1447        select CPU_SUPPORTS_32BIT_KERNEL
1448        select CPU_SUPPORTS_64BIT_KERNEL
1449        select CPU_SUPPORTS_HIGHMEM
1450
1451config CPU_RM9000
1452        bool "RM9000"
1453        depends on SYS_HAS_CPU_RM9000
1454        select CPU_HAS_PREFETCH
1455        select CPU_SUPPORTS_32BIT_KERNEL
1456        select CPU_SUPPORTS_64BIT_KERNEL
1457        select CPU_SUPPORTS_HIGHMEM
1458        select WEAK_ORDERING
1459
1460config CPU_SB1
1461        bool "SB1"
1462        depends on SYS_HAS_CPU_SB1
1463        select CPU_SUPPORTS_32BIT_KERNEL
1464        select CPU_SUPPORTS_64BIT_KERNEL
1465        select CPU_SUPPORTS_HIGHMEM
1466        select WEAK_ORDERING
1467
1468config CPU_CAVIUM_OCTEON
1469        bool "Cavium Octeon processor"
1470        depends on SYS_HAS_CPU_CAVIUM_OCTEON
1471        select ARCH_SPARSEMEM_ENABLE
1472        select CPU_HAS_PREFETCH
1473        select CPU_SUPPORTS_64BIT_KERNEL
1474        select SYS_SUPPORTS_SMP
1475        select NR_CPUS_DEFAULT_16
1476        select WEAK_ORDERING
1477        select CPU_SUPPORTS_HIGHMEM
1478        select CPU_SUPPORTS_HUGEPAGES
1479        select LIBFDT
1480        select USE_OF
1481        help
1482          The Cavium Octeon processor is a highly integrated chip containing
1483          many ethernet hardware widgets for networking tasks. The processor
1484          can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1485          Full details can be found at http://www.caviumnetworks.com.
1486
1487config CPU_BMIPS3300
1488        bool "BMIPS3300"
1489        depends on SYS_HAS_CPU_BMIPS3300
1490        select CPU_BMIPS
1491        help
1492          Broadcom BMIPS3300 processors.
1493
1494config CPU_BMIPS4350
1495        bool "BMIPS4350"
1496        depends on SYS_HAS_CPU_BMIPS4350
1497        select CPU_BMIPS
1498        select SYS_SUPPORTS_SMP
1499        select SYS_SUPPORTS_HOTPLUG_CPU
1500        help
1501          Broadcom BMIPS4350 ("VIPER") processors.
1502
1503config CPU_BMIPS4380
1504        bool "BMIPS4380"
1505        depends on SYS_HAS_CPU_BMIPS4380
1506        select CPU_BMIPS
1507        select SYS_SUPPORTS_SMP
1508        select SYS_SUPPORTS_HOTPLUG_CPU
1509        help
1510          Broadcom BMIPS4380 processors.
1511
1512config CPU_BMIPS5000
1513        bool "BMIPS5000"
1514        depends on SYS_HAS_CPU_BMIPS5000
1515        select CPU_BMIPS
1516        select CPU_SUPPORTS_HIGHMEM
1517        select MIPS_CPU_SCACHE
1518        select SYS_SUPPORTS_SMP
1519        select SYS_SUPPORTS_HOTPLUG_CPU
1520        help
1521          Broadcom BMIPS5000 processors.
1522
1523config CPU_XLR
1524        bool "Netlogic XLR SoC"
1525        depends on SYS_HAS_CPU_XLR
1526        select CPU_SUPPORTS_32BIT_KERNEL
1527        select CPU_SUPPORTS_64BIT_KERNEL
1528        select CPU_SUPPORTS_HIGHMEM
1529        select WEAK_ORDERING
1530        select WEAK_REORDERING_BEYOND_LLSC
1531        select CPU_SUPPORTS_HUGEPAGES
1532        help
1533          Netlogic Microsystems XLR/XLS processors.
1534
1535config CPU_XLP
1536        bool "Netlogic XLP SoC"
1537        depends on SYS_HAS_CPU_XLP
1538        select CPU_SUPPORTS_32BIT_KERNEL
1539        select CPU_SUPPORTS_64BIT_KERNEL
1540        select CPU_SUPPORTS_HIGHMEM
1541        select CPU_HAS_LLSC
1542        select WEAK_ORDERING
1543        select WEAK_REORDERING_BEYOND_LLSC
1544        select CPU_HAS_PREFETCH
1545        help
1546          Netlogic Microsystems XLP processors.
1547endchoice
1548
1549if CPU_LOONGSON2F
1550config CPU_NOP_WORKAROUNDS
1551        bool
1552
1553config CPU_JUMP_WORKAROUNDS
1554        bool
1555
1556config CPU_LOONGSON2F_WORKAROUNDS
1557        bool "Loongson 2F Workarounds"
1558        default y
1559        select CPU_NOP_WORKAROUNDS
1560        select CPU_JUMP_WORKAROUNDS
1561        help
1562          Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1563          require workarounds.  Without workarounds the system may hang
1564          unexpectedly.  For more information please refer to the gas
1565          -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1566
1567          Loongson 2F03 and later have fixed these issues and no workarounds
1568          are needed.  The workarounds have no significant side effect on them
1569          but may decrease the performance of the system so this option should
1570          be disabled unless the kernel is intended to be run on 2F01 or 2F02
1571          systems.
1572
1573          If unsure, please say Y.
1574endif # CPU_LOONGSON2F
1575
1576config SYS_SUPPORTS_ZBOOT
1577        bool
1578        select HAVE_KERNEL_GZIP
1579        select HAVE_KERNEL_BZIP2
1580        select HAVE_KERNEL_LZMA
1581        select HAVE_KERNEL_LZO
1582
1583config SYS_SUPPORTS_ZBOOT_UART16550
1584        bool
1585        select SYS_SUPPORTS_ZBOOT
1586
1587config CPU_LOONGSON2
1588        bool
1589        select CPU_SUPPORTS_32BIT_KERNEL
1590        select CPU_SUPPORTS_64BIT_KERNEL
1591        select CPU_SUPPORTS_HIGHMEM
1592
1593config CPU_LOONGSON1
1594        bool
1595        select CPU_MIPS32
1596        select CPU_MIPSR2
1597        select CPU_HAS_PREFETCH
1598        select CPU_SUPPORTS_32BIT_KERNEL
1599        select CPU_SUPPORTS_HIGHMEM
1600
1601config CPU_BMIPS
1602        bool
1603        select CPU_MIPS32
1604        select CPU_SUPPORTS_32BIT_KERNEL
1605        select DMA_NONCOHERENT
1606        select IRQ_CPU
1607        select SWAP_IO_SPACE
1608        select WEAK_ORDERING
1609
1610config SYS_HAS_CPU_LOONGSON2E
1611        bool
1612
1613config SYS_HAS_CPU_LOONGSON2F
1614        bool
1615        select CPU_SUPPORTS_CPUFREQ
1616        select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1617        select CPU_SUPPORTS_UNCACHED_ACCELERATED
1618
1619config SYS_HAS_CPU_LOONGSON1B
1620        bool
1621
1622config SYS_HAS_CPU_MIPS32_R1
1623        bool
1624
1625config SYS_HAS_CPU_MIPS32_R2
1626        bool
1627
1628config SYS_HAS_CPU_MIPS64_R1
1629        bool
1630
1631config SYS_HAS_CPU_MIPS64_R2
1632        bool
1633
1634config SYS_HAS_CPU_R3000
1635        bool
1636
1637config SYS_HAS_CPU_TX39XX
1638        bool
1639
1640config SYS_HAS_CPU_VR41XX
1641        bool
1642
1643config SYS_HAS_CPU_R4300
1644        bool
1645
1646config SYS_HAS_CPU_R4X00
1647        bool
1648
1649config SYS_HAS_CPU_TX49XX
1650        bool
1651
1652config SYS_HAS_CPU_R5000
1653        bool
1654
1655config SYS_HAS_CPU_R5432
1656        bool
1657
1658config SYS_HAS_CPU_R5500
1659        bool
1660
1661config SYS_HAS_CPU_R6000
1662        bool
1663
1664config SYS_HAS_CPU_NEVADA
1665        bool
1666
1667config SYS_HAS_CPU_R8000
1668        bool
1669
1670config SYS_HAS_CPU_R10000
1671        bool
1672
1673config SYS_HAS_CPU_RM7000
1674        bool
1675
1676config SYS_HAS_CPU_RM9000
1677        bool
1678
1679config SYS_HAS_CPU_SB1
1680        bool
1681
1682config SYS_HAS_CPU_CAVIUM_OCTEON
1683        bool
1684
1685config SYS_HAS_CPU_BMIPS3300
1686        bool
1687
1688config SYS_HAS_CPU_BMIPS4350
1689        bool
1690
1691config SYS_HAS_CPU_BMIPS4380
1692        bool
1693
1694config SYS_HAS_CPU_BMIPS5000
1695        bool
1696
1697config SYS_HAS_CPU_XLR
1698        bool
1699
1700config SYS_HAS_CPU_XLP
1701        bool
1702
1703#
1704# CPU may reorder R->R, R->W, W->R, W->W
1705# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1706#
1707config WEAK_ORDERING
1708        bool
1709
1710#
1711# CPU may reorder reads and writes beyond LL/SC
1712# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1713#
1714config WEAK_REORDERING_BEYOND_LLSC
1715        bool
1716endmenu
1717
1718#
1719# These two indicate any level of the MIPS32 and MIPS64 architecture
1720#
1721config CPU_MIPS32
1722        bool
1723        default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1724
1725config CPU_MIPS64
1726        bool
1727        default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1728
1729#
1730# These two indicate the revision of the architecture, either Release 1 or Release 2
1731#
1732config CPU_MIPSR1
1733        bool
1734        default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1735
1736config CPU_MIPSR2
1737        bool
1738        default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1739
1740config SYS_SUPPORTS_32BIT_KERNEL
1741        bool
1742config SYS_SUPPORTS_64BIT_KERNEL
1743        bool
1744config CPU_SUPPORTS_32BIT_KERNEL
1745        bool
1746config CPU_SUPPORTS_64BIT_KERNEL
1747        bool
1748config CPU_SUPPORTS_CPUFREQ
1749        bool
1750config CPU_SUPPORTS_ADDRWINCFG
1751        bool
1752config CPU_SUPPORTS_HUGEPAGES
1753        bool
1754config CPU_SUPPORTS_UNCACHED_ACCELERATED
1755        bool
1756config MIPS_PGD_C0_CONTEXT
1757        bool
1758        default y if 64BIT && CPU_MIPSR2
1759
1760#
1761# Set to y for ptrace access to watch registers.
1762#
1763config HARDWARE_WATCHPOINTS
1764       bool
1765       default y if CPU_MIPSR1 || CPU_MIPSR2
1766
1767menu "Kernel type"
1768
1769choice
1770        prompt "Kernel code model"
1771        help
1772          You should only select this option if you have a workload that
1773          actually benefits from 64-bit processing or if your machine has
1774          large memory.  You will only be presented a single option in this
1775          menu if your system does not support both 32-bit and 64-bit kernels.
1776
1777config 32BIT
1778        bool "32-bit kernel"
1779        depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1780        select TRAD_SIGNALS
1781        help
1782          Select this option if you want to build a 32-bit kernel.
1783config 64BIT
1784        bool "64-bit kernel"
1785        depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1786        select HAVE_SYSCALL_WRAPPERS
1787        help
1788          Select this option if you want to build a 64-bit kernel.
1789
1790endchoice
1791
1792choice
1793        prompt "Kernel page size"
1794        default PAGE_SIZE_4KB
1795
1796config PAGE_SIZE_4KB
1797        bool "4kB"
1798        depends on !CPU_LOONGSON2
1799        help
1800         This option select the standard 4kB Linux page size.  On some
1801         R3000-family processors this is the only available page size.  Using
1802         4kB page size will minimize memory consumption and is therefore
1803         recommended for low memory systems.
1804
1805config PAGE_SIZE_8KB
1806        bool "8kB"
1807        depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1808        help
1809          Using 8kB page size will result in higher performance kernel at
1810          the price of higher memory consumption.  This option is available
1811          only on R8000 and cnMIPS processors.  Note that you will need a
1812          suitable Linux distribution to support this.
1813
1814config PAGE_SIZE_16KB
1815        bool "16kB"
1816        depends on !CPU_R3000 && !CPU_TX39XX
1817        help
1818          Using 16kB page size will result in higher performance kernel at
1819          the price of higher memory consumption.  This option is available on
1820          all non-R3000 family processors.  Note that you will need a suitable
1821          Linux distribution to support this.
1822
1823config PAGE_SIZE_32KB
1824        bool "32kB"
1825        depends on CPU_CAVIUM_OCTEON
1826        help
1827          Using 32kB page size will result in higher performance kernel at
1828          the price of higher memory consumption.  This option is available
1829          only on cnMIPS cores.  Note that you will need a suitable Linux
1830          distribution to support this.
1831
1832config PAGE_SIZE_64KB
1833        bool "64kB"
1834        depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1835        help
1836          Using 64kB page size will result in higher performance kernel at
1837          the price of higher memory consumption.  This option is available on
1838          all non-R3000 family processor.  Not that at the time of this
1839          writing this option is still high experimental.
1840
1841endchoice
1842
1843config FORCE_MAX_ZONEORDER
1844        int "Maximum zone order"
1845        range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB
1846        default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB
1847        range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB
1848        default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB
1849        range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB
1850        default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB
1851        range 11 64
1852        default "11"
1853        help
1854          The kernel memory allocator divides physically contiguous memory
1855          blocks into "zones", where each zone is a power of two number of
1856          pages.  This option selects the largest power of two that the kernel
1857          keeps in the memory allocator.  If you need to allocate very large
1858          blocks of physically contiguous memory, then you may need to
1859          increase this value.
1860
1861          This config option is actually maximum order plus one. For example,
1862          a value of 11 means that the largest free memory block is 2^10 pages.
1863
1864          The page size is not necessarily 4KB.  Keep this in mind
1865          when choosing a value for this option.
1866
1867config BOARD_SCACHE
1868        bool
1869
1870config IP22_CPU_SCACHE
1871        bool
1872        select BOARD_SCACHE
1873
1874#
1875# Support for a MIPS32 / MIPS64 style S-caches
1876#
1877config MIPS_CPU_SCACHE
1878        bool
1879        select BOARD_SCACHE
1880
1881config R5000_CPU_SCACHE
1882        bool
1883        select BOARD_SCACHE
1884
1885config RM7000_CPU_SCACHE
1886        bool
1887        select BOARD_SCACHE
1888
1889config SIBYTE_DMA_PAGEOPS
1890        bool "Use DMA to clear/copy pages"
1891        depends on CPU_SB1
1892        help
1893          Instead of using the CPU to zero and copy pages, use a Data Mover
1894          channel.  These DMA channels are otherwise unused by the standard
1895          SiByte Linux port.  Seems to give a small performance benefit.
1896
1897config CPU_HAS_PREFETCH
1898        bool
1899
1900config CPU_GENERIC_DUMP_TLB
1901        bool
1902        default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
1903
1904config CPU_R4K_FPU
1905        bool
1906        default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1907
1908config CPU_R4K_CACHE_TLB
1909        bool
1910        default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1911
1912choice
1913        prompt "MIPS MT options"
1914
1915config MIPS_MT_DISABLED
1916        bool "Disable multithreading support."
1917        help
1918          Use this option if your workload can't take advantage of
1919          MIPS hardware multithreading support.  On systems that don't have
1920          the option of an MT-enabled processor this option will be the only
1921          option in this menu.
1922
1923config MIPS_MT_SMP
1924        bool "Use 1 TC on each available VPE for SMP"
1925        depends on SYS_SUPPORTS_MULTITHREADING
1926        select CPU_MIPSR2_IRQ_VI
1927        select CPU_MIPSR2_IRQ_EI
1928        select MIPS_MT
1929        select NR_CPUS_DEFAULT_2
1930        select SMP
1931        select SYS_SUPPORTS_SCHED_SMT if SMP
1932        select SYS_SUPPORTS_SMP
1933        select SMP_UP
1934        select MIPS_PERF_SHARED_TC_COUNTERS
1935        help
1936          This is a kernel model which is known a VSMP but lately has been
1937          marketesed into SMVP.
1938          Virtual SMP uses the processor's VPEs  to implement virtual
1939          processors. In currently available configuration of the 34K processor
1940          this allows for a dual processor. Both processors will share the same
1941          primary caches; each will obtain the half of the TLB for it's own
1942          exclusive use. For a layman this model can be described as similar to
1943          what Intel calls Hyperthreading.
1944
1945          For further information see http://www.linux-mips.org/wiki/34K#VSMP
1946
1947config MIPS_MT_SMTC
1948        bool "SMTC: Use all TCs on all VPEs for SMP"
1949        depends on CPU_MIPS32_R2
1950        #depends on CPU_MIPS64_R2               # once there is hardware ...
1951        depends on SYS_SUPPORTS_MULTITHREADING
1952        select CPU_MIPSR2_IRQ_VI
1953        select CPU_MIPSR2_IRQ_EI
1954        select MIPS_MT
1955        select NR_CPUS_DEFAULT_8
1956        select SMP
1957        select SYS_SUPPORTS_SMP
1958        select SMP_UP
1959        help
1960          This is a kernel model which is known a SMTC or lately has been
1961          marketesed into SMVP.
1962          is presenting the available TC's of the core as processors to Linux.
1963          On currently available 34K processors this means a Linux system will
1964          see up to 5 processors. The implementation of the SMTC kernel differs
1965          significantly from VSMP and cannot efficiently coexist in the same
1966          kernel binary so the choice between VSMP and SMTC is a compile time
1967          decision.
1968
1969          For further information see http://www.linux-mips.org/wiki/34K#SMTC
1970
1971endchoice
1972
1973config MIPS_MT
1974        bool
1975
1976config SCHED_SMT
1977        bool "SMT (multithreading) scheduler support"
1978        depends on SYS_SUPPORTS_SCHED_SMT
1979        default n
1980        help
1981          SMT scheduler support improves the CPU scheduler's decision making
1982          when dealing with MIPS MT enabled cores at a cost of slightly
1983          increased overhead in some places. If unsure say N here.
1984
1985config SYS_SUPPORTS_SCHED_SMT
1986        bool
1987
1988config SYS_SUPPORTS_MULTITHREADING
1989        bool
1990
1991config MIPS_MT_FPAFF
1992        bool "Dynamic FPU affinity for FP-intensive threads"
1993        default y
1994        depends on MIPS_MT_SMP || MIPS_MT_SMTC
1995
1996config MIPS_VPE_LOADER
1997        bool "VPE loader support."
1998        depends on SYS_SUPPORTS_MULTITHREADING
1999        select CPU_MIPSR2_IRQ_VI
2000        select CPU_MIPSR2_IRQ_EI
2001        select MIPS_MT
2002        help
2003          Includes a loader for loading an elf relocatable object
2004          onto another VPE and running it.
2005
2006config MIPS_MT_SMTC_IM_BACKSTOP
2007        bool "Use per-TC register bits as backstop for inhibited IM bits"
2008        depends on MIPS_MT_SMTC
2009        default n
2010        help
2011          To support multiple TC microthreads acting as "CPUs" within
2012          a VPE, VPE-wide interrupt mask bits must be specially manipulated
2013          during interrupt handling. To support legacy drivers and interrupt
2014          controller management code, SMTC has a "backstop" to track and
2015          if necessary restore the interrupt mask. This has some performance
2016          impact on interrupt service overhead.
2017
2018config MIPS_MT_SMTC_IRQAFF
2019        bool "Support IRQ affinity API"
2020        depends on MIPS_MT_SMTC
2021        default n
2022        help
2023          Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
2024          for SMTC Linux kernel. Requires platform support, of which
2025          an example can be found in the MIPS kernel i8259 and Malta
2026          platform code.  Adds some overhead to interrupt dispatch, and
2027          should be used only if you know what you are doing.
2028
2029config MIPS_VPE_LOADER_TOM
2030        bool "Load VPE program into memory hidden from linux"
2031        depends on MIPS_VPE_LOADER
2032        default y
2033        help
2034          The loader can use memory that is present but has been hidden from
2035          Linux using the kernel command line option "mem=xxMB". It's up to
2036          you to ensure the amount you put in the option and the space your
2037          program requires is less or equal to the amount physically present.
2038
2039# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
2040config MIPS_VPE_APSP_API
2041        bool "Enable support for AP/SP API (RTLX)"
2042        depends on MIPS_VPE_LOADER
2043        help
2044
2045config MIPS_CMP
2046        bool "MIPS CMP framework support"
2047        depends on SYS_SUPPORTS_MIPS_CMP
2048        select SYNC_R4K
2049        select SYS_SUPPORTS_SMP
2050        select SYS_SUPPORTS_SCHED_SMT if SMP
2051        select WEAK_ORDERING
2052        default n
2053        help
2054          This is a placeholder option for the GCMP work. It will need to
2055          be handled differently...
2056
2057config SB1_PASS_1_WORKAROUNDS
2058        bool
2059        depends on CPU_SB1_PASS_1
2060        default y
2061
2062config SB1_PASS_2_WORKAROUNDS
2063        bool
2064        depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2065        default y
2066
2067config SB1_PASS_2_1_WORKAROUNDS
2068        bool
2069        depends on CPU_SB1 && CPU_SB1_PASS_2
2070        default y
2071
2072config 64BIT_PHYS_ADDR
2073        bool
2074
2075config ARCH_PHYS_ADDR_T_64BIT
2076       def_bool 64BIT_PHYS_ADDR
2077
2078config CPU_HAS_SMARTMIPS
2079        depends on SYS_SUPPORTS_SMARTMIPS
2080        bool "Support for the SmartMIPS ASE"
2081        help
2082          SmartMIPS is a extension of the MIPS32 architecture aimed at
2083          increased security at both hardware and software level for
2084          smartcards.  Enabling this option will allow proper use of the
2085          SmartMIPS instructions by Linux applications.  However a kernel with
2086          this option will not work on a MIPS core without SmartMIPS core.  If
2087          you don't know you probably don't have SmartMIPS and should say N
2088          here.
2089
2090config CPU_HAS_WB
2091        bool
2092
2093config XKS01
2094        bool
2095
2096#
2097# Vectored interrupt mode is an R2 feature
2098#
2099config CPU_MIPSR2_IRQ_VI
2100        bool
2101
2102#
2103# Extended interrupt mode is an R2 feature
2104#
2105config CPU_MIPSR2_IRQ_EI
2106        bool
2107
2108config CPU_HAS_SYNC
2109        bool
2110        depends on !CPU_R3000
2111        default y
2112
2113#
2114# CPU non-features
2115#
2116config CPU_DADDI_WORKAROUNDS
2117        bool
2118
2119config CPU_R4000_WORKAROUNDS
2120        bool
2121        select CPU_R4400_WORKAROUNDS
2122
2123config CPU_R4400_WORKAROUNDS
2124        bool
2125
2126#
2127# - Highmem only makes sense for the 32-bit kernel.
2128# - The current highmem code will only work properly on physically indexed
2129#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2130#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2131#   moment we protect the user and offer the highmem option only on machines
2132#   where it's known to be safe.  This will not offer highmem on a few systems
2133#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2134#   indexed CPUs but we're playing safe.
2135# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2136#   know they might have memory configurations that could make use of highmem
2137#   support.
2138#
2139config HIGHMEM
2140        bool "High Memory Support"
2141        depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2142
2143config CPU_SUPPORTS_HIGHMEM
2144        bool
2145
2146config SYS_SUPPORTS_HIGHMEM
2147        bool
2148
2149config SYS_SUPPORTS_SMARTMIPS
2150        bool
2151
2152config ARCH_FLATMEM_ENABLE
2153        def_bool y
2154        depends on !NUMA && !CPU_LOONGSON2
2155
2156config ARCH_DISCONTIGMEM_ENABLE
2157        bool
2158        default y if SGI_IP27
2159        help
2160          Say Y to support efficient handling of discontiguous physical memory,
2161          for architectures which are either NUMA (Non-Uniform Memory Access)
2162          or have huge holes in the physical address space for other reasons.
2163          See <file:Documentation/vm/numa> for more.
2164
2165config ARCH_SPARSEMEM_ENABLE
2166        bool
2167        select SPARSEMEM_STATIC
2168
2169config NUMA
2170        bool "NUMA Support"
2171        depends on SYS_SUPPORTS_NUMA
2172        help
2173          Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2174          Access).  This option improves performance on systems with more
2175          than two nodes; on two node systems it is generally better to
2176          leave it disabled; on single node systems disable this option
2177          disabled.
2178
2179config SYS_SUPPORTS_NUMA
2180        bool
2181
2182config NODES_SHIFT
2183        int
2184        default "6"
2185        depends on NEED_MULTIPLE_NODES
2186
2187config HW_PERF_EVENTS
2188        bool "Enable hardware performance counter support for perf events"
2189        depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON)
2190        default y
2191        help
2192          Enable hardware performance counter support for perf events. If
2193          disabled, perf events will use software events only.
2194
2195source "mm/Kconfig"
2196
2197config SMP
2198        bool "Multi-Processing support"
2199        depends on SYS_SUPPORTS_SMP
2200        select IRQ_PER_CPU
2201        select USE_GENERIC_SMP_HELPERS
2202        help
2203          This enables support for systems with more than one CPU. If you have
2204          a system with only one CPU, like most personal computers, say N. If
2205          you have a system with more than one CPU, say Y.
2206
2207          If you say N here, the kernel will run on single and multiprocessor
2208          machines, but will use only one CPU of a multiprocessor machine. If
2209          you say Y here, the kernel will run on many, but not all,
2210          singleprocessor machines. On a singleprocessor machine, the kernel
2211          will run faster if you say N here.
2212
2213          People using multiprocessor machines who say Y here should also say
2214          Y to "Enhanced Real Time Clock Support", below.
2215
2216          See also the SMP-HOWTO available at
2217          <http://www.tldp.org/docs.html#howto>.
2218
2219          If you don't know what to do here, say N.
2220
2221config SMP_UP
2222        bool
2223
2224config SYS_SUPPORTS_MIPS_CMP
2225        bool
2226
2227config SYS_SUPPORTS_SMP
2228        bool
2229
2230config NR_CPUS_DEFAULT_1
2231        bool
2232
2233config NR_CPUS_DEFAULT_2
2234        bool
2235
2236config NR_CPUS_DEFAULT_4
2237        bool
2238
2239config NR_CPUS_DEFAULT_8
2240        bool
2241
2242config NR_CPUS_DEFAULT_16
2243        bool
2244
2245config NR_CPUS_DEFAULT_32
2246        bool
2247
2248config NR_CPUS_DEFAULT_64
2249        bool
2250
2251config NR_CPUS
2252        int "Maximum number of CPUs (2-64)"
2253        range 1 64 if NR_CPUS_DEFAULT_1
2254        depends on SMP
2255        default "1" if NR_CPUS_DEFAULT_1
2256        default "2" if NR_CPUS_DEFAULT_2
2257        default "4" if NR_CPUS_DEFAULT_4
2258        default "8" if NR_CPUS_DEFAULT_8
2259        default "16" if NR_CPUS_DEFAULT_16
2260        default "32" if NR_CPUS_DEFAULT_32
2261        default "64" if NR_CPUS_DEFAULT_64
2262        help
2263          This allows you to specify the maximum number of CPUs which this
2264          kernel will support.  The maximum supported value is 32 for 32-bit
2265          kernel and 64 for 64-bit kernels; the minimum value which makes
2266          sense is 1 for Qemu (useful only for kernel debugging purposes)
2267          and 2 for all others.
2268
2269          This is purely to save memory - each supported CPU adds
2270          approximately eight kilobytes to the kernel image.  For best
2271          performance should round up your number of processors to the next
2272          power of two.
2273
2274config MIPS_PERF_SHARED_TC_COUNTERS
2275        bool
2276
2277#
2278# Timer Interrupt Frequency Configuration
2279#
2280
2281choice
2282        prompt "Timer frequency"
2283        default HZ_250
2284        help
2285         Allows the configuration of the timer frequency.
2286
2287        config HZ_48
2288                bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2289
2290        config HZ_100
2291                bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2292
2293        config HZ_128
2294                bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2295
2296        config HZ_250
2297                bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2298
2299        config HZ_256
2300                bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2301
2302        config HZ_1000
2303                bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2304
2305        config HZ_1024
2306                bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2307
2308endchoice
2309
2310config SYS_SUPPORTS_48HZ
2311        bool
2312
2313config SYS_SUPPORTS_100HZ
2314        bool
2315
2316config SYS_SUPPORTS_128HZ
2317        bool
2318
2319config SYS_SUPPORTS_250HZ
2320        bool
2321
2322config SYS_SUPPORTS_256HZ
2323        bool
2324
2325config SYS_SUPPORTS_1000HZ
2326        bool
2327
2328config SYS_SUPPORTS_1024HZ
2329        bool
2330
2331config SYS_SUPPORTS_ARBIT_HZ
2332        bool
2333        default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2334                     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2335                     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2336                     !SYS_SUPPORTS_1024HZ
2337
2338config HZ
2339        int
2340        default 48 if HZ_48
2341        default 100 if HZ_100
2342        default 128 if HZ_128
2343        default 250 if HZ_250
2344        default 256 if HZ_256
2345        default 1000 if HZ_1000
2346        default 1024 if HZ_1024
2347
2348source "kernel/Kconfig.preempt"
2349
2350config KEXEC
2351        bool "Kexec system call (EXPERIMENTAL)"
2352        depends on EXPERIMENTAL
2353        help
2354          kexec is a system call that implements the ability to shutdown your
2355          current kernel, and to start another kernel.  It is like a reboot
2356          but it is independent of the system firmware.   And like a reboot
2357          you can start any kernel with it, not just Linux.
2358
2359          The name comes from the similarity to the exec system call.
2360
2361          It is an ongoing process to be certain the hardware in a machine
2362          is properly shutdown, so do not be surprised if this code does not
2363          initially work for you.  It may help to enable device hotplugging
2364          support.  As of this writing the exact hardware interface is
2365          strongly in flux, so no good recommendation can be made.
2366
2367config SECCOMP
2368        bool "Enable seccomp to safely compute untrusted bytecode"
2369        depends on PROC_FS
2370        default y
2371        help
2372          This kernel feature is useful for number crunching applications
2373          that may need to compute untrusted bytecode during their
2374          execution. By using pipes or other transports made available to
2375          the process as file descriptors supporting the read/write
2376          syscalls, it's possible to isolate those applications in
2377          their own address space using seccomp. Once seccomp is
2378          enabled via /proc/<pid>/seccomp, it cannot be disabled
2379          and the task is only allowed to execute a few safe syscalls
2380          defined by each seccomp mode.
2381
2382          If unsure, say Y. Only embedded should say N here.
2383
2384config USE_OF
2385        bool
2386        select OF
2387        select OF_EARLY_FLATTREE
2388        select IRQ_DOMAIN
2389
2390endmenu
2391
2392config LOCKDEP_SUPPORT
2393        bool
2394        default y
2395
2396config STACKTRACE_SUPPORT
2397        bool
2398        default y
2399
2400source "init/Kconfig"
2401
2402source "kernel/Kconfig.freezer"
2403
2404menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2405
2406config HW_HAS_EISA
2407        bool
2408config HW_HAS_PCI
2409        bool
2410
2411config PCI
2412        bool "Support for PCI controller"
2413        depends on HW_HAS_PCI
2414        select PCI_DOMAINS
2415        select GENERIC_PCI_IOMAP
2416        select NO_GENERIC_PCI_IOPORT_MAP
2417        help
2418          Find out whether you have a PCI motherboard. PCI is the name of a
2419          bus system, i.e. the way the CPU talks to the other stuff inside
2420          your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2421          say Y, otherwise N.
2422
2423config PCI_DOMAINS
2424        bool
2425
2426source "drivers/pci/Kconfig"
2427
2428source "drivers/pci/pcie/Kconfig"
2429
2430#
2431# ISA support is now enabled via select.  Too many systems still have the one
2432# or other ISA chip on the board that users don't know about so don't expect
2433# users to choose the right thing ...
2434#
2435config ISA
2436        bool
2437
2438config EISA
2439        bool "EISA support"
2440        depends on HW_HAS_EISA
2441        select ISA
2442        select GENERIC_ISA_DMA
2443        ---help---
2444          The Extended Industry Standard Architecture (EISA) bus was
2445          developed as an open alternative to the IBM MicroChannel bus.
2446
2447          The EISA bus provided some of the features of the IBM MicroChannel
2448          bus while maintaining backward compatibility with cards made for
2449          the older ISA bus.  The EISA bus saw limited use between 1988 and
2450          1995 when it was made obsolete by the PCI bus.
2451
2452          Say Y here if you are building a kernel for an EISA-based machine.
2453
2454          Otherwise, say N.
2455
2456source "drivers/eisa/Kconfig"
2457
2458config TC
2459        bool "TURBOchannel support"
2460        depends on MACH_DECSTATION
2461        help
2462          TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2463          processors.  TURBOchannel programming specifications are available
2464          at:
2465          <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2466          and:
2467          <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2468          Linux driver support status is documented at:
2469          <http://www.linux-mips.org/wiki/DECstation>
2470
2471config MMU
2472        bool
2473        default y
2474
2475config I8253
2476        bool
2477        select CLKSRC_I8253
2478        select CLKEVT_I8253
2479        select MIPS_EXTERNAL_TIMER
2480
2481config ZONE_DMA32
2482        bool
2483
2484source "drivers/pcmcia/Kconfig"
2485
2486source "drivers/pci/hotplug/Kconfig"
2487
2488config RAPIDIO
2489        bool "RapidIO support"
2490        depends on PCI
2491        default n
2492        help
2493          If you say Y here, the kernel will include drivers and
2494          infrastructure code to support RapidIO interconnect devices.
2495
2496source "drivers/rapidio/Kconfig"
2497
2498endmenu
2499
2500menu "Executable file formats"
2501
2502source "fs/Kconfig.binfmt"
2503
2504config TRAD_SIGNALS
2505        bool
2506
2507config MIPS32_COMPAT
2508        bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2509        depends on 64BIT
2510        help
2511          Select this option if you want Linux/MIPS 32-bit binary
2512          compatibility. Since all software available for Linux/MIPS is
2513          currently 32-bit you should say Y here.
2514
2515config COMPAT
2516        bool
2517        depends on MIPS32_COMPAT
2518        select ARCH_WANT_OLD_COMPAT_IPC
2519        default y
2520
2521config SYSVIPC_COMPAT
2522        bool
2523        depends on COMPAT && SYSVIPC
2524        default y
2525
2526config MIPS32_O32
2527        bool "Kernel support for o32 binaries"
2528        depends on MIPS32_COMPAT
2529        help
2530          Select this option if you want to run o32 binaries.  These are pure
2531          32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2532          existing binaries are in this format.
2533
2534          If unsure, say Y.
2535
2536config MIPS32_N32
2537        bool "Kernel support for n32 binaries"
2538        depends on MIPS32_COMPAT
2539        help
2540          Select this option if you want to run n32 binaries.  These are
2541          64-bit binaries using 32-bit quantities for addressing and certain
2542          data that would normally be 64-bit.  They are used in special
2543          cases.
2544
2545          If unsure, say N.
2546
2547config BINFMT_ELF32
2548        bool
2549        default y if MIPS32_O32 || MIPS32_N32
2550
2551endmenu
2552
2553menu "Power management options"
2554
2555config ARCH_HIBERNATION_POSSIBLE
2556        def_bool y
2557        depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2558
2559config ARCH_SUSPEND_POSSIBLE
2560        def_bool y
2561        depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2562
2563source "kernel/power/Kconfig"
2564
2565endmenu
2566
2567source "arch/mips/kernel/cpufreq/Kconfig"
2568
2569source "net/Kconfig"
2570
2571source "drivers/Kconfig"
2572
2573source "fs/Kconfig"
2574
2575source "arch/mips/Kconfig.debug"
2576
2577source "security/Kconfig"
2578
2579source "crypto/Kconfig"
2580
2581source "lib/Kconfig"
2582
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.