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