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