4 select HAVE_GENERIC_DMA_COHERENT
8 select HAVE_PERF_EVENTS
9 select PERF_USE_VMALLOC
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
18 select HAVE_KRETPROBES
19 select RTC_LIB if !MACH_LOONGSON
20 select GENERIC_ATOMIC64 if !64BIT
22 select HAVE_DMA_API_DEBUG
23 select HAVE_GENERIC_HARDIRQS
24 select GENERIC_IRQ_PROBE
25 select HAVE_ARCH_JUMP_LABEL
27 menu "Machine selection"
37 bool "Alchemy processor based machines"
38 select 64BIT_PHYS_ADDR
42 select SYS_HAS_CPU_MIPS32_R1
43 select SYS_SUPPORTS_32BIT_KERNEL
44 select SYS_SUPPORTS_APM_EMULATION
46 select ARCH_WANT_OPTIONAL_GPIOLIB
47 select SYS_SUPPORTS_ZBOOT
50 bool "Texas Instruments AR7"
52 select DMA_NONCOHERENT
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
67 Support for the Texas Instruments AR7 System-on-a-Chip
68 family: TNETD7100, 7200 and 7300.
71 bool "Atheros AR71XX/AR724X/AR913X based boards"
72 select ARCH_REQUIRE_GPIOLIB
76 select DMA_NONCOHERENT
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
84 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
87 bool "Broadcom BCM47XX based boards"
90 select DMA_NONCOHERENT
93 select SYS_HAS_CPU_MIPS32_R1
94 select SYS_SUPPORTS_32BIT_KERNEL
95 select SYS_SUPPORTS_LITTLE_ENDIAN
97 select SSB_DRIVER_MIPS
98 select SSB_DRIVER_EXTIF
100 select SSB_B43_PCI_BRIDGE if PCI
101 select SSB_PCICORE_HOSTMODE if PCI
103 select SYS_HAS_EARLY_PRINTK
106 Support for BCM47XX based boards
109 bool "Broadcom BCM63XX based boards"
112 select DMA_NONCOHERENT
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
119 select ARCH_REQUIRE_GPIOLIB
121 Support for BCM63XX based boards
128 select DMA_NONCOHERENT
134 select PCI_GT64XXX_PCI0
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
142 config MACH_DECSTATION
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
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
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/>.
168 If you have one of the following DECstation Models you definitely
169 want to choose R4xx0 for the CPU Type:
176 otherwise choose R3000.
179 bool "Jazz family of machines"
182 select ARCH_MAY_HAVE_PC_FDC
185 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
186 select GENERIC_ISA_DMA
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
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.
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
209 select ARCH_REQUIRE_GPIOLIB
210 select SYS_HAS_EARLY_PRINTK
215 bool "LASAT Networks platforms"
218 select DMA_NONCOHERENT
219 select SYS_HAS_EARLY_PRINTK
222 select PCI_GT64XXX_PCI0
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
231 bool "Loongson family of machines"
232 select SYS_SUPPORTS_ZBOOT
234 This enables the support of Loongson family of machines.
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.
242 bool "MIPS Malta board"
243 select ARCH_MAY_HAVE_PC_FDC
248 select DMA_NONCOHERENT
249 select GENERIC_ISA_DMA
255 select MIPS_BOARDS_GEN
257 select MIPS_CPU_SCACHE
258 select PCI_GT64XXX_PCI0
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
276 This enables support for the MIPS Technologies Malta evaluation
280 bool 'MIPS simulator (MIPSsim)'
283 select DMA_NONCOHERENT
284 select SYS_HAS_EARLY_PRINTK
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
295 This option enables support for MIPS Technologies MIPSsim software
299 bool "NEC EMMA2RH Mark-eins board"
303 This enables support for the NEC Electronics Mark-eins boards.
306 bool "NEC VR4100 series based machines"
309 select SYS_HAS_CPU_VR41XX
310 select ARCH_REQUIRE_GPIOLIB
313 bool "NXP STB220 board"
316 Support for NXP Semiconductors STB220 Development Board.
323 Support for NXP Semiconductors STB225 Development Board.
326 bool "NXP PNX8550 based JBS board"
328 select SYS_SUPPORTS_LITTLE_ENDIAN
330 config PNX8550_STB810
331 bool "NXP PNX8550 based STB810 board"
333 select SYS_SUPPORTS_LITTLE_ENDIAN
336 bool "PMC-Sierra MSP chipsets"
337 depends on EXPERIMENTAL
340 select DMA_NONCOHERENT
342 select NO_EXCEPT_FILL
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
350 select SERIAL_8250_CONSOLE
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.
358 bool "PMC-Sierra Yosemite eval board"
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
375 Yosemite is an evaluation board for the RM9000x2 processor
376 manufactured by PMC-Sierra.
382 select CPU_MIPSR2_IRQ_VI
383 select CPU_MIPSR2_IRQ_EI
385 select DMA_NONCOHERENT
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
394 This enables support for the Cisco PowerTV Platform.
397 bool "SGI IP22 (Indy/Indigo2)"
403 select DEFAULT_SGI_PARTITION
404 select DMA_NONCOHERENT
408 select IP22_CPU_SCACHE
410 select GENERIC_ISA_DMA_SUPPORT_BROKEN
412 select SGI_HAS_INDYDOG
418 select SYS_HAS_CPU_R4X00
419 select SYS_HAS_CPU_R5000
421 # Disable EARLY_PRINTK for now since it leads to overwritten prom
422 # memory during early boot on some machines.
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
427 # select SYS_HAS_EARLY_PRINTK
428 select SYS_SUPPORTS_32BIT_KERNEL
429 select SYS_SUPPORTS_64BIT_KERNEL
430 select SYS_SUPPORTS_BIG_ENDIAN
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.
437 bool "SGI IP27 (Origin200/2000)"
441 select DEFAULT_SGI_PARTITION
443 select SYS_HAS_EARLY_PRINTK
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
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
457 bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
458 depends on EXPERIMENTAL
464 select DEFAULT_SGI_PARTITION
465 select DMA_NONCOHERENT
466 select GENERIC_ISA_DMA_SUPPORT_BROKEN
472 select SGI_HAS_INDYDOG
478 select SYS_HAS_CPU_R10000
480 # Disable EARLY_PRINTK for now since it leads to overwritten prom
481 # memory during early boot on some machines.
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
486 # select SYS_HAS_EARLY_PRINTK
487 select SYS_SUPPORTS_64BIT_KERNEL
488 select SYS_SUPPORTS_BIG_ENDIAN
490 This is the SGI Indigo2 with R10000 processor. To compile a Linux
491 kernel that runs on these, say Y here.
500 select DMA_NONCOHERENT
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
512 If you want this kernel to run on SGI O2 workstation, say Y here.
515 bool "Sibyte BCM91120C-CRhine"
516 depends on EXPERIMENTAL
519 select SIBYTE_BCM1120
521 select SYS_HAS_CPU_SB1
522 select SYS_SUPPORTS_BIG_ENDIAN
523 select SYS_SUPPORTS_LITTLE_ENDIAN
526 bool "Sibyte BCM91120x-Carmel"
527 depends on EXPERIMENTAL
530 select SIBYTE_BCM1120
532 select SYS_HAS_CPU_SB1
533 select SYS_SUPPORTS_BIG_ENDIAN
534 select SYS_SUPPORTS_LITTLE_ENDIAN
537 bool "Sibyte BCM91125C-CRhone"
538 depends on EXPERIMENTAL
541 select SIBYTE_BCM1125
543 select SYS_HAS_CPU_SB1
544 select SYS_SUPPORTS_BIG_ENDIAN
545 select SYS_SUPPORTS_HIGHMEM
546 select SYS_SUPPORTS_LITTLE_ENDIAN
549 bool "Sibyte BCM91125E-Rhone"
550 depends on EXPERIMENTAL
553 select SIBYTE_BCM1125H
555 select SYS_HAS_CPU_SB1
556 select SYS_SUPPORTS_BIG_ENDIAN
557 select SYS_SUPPORTS_LITTLE_ENDIAN
560 bool "Sibyte BCM91250A-SWARM"
563 select HAVE_PATA_PLATFORM
564 select NR_CPUS_DEFAULT_2
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
573 config SIBYTE_LITTLESUR
574 bool "Sibyte BCM91250C2-LittleSur"
575 depends on EXPERIMENTAL
578 select HAVE_PATA_PLATFORM
579 select NR_CPUS_DEFAULT_2
582 select SYS_HAS_CPU_SB1
583 select SYS_SUPPORTS_BIG_ENDIAN
584 select SYS_SUPPORTS_HIGHMEM
585 select SYS_SUPPORTS_LITTLE_ENDIAN
587 config SIBYTE_SENTOSA
588 bool "Sibyte BCM91250E-Sentosa"
589 depends on EXPERIMENTAL
592 select NR_CPUS_DEFAULT_2
595 select SYS_HAS_CPU_SB1
596 select SYS_SUPPORTS_BIG_ENDIAN
597 select SYS_SUPPORTS_LITTLE_ENDIAN
600 bool "Sibyte BCM91480B-BigSur"
603 select NR_CPUS_DEFAULT_4
604 select SIBYTE_BCM1x80
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
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
621 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
622 select DMA_NONCOHERENT
623 select GENERIC_ISA_DMA
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
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.
648 bool "Toshiba TX39 series based machines"
651 bool "Toshiba TX49 series based machines"
653 config MIKROTIK_RB532
654 bool "Mikrotik RB532 boards"
657 select DMA_NONCOHERENT
660 select SYS_HAS_CPU_MIPS32_R1
661 select SYS_SUPPORTS_32BIT_KERNEL
662 select SYS_SUPPORTS_LITTLE_ENDIAN
665 select ARCH_REQUIRE_GPIOLIB
667 Support the Mikrotik(tm) RouterBoard 532 series,
668 based on the IDT RC32434 SoC.
671 bool "Wind River PPMC board"
676 select DMA_NONCOHERENT
678 select PCI_GT64XXX_PCI0
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
690 This enables support for the Wind River MIPS32 4KC PPMC evaluation
691 board, which is based on GT64120 bridge chip.
693 config CAVIUM_OCTEON_SIMULATOR
694 bool "Cavium Networks Octeon Simulator"
696 select 64BIT_PHYS_ADDR
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
704 The Octeon simulator is software performance model of the Cavium
705 Octeon Processor. It supports simulating Octeon processors on x86
708 config CAVIUM_OCTEON_REFERENCE_BOARD
709 bool "Cavium Networks Octeon reference board"
711 select 64BIT_PHYS_ADDR
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
721 select ARCH_SUPPORTS_MSI
723 select USB_ARCH_HAS_OHCI
724 select USB_ARCH_HAS_EHCI
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:
736 Say Y here for most Octeon reference boards.
740 source "arch/mips/alchemy/Kconfig"
741 source "arch/mips/ath79/Kconfig"
742 source "arch/mips/bcm63xx/Kconfig"
743 source "arch/mips/jazz/Kconfig"
744 source "arch/mips/jz4740/Kconfig"
745 source "arch/mips/lasat/Kconfig"
746 source "arch/mips/pmc-sierra/Kconfig"
747 source "arch/mips/powertv/Kconfig"
748 source "arch/mips/sgi-ip27/Kconfig"
749 source "arch/mips/sibyte/Kconfig"
750 source "arch/mips/txx9/Kconfig"
751 source "arch/mips/vr41xx/Kconfig"
752 source "arch/mips/cavium-octeon/Kconfig"
753 source "arch/mips/loongson/Kconfig"
757 config RWSEM_GENERIC_SPINLOCK
761 config RWSEM_XCHGADD_ALGORITHM
764 config ARCH_HAS_ILOG2_U32
768 config ARCH_HAS_ILOG2_U64
772 config ARCH_SUPPORTS_OPROFILE
774 default y if !MIPS_MT_SMTC
776 config GENERIC_FIND_NEXT_BIT
780 config GENERIC_FIND_BIT_LE
784 config GENERIC_HWEIGHT
788 config GENERIC_CALIBRATE_DELAY
792 config GENERIC_CLOCKEVENTS
796 config GENERIC_CMOS_UPDATE
800 config SCHED_OMIT_FRAME_POINTER
805 # Select some configuration options automatically based on user selections.
810 config ARCH_MAY_HAVE_PC_FDC
859 select ARCH_REQUIRE_GPIOLIB
865 config ARCH_DMA_ADDR_T_64BIT
866 def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
871 config DMA_NONCOHERENT
873 select NEED_DMA_MAP_STATE
875 config NEED_DMA_MAP_STATE
878 config SYS_HAS_EARLY_PRINTK
882 bool "Support for hot-pluggable CPUs"
883 depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
885 Say Y here to allow turning CPUs off and on. CPUs can be
886 controlled through /sys/devices/system/cpu.
887 (Note: power management support will enable this option
888 automatically on SMP systems. )
889 Say N if you want to disable CPU hotplug.
891 config SYS_SUPPORTS_HOTPLUG_CPU
906 config MIPS_DISABLE_OBSOLETE_IDE
918 config GENERIC_ISA_DMA
920 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
923 config GENERIC_ISA_DMA_SUPPORT_BROKEN
925 select GENERIC_ISA_DMA
934 # Endianess selection. Sufficiently obscure so many users don't know what to
935 # answer,so we try hard to limit the available choices. Also the use of a
936 # choice statement should be more obvious to the user.
939 prompt "Endianess selection"
941 Some MIPS machines can be configured for either little or big endian
942 byte order. These modes require different kernels and a different
943 Linux distribution. In general there is one preferred byteorder for a
944 particular system but some systems are just as commonly used in the
945 one or the other endianness.
947 config CPU_BIG_ENDIAN
949 depends on SYS_SUPPORTS_BIG_ENDIAN
951 config CPU_LITTLE_ENDIAN
953 depends on SYS_SUPPORTS_LITTLE_ENDIAN
961 config SYS_SUPPORTS_APM_EMULATION
964 config SYS_SUPPORTS_BIG_ENDIAN
967 config SYS_SUPPORTS_LITTLE_ENDIAN
970 config SYS_SUPPORTS_HUGETLBFS
972 depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
999 config IRQ_CPU_OCTEON
1002 config MIPS_BOARDS_GEN
1005 config PCI_GT64XXX_PCI0
1008 config NO_EXCEPT_FILL
1013 select SERIAL_RM9000
1019 select DMA_NONCOHERENT
1021 select SWAP_IO_SPACE
1022 select SYS_HAS_CPU_R5500
1023 select SYS_SUPPORTS_32BIT_KERNEL
1024 select SYS_SUPPORTS_64BIT_KERNEL
1025 select SYS_SUPPORTS_BIG_ENDIAN
1032 select DMA_NONCOHERENT
1033 select SYS_HAS_CPU_MIPS32_R2
1034 select SYS_SUPPORTS_32BIT_KERNEL
1035 select SYS_SUPPORTS_LITTLE_ENDIAN
1036 select SYS_SUPPORTS_BIG_ENDIAN
1038 select CPU_MIPSR2_IRQ_VI
1050 select DMA_NONCOHERENT
1052 select SYS_HAS_CPU_MIPS32_R1
1053 select SYS_HAS_EARLY_PRINTK
1054 select SYS_SUPPORTS_32BIT_KERNEL
1057 config SWAP_IO_SPACE
1060 config SERIAL_RM9000
1063 config SGI_HAS_INDYDOG
1075 config SGI_HAS_ZILOG
1078 config SGI_HAS_I8042
1081 config DEFAULT_SGI_PARTITION
1093 config MIPS_L1_CACHE_SHIFT
1095 default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1096 default "6" if MIPS_CPU_SCACHE
1097 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1100 config HAVE_STD_PC_SERIAL_PORT
1104 bool "ARC console support"
1105 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1109 depends on MACH_JAZZ || SNI_RM || SGI_IP32
1114 depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1123 menu "CPU selection"
1129 config CPU_LOONGSON2E
1131 depends on SYS_HAS_CPU_LOONGSON2E
1132 select CPU_LOONGSON2
1134 The Loongson 2E processor implements the MIPS III instruction set
1135 with many extensions.
1137 It has an internal FPGA northbridge, which is compatiable to
1140 config CPU_LOONGSON2F
1142 depends on SYS_HAS_CPU_LOONGSON2F
1143 select CPU_LOONGSON2
1145 select ARCH_REQUIRE_GPIOLIB
1147 The Loongson 2F processor implements the MIPS III instruction set
1148 with many extensions.
1150 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1151 have a similar programming interface with FPGA northbridge used in
1154 config CPU_MIPS32_R1
1155 bool "MIPS32 Release 1"
1156 depends on SYS_HAS_CPU_MIPS32_R1
1157 select CPU_HAS_PREFETCH
1158 select CPU_SUPPORTS_32BIT_KERNEL
1159 select CPU_SUPPORTS_HIGHMEM
1161 Choose this option to build a kernel for release 1 or later of the
1162 MIPS32 architecture. Most modern embedded systems with a 32-bit
1163 MIPS processor are based on a MIPS32 processor. If you know the
1164 specific type of processor in your system, choose those that one
1165 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1166 Release 2 of the MIPS32 architecture is available since several
1167 years so chances are you even have a MIPS32 Release 2 processor
1168 in which case you should choose CPU_MIPS32_R2 instead for better
1171 config CPU_MIPS32_R2
1172 bool "MIPS32 Release 2"
1173 depends on SYS_HAS_CPU_MIPS32_R2
1174 select CPU_HAS_PREFETCH
1175 select CPU_SUPPORTS_32BIT_KERNEL
1176 select CPU_SUPPORTS_HIGHMEM
1178 Choose this option to build a kernel for release 2 or later of the
1179 MIPS32 architecture. Most modern embedded systems with a 32-bit
1180 MIPS processor are based on a MIPS32 processor. If you know the
1181 specific type of processor in your system, choose those that one
1182 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1184 config CPU_MIPS64_R1
1185 bool "MIPS64 Release 1"
1186 depends on SYS_HAS_CPU_MIPS64_R1
1187 select CPU_HAS_PREFETCH
1188 select CPU_SUPPORTS_32BIT_KERNEL
1189 select CPU_SUPPORTS_64BIT_KERNEL
1190 select CPU_SUPPORTS_HIGHMEM
1191 select CPU_SUPPORTS_HUGEPAGES
1193 Choose this option to build a kernel for release 1 or later of the
1194 MIPS64 architecture. Many modern embedded systems with a 64-bit
1195 MIPS processor are based on a MIPS64 processor. If you know the
1196 specific type of processor in your system, choose those that one
1197 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1198 Release 2 of the MIPS64 architecture is available since several
1199 years so chances are you even have a MIPS64 Release 2 processor
1200 in which case you should choose CPU_MIPS64_R2 instead for better
1203 config CPU_MIPS64_R2
1204 bool "MIPS64 Release 2"
1205 depends on SYS_HAS_CPU_MIPS64_R2
1206 select CPU_HAS_PREFETCH
1207 select CPU_SUPPORTS_32BIT_KERNEL
1208 select CPU_SUPPORTS_64BIT_KERNEL
1209 select CPU_SUPPORTS_HIGHMEM
1210 select CPU_SUPPORTS_HUGEPAGES
1212 Choose this option to build a kernel for release 2 or later of the
1213 MIPS64 architecture. Many modern embedded systems with a 64-bit
1214 MIPS processor are based on a MIPS64 processor. If you know the
1215 specific type of processor in your system, choose those that one
1216 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1220 depends on SYS_HAS_CPU_R3000
1222 select CPU_SUPPORTS_32BIT_KERNEL
1223 select CPU_SUPPORTS_HIGHMEM
1225 Please make sure to pick the right CPU type. Linux/MIPS is not
1226 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1227 *not* work on R4000 machines and vice versa. However, since most
1228 of the supported machines have an R4000 (or similar) CPU, R4x00
1229 might be a safe bet. If the resulting kernel does not work,
1230 try to recompile with R3000.
1234 depends on SYS_HAS_CPU_TX39XX
1235 select CPU_SUPPORTS_32BIT_KERNEL
1239 depends on SYS_HAS_CPU_VR41XX
1240 select CPU_SUPPORTS_32BIT_KERNEL
1241 select CPU_SUPPORTS_64BIT_KERNEL
1243 The options selects support for the NEC VR4100 series of processors.
1244 Only choose this option if you have one of these processors as a
1245 kernel built with this option will not run on any other type of
1246 processor or vice versa.
1250 depends on SYS_HAS_CPU_R4300
1251 select CPU_SUPPORTS_32BIT_KERNEL
1252 select CPU_SUPPORTS_64BIT_KERNEL
1254 MIPS Technologies R4300-series processors.
1258 depends on SYS_HAS_CPU_R4X00
1259 select CPU_SUPPORTS_32BIT_KERNEL
1260 select CPU_SUPPORTS_64BIT_KERNEL
1262 MIPS Technologies R4000-series processors other than 4300, including
1263 the R4000, R4400, R4600, and 4700.
1267 depends on SYS_HAS_CPU_TX49XX
1268 select CPU_HAS_PREFETCH
1269 select CPU_SUPPORTS_32BIT_KERNEL
1270 select CPU_SUPPORTS_64BIT_KERNEL
1274 depends on SYS_HAS_CPU_R5000
1275 select CPU_SUPPORTS_32BIT_KERNEL
1276 select CPU_SUPPORTS_64BIT_KERNEL
1278 MIPS Technologies R5000-series processors other than the Nevada.
1282 depends on SYS_HAS_CPU_R5432
1283 select CPU_SUPPORTS_32BIT_KERNEL
1284 select CPU_SUPPORTS_64BIT_KERNEL
1288 depends on SYS_HAS_CPU_R5500
1289 select CPU_SUPPORTS_32BIT_KERNEL
1290 select CPU_SUPPORTS_64BIT_KERNEL
1291 select CPU_SUPPORTS_HUGEPAGES
1293 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1298 depends on EXPERIMENTAL
1299 depends on SYS_HAS_CPU_R6000
1300 select CPU_SUPPORTS_32BIT_KERNEL
1302 MIPS Technologies R6000 and R6000A series processors. Note these
1303 processors are extremely rare and the support for them is incomplete.
1307 depends on SYS_HAS_CPU_NEVADA
1308 select CPU_SUPPORTS_32BIT_KERNEL
1309 select CPU_SUPPORTS_64BIT_KERNEL
1311 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1315 depends on EXPERIMENTAL
1316 depends on SYS_HAS_CPU_R8000
1317 select CPU_HAS_PREFETCH
1318 select CPU_SUPPORTS_64BIT_KERNEL
1320 MIPS Technologies R8000 processors. Note these processors are
1321 uncommon and the support for them is incomplete.
1325 depends on SYS_HAS_CPU_R10000
1326 select CPU_HAS_PREFETCH
1327 select CPU_SUPPORTS_32BIT_KERNEL
1328 select CPU_SUPPORTS_64BIT_KERNEL
1329 select CPU_SUPPORTS_HIGHMEM
1331 MIPS Technologies R10000-series processors.
1335 depends on SYS_HAS_CPU_RM7000
1336 select CPU_HAS_PREFETCH
1337 select CPU_SUPPORTS_32BIT_KERNEL
1338 select CPU_SUPPORTS_64BIT_KERNEL
1339 select CPU_SUPPORTS_HIGHMEM
1343 depends on SYS_HAS_CPU_RM9000
1344 select CPU_HAS_PREFETCH
1345 select CPU_SUPPORTS_32BIT_KERNEL
1346 select CPU_SUPPORTS_64BIT_KERNEL
1347 select CPU_SUPPORTS_HIGHMEM
1348 select WEAK_ORDERING
1352 depends on SYS_HAS_CPU_SB1
1353 select CPU_SUPPORTS_32BIT_KERNEL
1354 select CPU_SUPPORTS_64BIT_KERNEL
1355 select CPU_SUPPORTS_HIGHMEM
1356 select WEAK_ORDERING
1358 config CPU_CAVIUM_OCTEON
1359 bool "Cavium Octeon processor"
1360 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1362 select IRQ_CPU_OCTEON
1363 select CPU_HAS_PREFETCH
1364 select CPU_SUPPORTS_64BIT_KERNEL
1365 select SYS_SUPPORTS_SMP
1366 select NR_CPUS_DEFAULT_16
1367 select WEAK_ORDERING
1368 select CPU_SUPPORTS_HIGHMEM
1369 select CPU_SUPPORTS_HUGEPAGES
1371 The Cavium Octeon processor is a highly integrated chip containing
1372 many ethernet hardware widgets for networking tasks. The processor
1373 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1374 Full details can be found at http://www.caviumnetworks.com.
1376 config CPU_BMIPS3300
1378 depends on SYS_HAS_CPU_BMIPS3300
1379 select DMA_NONCOHERENT
1381 select SWAP_IO_SPACE
1382 select SYS_SUPPORTS_32BIT_KERNEL
1383 select WEAK_ORDERING
1385 Broadcom BMIPS3300 processors.
1387 config CPU_BMIPS4350
1389 depends on SYS_HAS_CPU_BMIPS4350
1390 select CPU_SUPPORTS_32BIT_KERNEL
1391 select DMA_NONCOHERENT
1393 select SWAP_IO_SPACE
1394 select SYS_SUPPORTS_SMP
1395 select SYS_SUPPORTS_HOTPLUG_CPU
1396 select WEAK_ORDERING
1398 Broadcom BMIPS4350 ("VIPER") processors.
1400 config CPU_BMIPS4380
1402 depends on SYS_HAS_CPU_BMIPS4380
1403 select CPU_SUPPORTS_32BIT_KERNEL
1404 select DMA_NONCOHERENT
1406 select SWAP_IO_SPACE
1407 select SYS_SUPPORTS_SMP
1408 select SYS_SUPPORTS_HOTPLUG_CPU
1409 select WEAK_ORDERING
1411 Broadcom BMIPS4380 processors.
1413 config CPU_BMIPS5000
1415 depends on SYS_HAS_CPU_BMIPS5000
1416 select CPU_SUPPORTS_32BIT_KERNEL
1417 select CPU_SUPPORTS_HIGHMEM
1418 select DMA_NONCOHERENT
1420 select SWAP_IO_SPACE
1421 select SYS_SUPPORTS_SMP
1422 select SYS_SUPPORTS_HOTPLUG_CPU
1423 select WEAK_ORDERING
1425 Broadcom BMIPS5000 processors.
1430 config CPU_NOP_WORKAROUNDS
1433 config CPU_JUMP_WORKAROUNDS
1436 config CPU_LOONGSON2F_WORKAROUNDS
1437 bool "Loongson 2F Workarounds"
1439 select CPU_NOP_WORKAROUNDS
1440 select CPU_JUMP_WORKAROUNDS
1442 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1443 require workarounds. Without workarounds the system may hang
1444 unexpectedly. For more information please refer to the gas
1445 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1447 Loongson 2F03 and later have fixed these issues and no workarounds
1448 are needed. The workarounds have no significant side effect on them
1449 but may decrease the performance of the system so this option should
1450 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1453 If unsure, please say Y.
1454 endif # CPU_LOONGSON2F
1456 config SYS_SUPPORTS_ZBOOT
1458 select HAVE_KERNEL_GZIP
1459 select HAVE_KERNEL_BZIP2
1460 select HAVE_KERNEL_LZMA
1461 select HAVE_KERNEL_LZO
1463 config SYS_SUPPORTS_ZBOOT_UART16550
1465 select SYS_SUPPORTS_ZBOOT
1467 config CPU_LOONGSON2
1469 select CPU_SUPPORTS_32BIT_KERNEL
1470 select CPU_SUPPORTS_64BIT_KERNEL
1471 select CPU_SUPPORTS_HIGHMEM
1473 config SYS_HAS_CPU_LOONGSON2E
1476 config SYS_HAS_CPU_LOONGSON2F
1478 select CPU_SUPPORTS_CPUFREQ
1479 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1480 select CPU_SUPPORTS_UNCACHED_ACCELERATED
1482 config SYS_HAS_CPU_MIPS32_R1
1485 config SYS_HAS_CPU_MIPS32_R2
1488 config SYS_HAS_CPU_MIPS64_R1
1491 config SYS_HAS_CPU_MIPS64_R2
1494 config SYS_HAS_CPU_R3000
1497 config SYS_HAS_CPU_TX39XX
1500 config SYS_HAS_CPU_VR41XX
1503 config SYS_HAS_CPU_R4300
1506 config SYS_HAS_CPU_R4X00
1509 config SYS_HAS_CPU_TX49XX
1512 config SYS_HAS_CPU_R5000
1515 config SYS_HAS_CPU_R5432
1518 config SYS_HAS_CPU_R5500
1521 config SYS_HAS_CPU_R6000
1524 config SYS_HAS_CPU_NEVADA
1527 config SYS_HAS_CPU_R8000
1530 config SYS_HAS_CPU_R10000
1533 config SYS_HAS_CPU_RM7000
1536 config SYS_HAS_CPU_RM9000
1539 config SYS_HAS_CPU_SB1
1542 config SYS_HAS_CPU_CAVIUM_OCTEON
1545 config SYS_HAS_CPU_BMIPS3300
1548 config SYS_HAS_CPU_BMIPS4350
1551 config SYS_HAS_CPU_BMIPS4380
1554 config SYS_HAS_CPU_BMIPS5000
1558 # CPU may reorder R->R, R->W, W->R, W->W
1559 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1561 config WEAK_ORDERING
1565 # CPU may reorder reads and writes beyond LL/SC
1566 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1568 config WEAK_REORDERING_BEYOND_LLSC
1573 # These two indicate any level of the MIPS32 and MIPS64 architecture
1577 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1581 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1584 # These two indicate the revision of the architecture, either Release 1 or Release 2
1588 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1592 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1594 config SYS_SUPPORTS_32BIT_KERNEL
1596 config SYS_SUPPORTS_64BIT_KERNEL
1598 config CPU_SUPPORTS_32BIT_KERNEL
1600 config CPU_SUPPORTS_64BIT_KERNEL
1602 config CPU_SUPPORTS_CPUFREQ
1604 config CPU_SUPPORTS_ADDRWINCFG
1606 config CPU_SUPPORTS_HUGEPAGES
1608 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1610 config MIPS_PGD_C0_CONTEXT
1612 default y if 64BIT && CPU_MIPSR2
1615 # Set to y for ptrace access to watch registers.
1617 config HARDWARE_WATCHPOINTS
1619 default y if CPU_MIPSR1 || CPU_MIPSR2
1625 prompt "Kernel code model"
1627 You should only select this option if you have a workload that
1628 actually benefits from 64-bit processing or if your machine has
1629 large memory. You will only be presented a single option in this
1630 menu if your system does not support both 32-bit and 64-bit kernels.
1633 bool "32-bit kernel"
1634 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1637 Select this option if you want to build a 32-bit kernel.
1639 bool "64-bit kernel"
1640 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1641 select HAVE_SYSCALL_WRAPPERS
1643 Select this option if you want to build a 64-bit kernel.
1648 prompt "Kernel page size"
1649 default PAGE_SIZE_4KB
1651 config PAGE_SIZE_4KB
1653 depends on !CPU_LOONGSON2
1655 This option select the standard 4kB Linux page size. On some
1656 R3000-family processors this is the only available page size. Using
1657 4kB page size will minimize memory consumption and is therefore
1658 recommended for low memory systems.
1660 config PAGE_SIZE_8KB
1662 depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1664 Using 8kB page size will result in higher performance kernel at
1665 the price of higher memory consumption. This option is available
1666 only on R8000 and cnMIPS processors. Note that you will need a
1667 suitable Linux distribution to support this.
1669 config PAGE_SIZE_16KB
1671 depends on !CPU_R3000 && !CPU_TX39XX
1673 Using 16kB page size will result in higher performance kernel at
1674 the price of higher memory consumption. This option is available on
1675 all non-R3000 family processors. Note that you will need a suitable
1676 Linux distribution to support this.
1678 config PAGE_SIZE_32KB
1680 depends on CPU_CAVIUM_OCTEON
1682 Using 32kB page size will result in higher performance kernel at
1683 the price of higher memory consumption. This option is available
1684 only on cnMIPS cores. Note that you will need a suitable Linux
1685 distribution to support this.
1687 config PAGE_SIZE_64KB
1689 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1691 Using 64kB page size will result in higher performance kernel at
1692 the price of higher memory consumption. This option is available on
1693 all non-R3000 family processor. Not that at the time of this
1694 writing this option is still high experimental.
1698 config FORCE_MAX_ZONEORDER
1699 int "Maximum zone order"
1700 range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1701 default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
1702 range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1703 default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
1707 The kernel memory allocator divides physically contiguous memory
1708 blocks into "zones", where each zone is a power of two number of
1709 pages. This option selects the largest power of two that the kernel
1710 keeps in the memory allocator. If you need to allocate very large
1711 blocks of physically contiguous memory, then you may need to
1712 increase this value.
1714 This config option is actually maximum order plus one. For example,
1715 a value of 11 means that the largest free memory block is 2^10 pages.
1717 The page size is not necessarily 4KB. Keep this in mind
1718 when choosing a value for this option.
1723 config IP22_CPU_SCACHE
1728 # Support for a MIPS32 / MIPS64 style S-caches
1730 config MIPS_CPU_SCACHE
1734 config R5000_CPU_SCACHE
1738 config RM7000_CPU_SCACHE
1742 config SIBYTE_DMA_PAGEOPS
1743 bool "Use DMA to clear/copy pages"
1746 Instead of using the CPU to zero and copy pages, use a Data Mover
1747 channel. These DMA channels are otherwise unused by the standard
1748 SiByte Linux port. Seems to give a small performance benefit.
1750 config CPU_HAS_PREFETCH
1754 prompt "MIPS MT options"
1756 config MIPS_MT_DISABLED
1757 bool "Disable multithreading support."
1759 Use this option if your workload can't take advantage of
1760 MIPS hardware multithreading support. On systems that don't have
1761 the option of an MT-enabled processor this option will be the only
1762 option in this menu.
1765 bool "Use 1 TC on each available VPE for SMP"
1766 depends on SYS_SUPPORTS_MULTITHREADING
1767 select CPU_MIPSR2_IRQ_VI
1768 select CPU_MIPSR2_IRQ_EI
1770 select NR_CPUS_DEFAULT_2
1772 select SYS_SUPPORTS_SCHED_SMT if SMP
1773 select SYS_SUPPORTS_SMP
1776 This is a kernel model which is known a VSMP but lately has been
1777 marketesed into SMVP.
1778 Virtual SMP uses the processor's VPEs to implement virtual
1779 processors. In currently available configuration of the 34K processor
1780 this allows for a dual processor. Both processors will share the same
1781 primary caches; each will obtain the half of the TLB for it's own
1782 exclusive use. For a layman this model can be described as similar to
1783 what Intel calls Hyperthreading.
1785 For further information see http://www.linux-mips.org/wiki/34K#VSMP
1788 bool "SMTC: Use all TCs on all VPEs for SMP"
1789 depends on CPU_MIPS32_R2
1790 #depends on CPU_MIPS64_R2 # once there is hardware ...
1791 depends on SYS_SUPPORTS_MULTITHREADING
1792 select CPU_MIPSR2_IRQ_VI
1793 select CPU_MIPSR2_IRQ_EI
1795 select NR_CPUS_DEFAULT_8
1797 select SYS_SUPPORTS_SMP
1800 This is a kernel model which is known a SMTC or lately has been
1801 marketesed into SMVP.
1802 is presenting the available TC's of the core as processors to Linux.
1803 On currently available 34K processors this means a Linux system will
1804 see up to 5 processors. The implementation of the SMTC kernel differs
1805 significantly from VSMP and cannot efficiently coexist in the same
1806 kernel binary so the choice between VSMP and SMTC is a compile time
1809 For further information see http://www.linux-mips.org/wiki/34K#SMTC
1817 bool "SMT (multithreading) scheduler support"
1818 depends on SYS_SUPPORTS_SCHED_SMT
1821 SMT scheduler support improves the CPU scheduler's decision making
1822 when dealing with MIPS MT enabled cores at a cost of slightly
1823 increased overhead in some places. If unsure say N here.
1825 config SYS_SUPPORTS_SCHED_SMT
1829 config SYS_SUPPORTS_MULTITHREADING
1832 config MIPS_MT_FPAFF
1833 bool "Dynamic FPU affinity for FP-intensive threads"
1835 depends on MIPS_MT_SMP || MIPS_MT_SMTC
1837 config MIPS_VPE_LOADER
1838 bool "VPE loader support."
1839 depends on SYS_SUPPORTS_MULTITHREADING
1840 select CPU_MIPSR2_IRQ_VI
1841 select CPU_MIPSR2_IRQ_EI
1844 Includes a loader for loading an elf relocatable object
1845 onto another VPE and running it.
1847 config MIPS_MT_SMTC_IM_BACKSTOP
1848 bool "Use per-TC register bits as backstop for inhibited IM bits"
1849 depends on MIPS_MT_SMTC
1852 To support multiple TC microthreads acting as "CPUs" within
1853 a VPE, VPE-wide interrupt mask bits must be specially manipulated
1854 during interrupt handling. To support legacy drivers and interrupt
1855 controller management code, SMTC has a "backstop" to track and
1856 if necessary restore the interrupt mask. This has some performance
1857 impact on interrupt service overhead.
1859 config MIPS_MT_SMTC_IRQAFF
1860 bool "Support IRQ affinity API"
1861 depends on MIPS_MT_SMTC
1864 Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1865 for SMTC Linux kernel. Requires platform support, of which
1866 an example can be found in the MIPS kernel i8259 and Malta
1867 platform code. Adds some overhead to interrupt dispatch, and
1868 should be used only if you know what you are doing.
1870 config MIPS_VPE_LOADER_TOM
1871 bool "Load VPE program into memory hidden from linux"
1872 depends on MIPS_VPE_LOADER
1875 The loader can use memory that is present but has been hidden from
1876 Linux using the kernel command line option "mem=xxMB". It's up to
1877 you to ensure the amount you put in the option and the space your
1878 program requires is less or equal to the amount physically present.
1880 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1881 config MIPS_VPE_APSP_API
1882 bool "Enable support for AP/SP API (RTLX)"
1883 depends on MIPS_VPE_LOADER
1886 config MIPS_APSP_KSPD
1888 depends on MIPS_VPE_APSP_API
1891 KSPD is a kernel daemon that accepts syscall requests from the SP
1892 side, actions them and returns the results. It also handles the
1893 "exit" syscall notifying other kernel modules the SP program is
1894 exiting. You probably want to say yes here.
1897 bool "MIPS CMP framework support"
1898 depends on SYS_SUPPORTS_MIPS_CMP
1900 select SYS_SUPPORTS_SMP
1901 select SYS_SUPPORTS_SCHED_SMT if SMP
1902 select WEAK_ORDERING
1905 This is a placeholder option for the GCMP work. It will need to
1906 be handled differently...
1908 config SB1_PASS_1_WORKAROUNDS
1910 depends on CPU_SB1_PASS_1
1913 config SB1_PASS_2_WORKAROUNDS
1915 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1918 config SB1_PASS_2_1_WORKAROUNDS
1920 depends on CPU_SB1 && CPU_SB1_PASS_2
1923 config 64BIT_PHYS_ADDR
1926 config ARCH_PHYS_ADDR_T_64BIT
1927 def_bool 64BIT_PHYS_ADDR
1929 config CPU_HAS_SMARTMIPS
1930 depends on SYS_SUPPORTS_SMARTMIPS
1931 bool "Support for the SmartMIPS ASE"
1933 SmartMIPS is a extension of the MIPS32 architecture aimed at
1934 increased security at both hardware and software level for
1935 smartcards. Enabling this option will allow proper use of the
1936 SmartMIPS instructions by Linux applications. However a kernel with
1937 this option will not work on a MIPS core without SmartMIPS core. If
1938 you don't know you probably don't have SmartMIPS and should say N
1945 # Vectored interrupt mode is an R2 feature
1947 config CPU_MIPSR2_IRQ_VI
1951 # Extended interrupt mode is an R2 feature
1953 config CPU_MIPSR2_IRQ_EI
1958 depends on !CPU_R3000
1961 config GENERIC_CLOCKEVENTS_BROADCAST
1967 config CPU_DADDI_WORKAROUNDS
1970 config CPU_R4000_WORKAROUNDS
1972 select CPU_R4400_WORKAROUNDS
1974 config CPU_R4400_WORKAROUNDS
1978 # - Highmem only makes sense for the 32-bit kernel.
1979 # - The current highmem code will only work properly on physically indexed
1980 # caches such as R3000, SB1, R7000 or those that look like they're virtually
1981 # indexed such as R4000/R4400 SC and MC versions or R10000. So for the
1982 # moment we protect the user and offer the highmem option only on machines
1983 # where it's known to be safe. This will not offer highmem on a few systems
1984 # such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1985 # indexed CPUs but we're playing safe.
1986 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1987 # know they might have memory configurations that could make use of highmem
1991 bool "High Memory Support"
1992 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1994 config CPU_SUPPORTS_HIGHMEM
1997 config SYS_SUPPORTS_HIGHMEM
2000 config SYS_SUPPORTS_SMARTMIPS
2003 config ARCH_FLATMEM_ENABLE
2005 depends on !NUMA && !CPU_LOONGSON2
2007 config ARCH_DISCONTIGMEM_ENABLE
2009 default y if SGI_IP27
2011 Say Y to support efficient handling of discontiguous physical memory,
2012 for architectures which are either NUMA (Non-Uniform Memory Access)
2013 or have huge holes in the physical address space for other reasons.
2014 See <file:Documentation/vm/numa> for more.
2016 config ARCH_POPULATES_NODE_MAP
2019 config ARCH_SPARSEMEM_ENABLE
2021 select SPARSEMEM_STATIC
2025 depends on SYS_SUPPORTS_NUMA
2027 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2028 Access). This option improves performance on systems with more
2029 than two nodes; on two node systems it is generally better to
2030 leave it disabled; on single node systems disable this option
2033 config SYS_SUPPORTS_NUMA
2039 depends on NEED_MULTIPLE_NODES
2041 config HW_PERF_EVENTS
2042 bool "Enable hardware performance counter support for perf events"
2043 depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && CPU_MIPS32
2046 Enable hardware performance counter support for perf events. If
2047 disabled, perf events will use software events only.
2052 bool "Multi-Processing support"
2053 depends on SYS_SUPPORTS_SMP
2055 select USE_GENERIC_SMP_HELPERS
2057 This enables support for systems with more than one CPU. If you have
2058 a system with only one CPU, like most personal computers, say N. If
2059 you have a system with more than one CPU, say Y.
2061 If you say N here, the kernel will run on single and multiprocessor
2062 machines, but will use only one CPU of a multiprocessor machine. If
2063 you say Y here, the kernel will run on many, but not all,
2064 singleprocessor machines. On a singleprocessor machine, the kernel
2065 will run faster if you say N here.
2067 People using multiprocessor machines who say Y here should also say
2068 Y to "Enhanced Real Time Clock Support", below.
2070 See also the SMP-HOWTO available at
2071 <http://www.tldp.org/docs.html#howto>.
2073 If you don't know what to do here, say N.
2078 config SYS_SUPPORTS_MIPS_CMP
2081 config SYS_SUPPORTS_SMP
2084 config NR_CPUS_DEFAULT_1
2087 config NR_CPUS_DEFAULT_2
2090 config NR_CPUS_DEFAULT_4
2093 config NR_CPUS_DEFAULT_8
2096 config NR_CPUS_DEFAULT_16
2099 config NR_CPUS_DEFAULT_32
2102 config NR_CPUS_DEFAULT_64
2106 int "Maximum number of CPUs (2-64)"
2107 range 1 64 if NR_CPUS_DEFAULT_1
2109 default "1" if NR_CPUS_DEFAULT_1
2110 default "2" if NR_CPUS_DEFAULT_2
2111 default "4" if NR_CPUS_DEFAULT_4
2112 default "8" if NR_CPUS_DEFAULT_8
2113 default "16" if NR_CPUS_DEFAULT_16
2114 default "32" if NR_CPUS_DEFAULT_32
2115 default "64" if NR_CPUS_DEFAULT_64
2117 This allows you to specify the maximum number of CPUs which this
2118 kernel will support. The maximum supported value is 32 for 32-bit
2119 kernel and 64 for 64-bit kernels; the minimum value which makes
2120 sense is 1 for Qemu (useful only for kernel debugging purposes)
2121 and 2 for all others.
2123 This is purely to save memory - each supported CPU adds
2124 approximately eight kilobytes to the kernel image. For best
2125 performance should round up your number of processors to the next
2128 source "kernel/time/Kconfig"
2131 # Timer Interrupt Frequency Configuration
2135 prompt "Timer frequency"
2138 Allows the configuration of the timer frequency.
2141 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2144 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2147 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2150 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2153 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2156 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2159 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2163 config SYS_SUPPORTS_48HZ
2166 config SYS_SUPPORTS_100HZ
2169 config SYS_SUPPORTS_128HZ
2172 config SYS_SUPPORTS_250HZ
2175 config SYS_SUPPORTS_256HZ
2178 config SYS_SUPPORTS_1000HZ
2181 config SYS_SUPPORTS_1024HZ
2184 config SYS_SUPPORTS_ARBIT_HZ
2186 default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2187 !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2188 !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2189 !SYS_SUPPORTS_1024HZ
2194 default 100 if HZ_100
2195 default 128 if HZ_128
2196 default 250 if HZ_250
2197 default 256 if HZ_256
2198 default 1000 if HZ_1000
2199 default 1024 if HZ_1024
2201 source "kernel/Kconfig.preempt"
2203 config MIPS_INSANE_LARGE
2204 bool "Support for large 64-bit configurations"
2205 depends on CPU_R10000 && 64BIT
2207 MIPS R10000 does support a 44 bit / 16TB address space as opposed to
2208 previous 64-bit processors which only supported 40 bit / 1TB. If you
2209 need processes of more than 1TB virtual address space, say Y here.
2210 This will result in additional memory usage, so it is not
2211 recommended for normal users.
2214 bool "Kexec system call (EXPERIMENTAL)"
2215 depends on EXPERIMENTAL
2217 kexec is a system call that implements the ability to shutdown your
2218 current kernel, and to start another kernel. It is like a reboot
2219 but it is independent of the system firmware. And like a reboot
2220 you can start any kernel with it, not just Linux.
2222 The name comes from the similarity to the exec system call.
2224 It is an ongoing process to be certain the hardware in a machine
2225 is properly shutdown, so do not be surprised if this code does not
2226 initially work for you. It may help to enable device hotplugging
2227 support. As of this writing the exact hardware interface is
2228 strongly in flux, so no good recommendation can be made.
2231 bool "Enable seccomp to safely compute untrusted bytecode"
2235 This kernel feature is useful for number crunching applications
2236 that may need to compute untrusted bytecode during their
2237 execution. By using pipes or other transports made available to
2238 the process as file descriptors supporting the read/write
2239 syscalls, it's possible to isolate those applications in
2240 their own address space using seccomp. Once seccomp is
2241 enabled via /proc/<pid>/seccomp, it cannot be disabled
2242 and the task is only allowed to execute a few safe syscalls
2243 defined by each seccomp mode.
2245 If unsure, say Y. Only embedded should say N here.
2248 bool "Flattened Device Tree support"
2250 select OF_EARLY_FLATTREE
2252 Include support for flattened device tree machine descriptions.
2256 config LOCKDEP_SUPPORT
2260 config STACKTRACE_SUPPORT
2264 source "init/Kconfig"
2266 source "kernel/Kconfig.freezer"
2268 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2276 bool "Support for PCI controller"
2277 depends on HW_HAS_PCI
2280 Find out whether you have a PCI motherboard. PCI is the name of a
2281 bus system, i.e. the way the CPU talks to the other stuff inside
2282 your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2288 source "drivers/pci/Kconfig"
2291 # ISA support is now enabled via select. Too many systems still have the one
2292 # or other ISA chip on the board that users don't know about so don't expect
2293 # users to choose the right thing ...
2300 depends on HW_HAS_EISA
2302 select GENERIC_ISA_DMA
2304 The Extended Industry Standard Architecture (EISA) bus was
2305 developed as an open alternative to the IBM MicroChannel bus.
2307 The EISA bus provided some of the features of the IBM MicroChannel
2308 bus while maintaining backward compatibility with cards made for
2309 the older ISA bus. The EISA bus saw limited use between 1988 and
2310 1995 when it was made obsolete by the PCI bus.
2312 Say Y here if you are building a kernel for an EISA-based machine.
2316 source "drivers/eisa/Kconfig"
2319 bool "TURBOchannel support"
2320 depends on MACH_DECSTATION
2322 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2323 processors. TURBOchannel programming specifications are available
2325 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2327 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2328 Linux driver support status is documented at:
2329 <http://www.linux-mips.org/wiki/DECstation>
2332 # bool "Access.Bus support"
2341 select MIPS_EXTERNAL_TIMER
2346 source "drivers/pcmcia/Kconfig"
2348 source "drivers/pci/hotplug/Kconfig"
2351 bool "RapidIO support"
2355 If you say Y here, the kernel will include drivers and
2356 infrastructure code to support RapidIO interconnect devices.
2358 source "drivers/rapidio/Kconfig"
2362 menu "Executable file formats"
2364 source "fs/Kconfig.binfmt"
2369 config MIPS32_COMPAT
2370 bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2373 Select this option if you want Linux/MIPS 32-bit binary
2374 compatibility. Since all software available for Linux/MIPS is
2375 currently 32-bit you should say Y here.
2379 depends on MIPS32_COMPAT
2382 config SYSVIPC_COMPAT
2384 depends on COMPAT && SYSVIPC
2388 bool "Kernel support for o32 binaries"
2389 depends on MIPS32_COMPAT
2391 Select this option if you want to run o32 binaries. These are pure
2392 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
2393 existing binaries are in this format.
2398 bool "Kernel support for n32 binaries"
2399 depends on MIPS32_COMPAT
2401 Select this option if you want to run n32 binaries. These are
2402 64-bit binaries using 32-bit quantities for addressing and certain
2403 data that would normally be 64-bit. They are used in special
2410 default y if MIPS32_O32 || MIPS32_N32
2414 menu "Power management options"
2416 config ARCH_HIBERNATION_POSSIBLE
2418 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2420 config ARCH_SUSPEND_POSSIBLE
2422 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2424 source "kernel/power/Kconfig"
2428 source "arch/mips/kernel/cpufreq/Kconfig"
2430 source "net/Kconfig"
2432 source "drivers/Kconfig"
2436 source "arch/mips/Kconfig.debug"
2438 source "security/Kconfig"
2440 source "crypto/Kconfig"
2442 menuconfig VIRTUALIZATION
2443 bool "Virtualization"
2446 Say Y here to get to see options for using your Linux host to run other
2447 operating systems inside virtual machines (guests).
2448 This option alone does not add any kernel code.
2450 If you say N, all options in this submenu will be skipped and disabled.
2454 source drivers/virtio/Kconfig
2456 endif # VIRTUALIZATION
2458 source "lib/Kconfig"