4 select HAVE_GENERIC_DMA_COHERENT
8 select HAVE_FUNCTION_TRACER
9 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
10 select HAVE_DYNAMIC_FTRACE
11 select HAVE_FTRACE_MCOUNT_RECORD
12 select HAVE_FUNCTION_GRAPH_TRACER
14 select HAVE_KRETPROBES
15 select RTC_LIB if !MACH_LOONGSON
16 select GENERIC_ATOMIC64 if !64BIT
18 mainmenu "Linux/MIPS Kernel Configuration"
20 menu "Machine selection"
30 bool "Broadcom MIPS based platforms"
31 select SYS_SUPPORTS_LITTLE_ENDIAN
32 select DMA_NONCOHERENT
35 select SYS_SUPPORTS_32BIT_KERNEL
36 select SYS_SUPPORTS_KGDB
37 select SYS_HAS_CPU_MIPS32_R1
38 select SYS_HAS_CPU_MIPS32_R2
39 select ARCH_SELECT_MEMORY_MODEL
40 select ARCH_SPARSEMEM_ENABLE
41 select CPU_SUPPORTS_HIGHMEM
42 select SYS_SUPPORTS_HIGHMEM
43 select SYS_HAS_EARLY_PRINTK
49 bool "Alchemy processor based machines"
50 select 64BIT_PHYS_ADDR
54 select SYS_HAS_CPU_MIPS32_R1
55 select SYS_SUPPORTS_32BIT_KERNEL
56 select SYS_SUPPORTS_APM_EMULATION
58 select ARCH_WANT_OPTIONAL_GPIOLIB
59 select SYS_SUPPORTS_ZBOOT
62 bool "Texas Instruments AR7"
64 select DMA_NONCOHERENT
70 select SYS_HAS_CPU_MIPS32_R1
71 select SYS_HAS_EARLY_PRINTK
72 select SYS_SUPPORTS_32BIT_KERNEL
73 select SYS_SUPPORTS_LITTLE_ENDIAN
74 select SYS_SUPPORTS_ZBOOT_UART16550
75 select ARCH_REQUIRE_GPIOLIB
79 Support for the Texas Instruments AR7 System-on-a-Chip
80 family: TNETD7100, 7200 and 7300.
83 bool "Broadcom BCM47XX based boards"
86 select DMA_NONCOHERENT
89 select SYS_HAS_CPU_MIPS32_R1
90 select SYS_SUPPORTS_32BIT_KERNEL
91 select SYS_SUPPORTS_LITTLE_ENDIAN
93 select SSB_DRIVER_MIPS
94 select SSB_DRIVER_EXTIF
96 select SSB_B43_PCI_BRIDGE if PCI
97 select SSB_PCICORE_HOSTMODE if PCI
99 select SYS_HAS_EARLY_PRINTK
102 Support for BCM47XX based boards
105 bool "Broadcom BCM63XX based boards"
108 select DMA_NONCOHERENT
110 select SYS_HAS_CPU_MIPS32_R1
111 select SYS_SUPPORTS_32BIT_KERNEL
112 select SYS_SUPPORTS_BIG_ENDIAN
113 select SYS_HAS_EARLY_PRINTK
115 select ARCH_REQUIRE_GPIOLIB
117 Support for BCM63XX based boards
124 select DMA_NONCOHERENT
130 select PCI_GT64XXX_PCI0
132 select SYS_HAS_CPU_NEVADA
133 select SYS_HAS_EARLY_PRINTK
134 select SYS_SUPPORTS_32BIT_KERNEL
135 select SYS_SUPPORTS_64BIT_KERNEL
136 select SYS_SUPPORTS_LITTLE_ENDIAN
138 config MACH_DECSTATION
145 select CPU_DADDI_WORKAROUNDS if 64BIT
146 select CPU_R4000_WORKAROUNDS if 64BIT
147 select CPU_R4400_WORKAROUNDS if 64BIT
148 select DMA_NONCOHERENT
151 select SYS_HAS_CPU_R3000
152 select SYS_HAS_CPU_R4X00
153 select SYS_SUPPORTS_32BIT_KERNEL
154 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
155 select SYS_SUPPORTS_LITTLE_ENDIAN
156 select SYS_SUPPORTS_128HZ
157 select SYS_SUPPORTS_256HZ
158 select SYS_SUPPORTS_1024HZ
160 This enables support for DEC's MIPS based workstations. For details
161 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
162 DECstation porting pages on <http://decstation.unix-ag.org/>.
164 If you have one of the following DECstation Models you definitely
165 want to choose R4xx0 for the CPU Type:
172 otherwise choose R3000.
175 bool "Jazz family of machines"
178 select ARCH_MAY_HAVE_PC_FDC
181 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
182 select GENERIC_ISA_DMA
187 select SYS_HAS_CPU_R4X00
188 select SYS_SUPPORTS_32BIT_KERNEL
189 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
190 select SYS_SUPPORTS_100HZ
192 This a family of machines based on the MIPS R4030 chipset which was
193 used by several vendors to build RISC/os and Windows NT workstations.
194 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
195 Olivetti M700-10 workstations.
198 bool "Ingenic JZ4740 based machines"
199 select SYS_HAS_CPU_MIPS32_R1
200 select SYS_SUPPORTS_32BIT_KERNEL
201 select SYS_SUPPORTS_LITTLE_ENDIAN
202 select DMA_NONCOHERENT
205 select ARCH_REQUIRE_GPIOLIB
206 select SYS_HAS_EARLY_PRINTK
211 bool "LASAT Networks platforms"
214 select DMA_NONCOHERENT
215 select SYS_HAS_EARLY_PRINTK
218 select PCI_GT64XXX_PCI0
220 select R5000_CPU_SCACHE
221 select SYS_HAS_CPU_R5000
222 select SYS_SUPPORTS_32BIT_KERNEL
223 select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
224 select SYS_SUPPORTS_LITTLE_ENDIAN
227 bool "Loongson family of machines"
228 select SYS_SUPPORTS_ZBOOT
230 This enables the support of Loongson family of machines.
232 Loongson is a family of general-purpose MIPS-compatible CPUs.
233 developed at Institute of Computing Technology (ICT),
234 Chinese Academy of Sciences (CAS) in the People's Republic
235 of China. The chief architect is Professor Weiwu Hu.
238 bool "MIPS Malta board"
239 select ARCH_MAY_HAVE_PC_FDC
244 select DMA_NONCOHERENT
245 select GENERIC_ISA_DMA
251 select MIPS_BOARDS_GEN
253 select MIPS_CPU_SCACHE
254 select PCI_GT64XXX_PCI0
257 select SYS_HAS_CPU_MIPS32_R1
258 select SYS_HAS_CPU_MIPS32_R2
259 select SYS_HAS_CPU_MIPS64_R1
260 select SYS_HAS_CPU_MIPS64_R2
261 select SYS_HAS_CPU_NEVADA
262 select SYS_HAS_CPU_RM7000
263 select SYS_HAS_EARLY_PRINTK
264 select SYS_SUPPORTS_32BIT_KERNEL
265 select SYS_SUPPORTS_64BIT_KERNEL
266 select SYS_SUPPORTS_BIG_ENDIAN
267 select SYS_SUPPORTS_LITTLE_ENDIAN
268 select SYS_SUPPORTS_MIPS_CMP
269 select SYS_SUPPORTS_MULTITHREADING
270 select SYS_SUPPORTS_HOTPLUG_CPU
271 select SYS_SUPPORTS_SMARTMIPS
272 select SYS_SUPPORTS_MICROMIPS
273 select SYS_SUPPORTS_ZBOOT
275 This enables support for the MIPS Technologies Malta evaluation
279 bool "MIPS SEAD3 board"
284 select DMA_NONCOHERENT
287 select MIPS_BOARDS_GEN
288 select MIPS_CPU_SCACHE
290 select SYS_HAS_CPU_MIPS32_R1
291 select SYS_HAS_CPU_MIPS32_R2
292 select SYS_HAS_CPU_MIPS64_R1
293 select SYS_HAS_EARLY_PRINTK
294 select SYS_SUPPORTS_32BIT_KERNEL
295 select SYS_SUPPORTS_64BIT_KERNEL
296 select SYS_SUPPORTS_BIG_ENDIAN
297 select SYS_SUPPORTS_LITTLE_ENDIAN
298 select SYS_SUPPORTS_MULTITHREADING
299 select SYS_SUPPORTS_SMARTMIPS
300 select SYS_SUPPORTS_MICROMIPS
302 This enables support for the MIPS Technologies SEAD3 evaluation
306 bool 'MIPS simulator (MIPSsim)'
309 select DMA_NONCOHERENT
310 select SYS_HAS_EARLY_PRINTK
313 select SYS_HAS_CPU_MIPS32_R1
314 select SYS_HAS_CPU_MIPS32_R2
315 select SYS_HAS_EARLY_PRINTK
316 select SYS_SUPPORTS_32BIT_KERNEL
317 select SYS_SUPPORTS_BIG_ENDIAN
318 select SYS_SUPPORTS_MULTITHREADING
319 select SYS_SUPPORTS_LITTLE_ENDIAN
321 This option enables support for MIPS Technologies MIPSsim software
325 bool "NEC EMMA2RH Mark-eins board"
329 This enables support for the NEC Electronics Mark-eins boards.
332 bool "NEC VR4100 series based machines"
335 select SYS_HAS_CPU_VR41XX
336 select ARCH_REQUIRE_GPIOLIB
339 bool "NXP STB220 board"
342 Support for NXP Semiconductors STB220 Development Board.
349 Support for NXP Semiconductors STB225 Development Board.
352 bool "NXP PNX8550 based JBS board"
354 select SYS_SUPPORTS_LITTLE_ENDIAN
356 config PNX8550_STB810
357 bool "NXP PNX8550 based STB810 board"
359 select SYS_SUPPORTS_LITTLE_ENDIAN
362 bool "PMC-Sierra MSP chipsets"
363 depends on EXPERIMENTAL
364 select DMA_NONCOHERENT
366 select NO_EXCEPT_FILL
368 select SYS_HAS_CPU_MIPS32_R1
369 select SYS_HAS_CPU_MIPS32_R2
370 select SYS_SUPPORTS_32BIT_KERNEL
371 select SYS_SUPPORTS_BIG_ENDIAN
374 select SERIAL_8250_CONSOLE
376 This adds support for the PMC-Sierra family of Multi-Service
377 Processor System-On-A-Chips. These parts include a number
378 of integrated peripherals, interfaces and DSPs in addition to
379 a variety of MIPS cores.
382 bool "PMC-Sierra Yosemite eval board"
391 select SYS_HAS_CPU_RM9000
392 select SYS_HAS_EARLY_PRINTK
393 select SYS_SUPPORTS_32BIT_KERNEL
394 select SYS_SUPPORTS_64BIT_KERNEL
395 select SYS_SUPPORTS_BIG_ENDIAN
396 select SYS_SUPPORTS_HIGHMEM
397 select SYS_SUPPORTS_SMP
399 Yosemite is an evaluation board for the RM9000x2 processor
400 manufactured by PMC-Sierra.
406 select CPU_MIPSR2_IRQ_VI
407 select CPU_MIPSR2_IRQ_EI
409 select DMA_NONCOHERENT
411 select SYS_HAS_EARLY_PRINTK
412 select SYS_HAS_CPU_MIPS32_R2
413 select SYS_SUPPORTS_32BIT_KERNEL
414 select SYS_SUPPORTS_BIG_ENDIAN
415 select SYS_SUPPORTS_HIGHMEM
416 select USB_OHCI_LITTLE_ENDIAN
418 This enables support for the Cisco PowerTV Platform.
421 bool "SGI IP22 (Indy/Indigo2)"
427 select DEFAULT_SGI_PARTITION
428 select DMA_NONCOHERENT
432 select IP22_CPU_SCACHE
434 select GENERIC_ISA_DMA_SUPPORT_BROKEN
436 select SGI_HAS_INDYDOG
442 select SYS_HAS_CPU_R4X00
443 select SYS_HAS_CPU_R5000
445 # Disable EARLY_PRINTK for now since it leads to overwritten prom
446 # memory during early boot on some machines.
448 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
449 # for a more details discussion
451 # select SYS_HAS_EARLY_PRINTK
452 select SYS_SUPPORTS_32BIT_KERNEL
453 select SYS_SUPPORTS_64BIT_KERNEL
454 select SYS_SUPPORTS_BIG_ENDIAN
456 This are the SGI Indy, Challenge S and Indigo2, as well as certain
457 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
458 that runs on these, say Y here.
461 bool "SGI IP27 (Origin200/2000)"
465 select DEFAULT_SGI_PARTITION
467 select SYS_HAS_EARLY_PRINTK
469 select NR_CPUS_DEFAULT_64
470 select SYS_HAS_CPU_R10000
471 select SYS_SUPPORTS_64BIT_KERNEL
472 select SYS_SUPPORTS_BIG_ENDIAN
473 select SYS_SUPPORTS_NUMA
474 select SYS_SUPPORTS_SMP
476 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
477 workstations. To compile a Linux kernel that runs on these, say Y
481 bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
482 depends on EXPERIMENTAL
488 select DEFAULT_SGI_PARTITION
489 select DMA_NONCOHERENT
490 select GENERIC_ISA_DMA_SUPPORT_BROKEN
496 select SGI_HAS_INDYDOG
502 select SYS_HAS_CPU_R10000
504 # Disable EARLY_PRINTK for now since it leads to overwritten prom
505 # memory during early boot on some machines.
507 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
508 # for a more details discussion
510 # select SYS_HAS_EARLY_PRINTK
511 select SYS_SUPPORTS_64BIT_KERNEL
512 select SYS_SUPPORTS_BIG_ENDIAN
514 This is the SGI Indigo2 with R10000 processor. To compile a Linux
515 kernel that runs on these, say Y here.
524 select DMA_NONCOHERENT
527 select R5000_CPU_SCACHE
528 select RM7000_CPU_SCACHE
529 select SYS_HAS_CPU_R5000
530 select SYS_HAS_CPU_R10000 if BROKEN
531 select SYS_HAS_CPU_RM7000
532 select SYS_HAS_CPU_NEVADA
533 select SYS_SUPPORTS_64BIT_KERNEL
534 select SYS_SUPPORTS_BIG_ENDIAN
536 If you want this kernel to run on SGI O2 workstation, say Y here.
539 bool "Sibyte BCM91120C-CRhine"
540 depends on EXPERIMENTAL
543 select SIBYTE_BCM1120
545 select SYS_HAS_CPU_SB1
546 select SYS_SUPPORTS_BIG_ENDIAN
547 select SYS_SUPPORTS_LITTLE_ENDIAN
550 bool "Sibyte BCM91120x-Carmel"
551 depends on EXPERIMENTAL
554 select SIBYTE_BCM1120
556 select SYS_HAS_CPU_SB1
557 select SYS_SUPPORTS_BIG_ENDIAN
558 select SYS_SUPPORTS_LITTLE_ENDIAN
561 bool "Sibyte BCM91125C-CRhone"
562 depends on EXPERIMENTAL
565 select SIBYTE_BCM1125
567 select SYS_HAS_CPU_SB1
568 select SYS_SUPPORTS_BIG_ENDIAN
569 select SYS_SUPPORTS_HIGHMEM
570 select SYS_SUPPORTS_LITTLE_ENDIAN
573 bool "Sibyte BCM91125E-Rhone"
574 depends on EXPERIMENTAL
577 select SIBYTE_BCM1125H
579 select SYS_HAS_CPU_SB1
580 select SYS_SUPPORTS_BIG_ENDIAN
581 select SYS_SUPPORTS_LITTLE_ENDIAN
584 bool "Sibyte BCM91250A-SWARM"
587 select HAVE_PATA_PLATFORM
588 select NR_CPUS_DEFAULT_2
591 select SYS_HAS_CPU_SB1
592 select SYS_SUPPORTS_BIG_ENDIAN
593 select SYS_SUPPORTS_HIGHMEM
594 select SYS_SUPPORTS_LITTLE_ENDIAN
595 select ZONE_DMA32 if 64BIT
597 config SIBYTE_LITTLESUR
598 bool "Sibyte BCM91250C2-LittleSur"
599 depends on EXPERIMENTAL
602 select HAVE_PATA_PLATFORM
603 select NR_CPUS_DEFAULT_2
606 select SYS_HAS_CPU_SB1
607 select SYS_SUPPORTS_BIG_ENDIAN
608 select SYS_SUPPORTS_HIGHMEM
609 select SYS_SUPPORTS_LITTLE_ENDIAN
611 config SIBYTE_SENTOSA
612 bool "Sibyte BCM91250E-Sentosa"
613 depends on EXPERIMENTAL
616 select NR_CPUS_DEFAULT_2
619 select SYS_HAS_CPU_SB1
620 select SYS_SUPPORTS_BIG_ENDIAN
621 select SYS_SUPPORTS_LITTLE_ENDIAN
624 bool "Sibyte BCM91480B-BigSur"
627 select NR_CPUS_DEFAULT_4
628 select SIBYTE_BCM1x80
630 select SYS_HAS_CPU_SB1
631 select SYS_SUPPORTS_BIG_ENDIAN
632 select SYS_SUPPORTS_HIGHMEM
633 select SYS_SUPPORTS_LITTLE_ENDIAN
634 select ZONE_DMA32 if 64BIT
637 bool "SNI RM200/300/400"
638 select ARC if CPU_LITTLE_ENDIAN
639 select ARC32 if CPU_LITTLE_ENDIAN
640 select SNIPROM if CPU_BIG_ENDIAN
641 select ARCH_MAY_HAVE_PC_FDC
645 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
646 select DMA_NONCOHERENT
647 select GENERIC_ISA_DMA
654 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
655 select SYS_HAS_CPU_R4X00
656 select SYS_HAS_CPU_R5000
657 select SYS_HAS_CPU_R10000
658 select R5000_CPU_SCACHE
659 select SYS_HAS_EARLY_PRINTK
660 select SYS_SUPPORTS_32BIT_KERNEL
661 select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
662 select SYS_SUPPORTS_BIG_ENDIAN
663 select SYS_SUPPORTS_HIGHMEM
664 select SYS_SUPPORTS_LITTLE_ENDIAN
666 The SNI RM200/300/400 are MIPS-based machines manufactured by
667 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
668 Technology and now in turn merged with Fujitsu. Say Y here to
669 support this machine type.
672 bool "Toshiba TX39 series based machines"
675 bool "Toshiba TX49 series based machines"
677 config MIKROTIK_RB532
678 bool "Mikrotik RB532 boards"
681 select DMA_NONCOHERENT
684 select SYS_HAS_CPU_MIPS32_R1
685 select SYS_SUPPORTS_32BIT_KERNEL
686 select SYS_SUPPORTS_LITTLE_ENDIAN
689 select ARCH_REQUIRE_GPIOLIB
691 Support the Mikrotik(tm) RouterBoard 532 series,
692 based on the IDT RC32434 SoC.
695 bool "Wind River PPMC board"
700 select DMA_NONCOHERENT
702 select PCI_GT64XXX_PCI0
704 select SYS_HAS_CPU_MIPS32_R1
705 select SYS_HAS_CPU_MIPS32_R2
706 select SYS_HAS_CPU_MIPS64_R1
707 select SYS_HAS_CPU_NEVADA
708 select SYS_HAS_CPU_RM7000
709 select SYS_SUPPORTS_32BIT_KERNEL
710 select SYS_SUPPORTS_64BIT_KERNEL
711 select SYS_SUPPORTS_BIG_ENDIAN
712 select SYS_SUPPORTS_LITTLE_ENDIAN
714 This enables support for the Wind River MIPS32 4KC PPMC evaluation
715 board, which is based on GT64120 bridge chip.
717 config CAVIUM_OCTEON_SIMULATOR
718 bool "Cavium Networks Octeon Simulator"
720 select 64BIT_PHYS_ADDR
722 select SYS_SUPPORTS_64BIT_KERNEL
723 select SYS_SUPPORTS_BIG_ENDIAN
724 select SYS_SUPPORTS_HIGHMEM
725 select SYS_SUPPORTS_HOTPLUG_CPU
726 select SYS_HAS_CPU_CAVIUM_OCTEON
728 The Octeon simulator is software performance model of the Cavium
729 Octeon Processor. It supports simulating Octeon processors on x86
732 config CAVIUM_OCTEON_REFERENCE_BOARD
733 bool "Cavium Networks Octeon reference board"
735 select 64BIT_PHYS_ADDR
737 select SYS_SUPPORTS_64BIT_KERNEL
738 select SYS_SUPPORTS_BIG_ENDIAN
739 select SYS_SUPPORTS_HIGHMEM
740 select SYS_SUPPORTS_HOTPLUG_CPU
741 select SYS_HAS_EARLY_PRINTK
742 select SYS_HAS_CPU_CAVIUM_OCTEON
745 select ARCH_SUPPORTS_MSI
747 This option supports all of the Octeon reference boards from Cavium
748 Networks. It builds a kernel that dynamically determines the Octeon
749 CPU type and supports all known board reference implementations.
750 Some of the supported boards are:
757 Say Y here for most Octeon reference boards.
761 source "arch/mips/brcm-boards/Kconfig"
762 source "arch/mips/alchemy/Kconfig"
763 source "arch/mips/bcm63xx/Kconfig"
764 source "arch/mips/jazz/Kconfig"
765 source "arch/mips/jz4740/Kconfig"
766 source "arch/mips/lasat/Kconfig"
767 source "arch/mips/pmc-sierra/Kconfig"
768 source "arch/mips/powertv/Kconfig"
769 source "arch/mips/sgi-ip27/Kconfig"
770 source "arch/mips/sibyte/Kconfig"
771 source "arch/mips/txx9/Kconfig"
772 source "arch/mips/vr41xx/Kconfig"
773 source "arch/mips/cavium-octeon/Kconfig"
774 source "arch/mips/loongson/Kconfig"
778 config RWSEM_GENERIC_SPINLOCK
782 config RWSEM_XCHGADD_ALGORITHM
785 config ARCH_HAS_ILOG2_U32
789 config ARCH_HAS_ILOG2_U64
793 config ARCH_SUPPORTS_OPROFILE
795 default y if !MIPS_MT_SMTC
797 config GENERIC_FIND_NEXT_BIT
801 config GENERIC_HWEIGHT
805 config GENERIC_CALIBRATE_DELAY
809 config GENERIC_CLOCKEVENTS
813 config GENERIC_CMOS_UPDATE
817 config SCHED_OMIT_FRAME_POINTER
821 # config GENERIC_HARDIRQS_NO__DO_IRQ
826 # Select some configuration options automatically based on user selections.
831 config ARCH_MAY_HAVE_PC_FDC
880 select ARCH_REQUIRE_GPIOLIB
889 config DMA_NONCOHERENT
891 select NEED_DMA_MAP_STATE
893 config NEED_DMA_MAP_STATE
896 config SYS_HAS_EARLY_PRINTK
900 bool "Support for hot-pluggable CPUs"
901 depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
903 Say Y here to allow turning CPUs off and on. CPUs can be
904 controlled through /sys/devices/system/cpu.
905 (Note: power management support will enable this option
906 automatically on SMP systems. )
907 Say N if you want to disable CPU hotplug.
909 config SYS_SUPPORTS_HOTPLUG_CPU
924 config MIPS_DISABLE_OBSOLETE_IDE
933 config GENERIC_ISA_DMA
935 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
938 config GENERIC_ISA_DMA_SUPPORT_BROKEN
940 select GENERIC_ISA_DMA
949 # Endianess selection. Sufficiently obscure so many users don't know what to
950 # answer,so we try hard to limit the available choices. Also the use of a
951 # choice statement should be more obvious to the user.
954 prompt "Endianess selection"
956 Some MIPS machines can be configured for either little or big endian
957 byte order. These modes require different kernels and a different
958 Linux distribution. In general there is one preferred byteorder for a
959 particular system but some systems are just as commonly used in the
960 one or the other endianness.
962 config CPU_BIG_ENDIAN
964 depends on SYS_SUPPORTS_BIG_ENDIAN
966 config CPU_LITTLE_ENDIAN
968 depends on SYS_SUPPORTS_LITTLE_ENDIAN
976 config SYS_SUPPORTS_APM_EMULATION
979 config SYS_SUPPORTS_BIG_ENDIAN
982 config SYS_SUPPORTS_LITTLE_ENDIAN
985 config SYS_SUPPORTS_HUGETLBFS
987 depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1014 config IRQ_CPU_OCTEON
1017 config MIPS_BOARDS_GEN
1020 config PCI_GT64XXX_PCI0
1023 config NO_EXCEPT_FILL
1028 select SERIAL_RM9000
1034 select DMA_NONCOHERENT
1036 select SWAP_IO_SPACE
1037 select SYS_HAS_CPU_R5500
1038 select SYS_SUPPORTS_32BIT_KERNEL
1039 select SYS_SUPPORTS_64BIT_KERNEL
1040 select SYS_SUPPORTS_BIG_ENDIAN
1047 select DMA_NONCOHERENT
1048 select SYS_HAS_CPU_MIPS32_R2
1049 select SYS_SUPPORTS_32BIT_KERNEL
1050 select SYS_SUPPORTS_LITTLE_ENDIAN
1051 select SYS_SUPPORTS_BIG_ENDIAN
1053 select CPU_MIPSR2_IRQ_VI
1065 select DMA_NONCOHERENT
1067 select SYS_HAS_CPU_MIPS32_R1
1068 select SYS_HAS_EARLY_PRINTK
1069 select SYS_SUPPORTS_32BIT_KERNEL
1072 config SWAP_IO_SPACE
1075 config SERIAL_RM9000
1078 config SGI_HAS_INDYDOG
1090 config SGI_HAS_ZILOG
1093 config SGI_HAS_I8042
1096 config DEFAULT_SGI_PARTITION
1108 config MIPS_L1_CACHE_SHIFT
1110 default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
1111 default "6" if MIPS_CPU_SCACHE
1112 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1115 config HAVE_STD_PC_SERIAL_PORT
1119 bool "ARC console support"
1120 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1124 depends on MACH_JAZZ || SNI_RM || SGI_IP32
1129 depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1138 menu "CPU selection"
1144 config CPU_LOONGSON2E
1146 depends on SYS_HAS_CPU_LOONGSON2E
1147 select CPU_LOONGSON2
1149 The Loongson 2E processor implements the MIPS III instruction set
1150 with many extensions.
1152 It has an internal FPGA northbridge, which is compatiable to
1155 config CPU_LOONGSON2F
1157 depends on SYS_HAS_CPU_LOONGSON2F
1158 select CPU_LOONGSON2
1160 select ARCH_REQUIRE_GPIOLIB
1162 The Loongson 2F processor implements the MIPS III instruction set
1163 with many extensions.
1165 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1166 have a similar programming interface with FPGA northbridge used in
1169 config CPU_MIPS32_R1
1170 bool "MIPS32 Release 1"
1171 depends on SYS_HAS_CPU_MIPS32_R1
1172 select CPU_HAS_PREFETCH
1173 select CPU_SUPPORTS_32BIT_KERNEL
1174 select CPU_SUPPORTS_HIGHMEM
1176 Choose this option to build a kernel for release 1 or later of the
1177 MIPS32 architecture. Most modern embedded systems with a 32-bit
1178 MIPS processor are based on a MIPS32 processor. If you know the
1179 specific type of processor in your system, choose those that one
1180 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1181 Release 2 of the MIPS32 architecture is available since several
1182 years so chances are you even have a MIPS32 Release 2 processor
1183 in which case you should choose CPU_MIPS32_R2 instead for better
1186 config CPU_MIPS32_R2
1187 bool "MIPS32 Release 2"
1188 depends on SYS_HAS_CPU_MIPS32_R2
1189 select CPU_HAS_PREFETCH
1190 select CPU_SUPPORTS_32BIT_KERNEL
1191 select CPU_SUPPORTS_HIGHMEM
1193 Choose this option to build a kernel for release 2 or later of the
1194 MIPS32 architecture. Most modern embedded systems with a 32-bit
1195 MIPS processor are based on a MIPS32 processor. If you know the
1196 specific type of processor in your system, choose those that one
1197 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1199 config CPU_MIPS64_R1
1200 bool "MIPS64 Release 1"
1201 depends on SYS_HAS_CPU_MIPS64_R1
1202 select CPU_HAS_PREFETCH
1203 select CPU_SUPPORTS_32BIT_KERNEL
1204 select CPU_SUPPORTS_64BIT_KERNEL
1205 select CPU_SUPPORTS_HIGHMEM
1206 select CPU_SUPPORTS_HUGEPAGES
1208 Choose this option to build a kernel for release 1 or later of the
1209 MIPS64 architecture. Many modern embedded systems with a 64-bit
1210 MIPS processor are based on a MIPS64 processor. If you know the
1211 specific type of processor in your system, choose those that one
1212 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1213 Release 2 of the MIPS64 architecture is available since several
1214 years so chances are you even have a MIPS64 Release 2 processor
1215 in which case you should choose CPU_MIPS64_R2 instead for better
1218 config CPU_MIPS64_R2
1219 bool "MIPS64 Release 2"
1220 depends on SYS_HAS_CPU_MIPS64_R2
1221 select CPU_HAS_PREFETCH
1222 select CPU_SUPPORTS_32BIT_KERNEL
1223 select CPU_SUPPORTS_64BIT_KERNEL
1224 select CPU_SUPPORTS_HIGHMEM
1225 select CPU_SUPPORTS_HUGEPAGES
1227 Choose this option to build a kernel for release 2 or later of the
1228 MIPS64 architecture. Many modern embedded systems with a 64-bit
1229 MIPS processor are based on a MIPS64 processor. If you know the
1230 specific type of processor in your system, choose those that one
1231 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1235 depends on SYS_HAS_CPU_R3000
1237 select CPU_SUPPORTS_32BIT_KERNEL
1238 select CPU_SUPPORTS_HIGHMEM
1240 Please make sure to pick the right CPU type. Linux/MIPS is not
1241 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1242 *not* work on R4000 machines and vice versa. However, since most
1243 of the supported machines have an R4000 (or similar) CPU, R4x00
1244 might be a safe bet. If the resulting kernel does not work,
1245 try to recompile with R3000.
1249 depends on SYS_HAS_CPU_TX39XX
1250 select CPU_SUPPORTS_32BIT_KERNEL
1254 depends on SYS_HAS_CPU_VR41XX
1255 select CPU_SUPPORTS_32BIT_KERNEL
1256 select CPU_SUPPORTS_64BIT_KERNEL
1258 The options selects support for the NEC VR4100 series of processors.
1259 Only choose this option if you have one of these processors as a
1260 kernel built with this option will not run on any other type of
1261 processor or vice versa.
1265 depends on SYS_HAS_CPU_R4300
1266 select CPU_SUPPORTS_32BIT_KERNEL
1267 select CPU_SUPPORTS_64BIT_KERNEL
1269 MIPS Technologies R4300-series processors.
1273 depends on SYS_HAS_CPU_R4X00
1274 select CPU_SUPPORTS_32BIT_KERNEL
1275 select CPU_SUPPORTS_64BIT_KERNEL
1277 MIPS Technologies R4000-series processors other than 4300, including
1278 the R4000, R4400, R4600, and 4700.
1282 depends on SYS_HAS_CPU_TX49XX
1283 select CPU_HAS_PREFETCH
1284 select CPU_SUPPORTS_32BIT_KERNEL
1285 select CPU_SUPPORTS_64BIT_KERNEL
1289 depends on SYS_HAS_CPU_R5000
1290 select CPU_SUPPORTS_32BIT_KERNEL
1291 select CPU_SUPPORTS_64BIT_KERNEL
1293 MIPS Technologies R5000-series processors other than the Nevada.
1297 depends on SYS_HAS_CPU_R5432
1298 select CPU_SUPPORTS_32BIT_KERNEL
1299 select CPU_SUPPORTS_64BIT_KERNEL
1303 depends on SYS_HAS_CPU_R5500
1304 select CPU_SUPPORTS_32BIT_KERNEL
1305 select CPU_SUPPORTS_64BIT_KERNEL
1306 select CPU_SUPPORTS_HUGEPAGES
1308 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1313 depends on EXPERIMENTAL
1314 depends on SYS_HAS_CPU_R6000
1315 select CPU_SUPPORTS_32BIT_KERNEL
1317 MIPS Technologies R6000 and R6000A series processors. Note these
1318 processors are extremely rare and the support for them is incomplete.
1322 depends on SYS_HAS_CPU_NEVADA
1323 select CPU_SUPPORTS_32BIT_KERNEL
1324 select CPU_SUPPORTS_64BIT_KERNEL
1326 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1330 depends on EXPERIMENTAL
1331 depends on SYS_HAS_CPU_R8000
1332 select CPU_HAS_PREFETCH
1333 select CPU_SUPPORTS_64BIT_KERNEL
1335 MIPS Technologies R8000 processors. Note these processors are
1336 uncommon and the support for them is incomplete.
1340 depends on SYS_HAS_CPU_R10000
1341 select CPU_HAS_PREFETCH
1342 select CPU_SUPPORTS_32BIT_KERNEL
1343 select CPU_SUPPORTS_64BIT_KERNEL
1344 select CPU_SUPPORTS_HIGHMEM
1346 MIPS Technologies R10000-series processors.
1350 depends on SYS_HAS_CPU_RM7000
1351 select CPU_HAS_PREFETCH
1352 select CPU_SUPPORTS_32BIT_KERNEL
1353 select CPU_SUPPORTS_64BIT_KERNEL
1354 select CPU_SUPPORTS_HIGHMEM
1358 depends on SYS_HAS_CPU_RM9000
1359 select CPU_HAS_PREFETCH
1360 select CPU_SUPPORTS_32BIT_KERNEL
1361 select CPU_SUPPORTS_64BIT_KERNEL
1362 select CPU_SUPPORTS_HIGHMEM
1363 select WEAK_ORDERING
1367 depends on SYS_HAS_CPU_SB1
1368 select CPU_SUPPORTS_32BIT_KERNEL
1369 select CPU_SUPPORTS_64BIT_KERNEL
1370 select CPU_SUPPORTS_HIGHMEM
1371 select WEAK_ORDERING
1373 config CPU_CAVIUM_OCTEON
1374 bool "Cavium Octeon processor"
1375 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1377 select IRQ_CPU_OCTEON
1378 select CPU_HAS_PREFETCH
1379 select CPU_SUPPORTS_64BIT_KERNEL
1380 select SYS_SUPPORTS_SMP
1381 select NR_CPUS_DEFAULT_16
1382 select WEAK_ORDERING
1383 select CPU_SUPPORTS_HIGHMEM
1384 select CPU_SUPPORTS_HUGEPAGES
1386 The Cavium Octeon processor is a highly integrated chip containing
1387 many ethernet hardware widgets for networking tasks. The processor
1388 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1389 Full details can be found at http://www.caviumnetworks.com.
1394 config CPU_NOP_WORKAROUNDS
1397 config CPU_JUMP_WORKAROUNDS
1400 config CPU_LOONGSON2F_WORKAROUNDS
1401 bool "Loongson 2F Workarounds"
1403 select CPU_NOP_WORKAROUNDS
1404 select CPU_JUMP_WORKAROUNDS
1406 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1407 require workarounds. Without workarounds the system may hang
1408 unexpectedly. For more information please refer to the gas
1409 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1411 Loongson 2F03 and later have fixed these issues and no workarounds
1412 are needed. The workarounds have no significant side effect on them
1413 but may decrease the performance of the system so this option should
1414 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1417 If unsure, please say Y.
1418 endif # CPU_LOONGSON2F
1420 config SYS_SUPPORTS_ZBOOT
1422 select HAVE_KERNEL_GZIP
1423 select HAVE_KERNEL_BZIP2
1424 select HAVE_KERNEL_LZMA
1425 select HAVE_KERNEL_LZO
1427 config SYS_SUPPORTS_ZBOOT_UART16550
1429 select SYS_SUPPORTS_ZBOOT
1431 config CPU_LOONGSON2
1433 select CPU_SUPPORTS_32BIT_KERNEL
1434 select CPU_SUPPORTS_64BIT_KERNEL
1435 select CPU_SUPPORTS_HIGHMEM
1437 config SYS_HAS_CPU_LOONGSON2E
1440 config SYS_HAS_CPU_LOONGSON2F
1442 select CPU_SUPPORTS_CPUFREQ
1443 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1444 select CPU_SUPPORTS_UNCACHED_ACCELERATED
1446 config SYS_HAS_CPU_MIPS32_R1
1449 config SYS_HAS_CPU_MIPS32_R2
1452 config SYS_HAS_CPU_MIPS64_R1
1455 config SYS_HAS_CPU_MIPS64_R2
1458 config SYS_HAS_CPU_R3000
1461 config SYS_HAS_CPU_TX39XX
1464 config SYS_HAS_CPU_VR41XX
1467 config SYS_HAS_CPU_R4300
1470 config SYS_HAS_CPU_R4X00
1473 config SYS_HAS_CPU_TX49XX
1476 config SYS_HAS_CPU_R5000
1479 config SYS_HAS_CPU_R5432
1482 config SYS_HAS_CPU_R5500
1485 config SYS_HAS_CPU_R6000
1488 config SYS_HAS_CPU_NEVADA
1491 config SYS_HAS_CPU_R8000
1494 config SYS_HAS_CPU_R10000
1497 config SYS_HAS_CPU_RM7000
1500 config SYS_HAS_CPU_RM9000
1503 config SYS_HAS_CPU_SB1
1506 config SYS_HAS_CPU_CAVIUM_OCTEON
1510 # CPU may reorder R->R, R->W, W->R, W->W
1511 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1513 config WEAK_ORDERING
1517 # CPU may reorder reads and writes beyond LL/SC
1518 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1520 config WEAK_REORDERING_BEYOND_LLSC
1525 # These two indicate any level of the MIPS32 and MIPS64 architecture
1529 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1533 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1536 # These two indicate the revision of the architecture, either Release 1 or Release 2
1540 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1544 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1546 config SYS_SUPPORTS_32BIT_KERNEL
1548 config SYS_SUPPORTS_64BIT_KERNEL
1550 config CPU_SUPPORTS_32BIT_KERNEL
1552 config CPU_SUPPORTS_64BIT_KERNEL
1554 config CPU_SUPPORTS_CPUFREQ
1556 config CPU_SUPPORTS_ADDRWINCFG
1558 config CPU_SUPPORTS_HUGEPAGES
1560 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1562 config MIPS_PGD_C0_CONTEXT
1564 default y if 64BIT && CPU_MIPSR2
1567 # Set to y for ptrace access to watch registers.
1569 config HARDWARE_WATCHPOINTS
1571 default y if CPU_MIPSR1 || CPU_MIPSR2
1576 prompt "Kernel code model"
1578 You should only select this option if you have a workload that
1579 actually benefits from 64-bit processing or if your machine has
1580 large memory. You will only be presented a single option in this
1581 menu if your system does not support both 32-bit and 64-bit kernels.
1584 bool "32-bit kernel"
1585 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1588 Select this option if you want to build a 32-bit kernel.
1590 bool "64-bit kernel"
1591 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1592 select HAVE_SYSCALL_WRAPPERS
1594 Select this option if you want to build a 64-bit kernel.
1598 config 64BIT_PHYS_ADDR
1599 bool "Kernel supports 64 bit physical addresses" if EXPERIMENTAL
1602 Defines 64 bit physical addresses in kernel.
1603 Increases page table sizes.
1605 It is an alternative for HIGHMEM usage of huge physical memory.
1606 Requires 64bit capable CPU and 64 bit kernel code model.
1608 Note: without this option kernel can support up to 4GB physical
1609 memory for 4KB pages and up to 64GB for 64KB pages.
1611 config ARCH_PHYS_ADDR_T_64BIT
1612 def_bool 64BIT_PHYS_ADDR
1615 prompt "Kernel page size"
1616 default PAGE_SIZE_4KB
1618 config PAGE_SIZE_4KB
1620 depends on !CPU_LOONGSON2
1622 This option select the standard 4kB Linux page size. On some
1623 R3000-family processors this is the only available page size. Using
1624 4kB page size will minimize memory consumption and is therefore
1625 recommended for low memory systems.
1627 config PAGE_SIZE_8KB
1629 depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1631 Using 8kB page size will result in higher performance kernel at
1632 the price of higher memory consumption. This option is available
1633 only on R8000 and cnMIPS processors. Note that you will need a
1634 suitable Linux distribution to support this.
1636 config PAGE_SIZE_16KB
1638 depends on !CPU_R3000 && !CPU_TX39XX
1640 Using 16kB page size will result in higher performance kernel at
1641 the price of higher memory consumption. This option is available on
1642 all non-R3000 family processors. Note that you will need a suitable
1643 Linux distribution to support this.
1645 config PAGE_SIZE_32KB
1647 depends on CPU_CAVIUM_OCTEON
1649 Using 32kB page size will result in higher performance kernel at
1650 the price of higher memory consumption. This option is available
1651 only on cnMIPS cores. Note that you will need a suitable Linux
1652 distribution to support this.
1654 config PAGE_SIZE_64KB
1656 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
1658 Using 64kB page size will result in higher performance kernel at
1659 the price of higher memory consumption. This option is available on
1660 all non-R3000 family processor. Not that at the time of this
1661 writing this option is still high experimental.
1666 prompt "Clock source"
1667 depends on MIPS_MALTA || MIPS_SEAD3
1671 bool "R4K count/compare counter"
1672 depends on !HOTPLUG_CPU
1674 Use the R4K count/compare counter for the kernel clock source.
1677 bool "GIC global counter"
1679 Use the GIC global counter for the kernel clock source.
1686 config IP22_CPU_SCACHE
1691 # Support for a MIPS32 / MIPS64 style S-caches
1693 config MIPS_CPU_SCACHE
1697 config R5000_CPU_SCACHE
1701 config RM7000_CPU_SCACHE
1705 config SIBYTE_DMA_PAGEOPS
1706 bool "Use DMA to clear/copy pages"
1709 Instead of using the CPU to zero and copy pages, use a Data Mover
1710 channel. These DMA channels are otherwise unused by the standard
1711 SiByte Linux port. Seems to give a small performance benefit.
1713 config CPU_HAS_PREFETCH
1717 prompt "MIPS MT options"
1719 config MIPS_MT_DISABLED
1720 bool "Disable multithreading support."
1722 Use this option if your workload can't take advantage of
1723 MIPS hardware multithreading support. On systems that don't have
1724 the option of an MT-enabled processor this option will be the only
1725 option in this menu.
1728 bool "Use 1 TC on each available VPE for SMP"
1729 depends on SYS_SUPPORTS_MULTITHREADING && !MIPS_SEAD3
1730 select CPU_MIPSR2_IRQ_VI
1731 select CPU_MIPSR2_IRQ_EI
1733 select NR_CPUS_DEFAULT_2
1735 select SYS_SUPPORTS_SCHED_SMT if SMP
1736 select SYS_SUPPORTS_SMP
1739 Virtual SMP uses the processor's VPEs to implement virtual
1740 processors. In currently available configurations of the 34K
1741 processor this allows for a dual processor. Both processors will
1742 share the same primary caches and each will obtain the half of
1743 the TLB for its own exclusive use. For a layman this model can
1744 be described as similar to what Intel calls Hyperthreading. At
1745 some point MIPS marketing decided to renamed to SMVP but the
1746 renaming hasn't caught on as of yet.
1748 For further information see http://www.linux-mips.org/wiki/34K#VSMP
1751 bool "SMTC: Use all TCs on all VPEs for SMP"
1752 depends on CPU_MIPS32_R2
1753 #depends on CPU_MIPS64_R2 # once there is hardware ...
1754 depends on SYS_SUPPORTS_MULTITHREADING
1755 select CPU_MIPSR2_IRQ_VI
1756 select CPU_MIPSR2_IRQ_EI
1758 select NR_CPUS_DEFAULT_8
1760 select SYS_SUPPORTS_SMP
1763 SMTC is presenting the available TCs of the core as processors to
1764 Linux. On currently available 34K processors this means a Linux
1765 system will see up to 5 processors. The implementation of the SMTC
1766 kernel differs significantly from VSMP. It was found that SMTC cannot
1767 efficiently coexist in the same kernel binary with other modes of
1768 multiprocessor support, so enabling SMTC is a compile time decision.
1769 The choice between VSMP and SMTC is a bit delicate as it is affected
1770 by clockspeed, memory speed, the specific workload and other factors.
1771 As such the choice should not be made on an evaluation board such as
1772 the Malta but preferably on final target hardware.
1774 For further information see http://www.linux-mips.org/wiki/34K#SMTC
1782 bool "SMT (multithreading) scheduler support"
1783 depends on SYS_SUPPORTS_SCHED_SMT
1786 SMT scheduler support improves the CPU scheduler's decision making
1787 when dealing with MIPS MT enabled cores at a cost of slightly
1788 increased overhead in some places. If unsure say N here.
1790 config SYS_SUPPORTS_SCHED_SMT
1793 config SYS_SUPPORTS_MULTITHREADING
1796 config MIPS_MT_FPAFF
1797 bool "Dynamic FPU affinity for FP-intensive threads"
1799 depends on MIPS_MT_SMP || MIPS_MT_SMTC
1801 config MIPS_VPE_LOADER
1802 bool "VPE loader support."
1803 depends on SYS_SUPPORTS_MULTITHREADING
1804 select CPU_MIPSR2_IRQ_VI
1805 select CPU_MIPSR2_IRQ_EI
1808 Includes a loader for loading an elf relocatable object
1809 onto another VPE and running it.
1811 config MIPS_MT_SMTC_IM_BACKSTOP
1812 bool "Use per-TC register bits as backstop for inhibited IM bits"
1813 depends on MIPS_MT_SMTC
1816 To support multiple TC microthreads acting as "CPUs" within
1817 a VPE, VPE-wide interrupt mask bits must be specially manipulated
1818 during interrupt handling. To support legacy drivers and interrupt
1819 controller management code, SMTC has a "backstop" to track and
1820 if necessary restore the interrupt mask. This has some performance
1821 impact on interrupt service overhead.
1823 config MIPS_MT_SMTC_IRQAFF
1824 bool "Support IRQ affinity API"
1825 depends on MIPS_MT_SMTC
1828 Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1829 for SMTC Linux kernel. Requires platform support, of which
1830 an example can be found in the MIPS kernel i8259 and Malta
1831 platform code. Adds some overhead to interrupt dispatch, and
1832 should be used only if you know what you are doing.
1834 config MIPS_VPE_LOADER_TOM
1835 bool "Load VPE program into memory hidden from linux"
1836 depends on MIPS_VPE_LOADER
1839 The loader can use memory that is present but has been hidden from
1840 Linux using the kernel command line option "mem=xxMB". It's up to
1841 you to ensure the amount you put in the option and the space your
1842 program requires is less or equal to the amount physically present.
1844 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1845 config MIPS_VPE_APSP_API
1846 bool "Enable support for AP/SP API (RTLX)"
1847 depends on MIPS_VPE_LOADER
1850 config MIPS_APSP_KSPD
1852 depends on MIPS_VPE_APSP_API
1855 KSPD is a kernel daemon that accepts syscall requests from the SP
1856 side, actions them and returns the results. It also handles the
1857 "exit" syscall notifying other kernel modules the SP program is
1858 exiting. You probably want to say yes here.
1861 bool "MIPS CMP framework support"
1862 depends on SYS_SUPPORTS_MIPS_CMP
1863 select CSRC_GIC if HOTPLUG_CPU
1864 select SYS_SUPPORTS_SMP
1865 select SYS_SUPPORTS_SCHED_SMT if SMP
1866 select WEAK_ORDERING
1869 This is a placeholder option for the GCMP work. It will need to
1870 be handled differently...
1872 config SB1_PASS_1_WORKAROUNDS
1874 depends on CPU_SB1_PASS_1
1877 config SB1_PASS_2_WORKAROUNDS
1879 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1882 config SB1_PASS_2_1_WORKAROUNDS
1884 depends on CPU_SB1 && CPU_SB1_PASS_2
1887 config CPU_HAS_SMARTMIPS
1888 depends on SYS_SUPPORTS_SMARTMIPS
1889 bool "Support for the SmartMIPS ASE"
1891 SmartMIPS is a extension of the MIPS32 architecture aimed at
1892 increased security at both hardware and software level for
1893 smartcards. Enabling this option will allow proper use of the
1894 SmartMIPS instructions by Linux applications. However a kernel with
1895 this option will not work on a MIPS core without SmartMIPS core. If
1896 you don't know you probably don't have SmartMIPS and should say N
1899 config CPU_MICROMIPS
1900 depends on SYS_SUPPORTS_MICROMIPS
1901 bool "Build kernel using microMIPS ISA"
1903 When this option is enabled the kernel will be built using the
1910 # Vectored interrupt mode is an R2 feature
1912 config CPU_MIPSR2_IRQ_VI
1916 # Extended interrupt mode is an R2 feature
1918 config CPU_MIPSR2_IRQ_EI
1923 depends on !CPU_R3000
1926 config GENERIC_CLOCKEVENTS_BROADCAST
1932 config CPU_DADDI_WORKAROUNDS
1935 config CPU_R4000_WORKAROUNDS
1937 select CPU_R4400_WORKAROUNDS
1939 config CPU_R4400_WORKAROUNDS
1943 # Use the generic interrupt handling code in kernel/irq/:
1945 config GENERIC_HARDIRQS
1949 config GENERIC_IRQ_PROBE
1957 # - Highmem only makes sense for the 32-bit kernel.
1958 # - The current highmem code will only work properly on physically indexed
1959 # caches such as R3000, SB1, R7000 or those that look like they're virtually
1960 # indexed such as R4000/R4400 SC and MC versions or R10000. So for the
1961 # moment we protect the user and offer the highmem option only on machines
1962 # where it's known to be safe. This will not offer highmem on a few systems
1963 # such as MIPS32 and MIPS64 CPUs which may have virtual and physically
1964 # indexed CPUs but we're playing safe.
1965 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
1966 # know they might have memory configurations that could make use of highmem
1970 bool "High Memory Support"
1971 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
1973 config CPU_SUPPORTS_HIGHMEM
1976 config SYS_SUPPORTS_HIGHMEM
1979 config SYS_SUPPORTS_SMARTMIPS
1982 config SYS_SUPPORTS_MICROMIPS
1985 config ARCH_FLATMEM_ENABLE
1987 depends on !NUMA && !CPU_LOONGSON2
1989 config ARCH_DISCONTIGMEM_ENABLE
1991 default y if SGI_IP27
1993 Say Y to support efficient handling of discontiguous physical memory,
1994 for architectures which are either NUMA (Non-Uniform Memory Access)
1995 or have huge holes in the physical address space for other reasons.
1996 See <file:Documentation/vm/numa> for more.
1998 config ARCH_POPULATES_NODE_MAP
2001 config ARCH_SPARSEMEM_ENABLE
2003 select SPARSEMEM_STATIC
2007 depends on SYS_SUPPORTS_NUMA
2009 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2010 Access). This option improves performance on systems with more
2011 than two nodes; on two node systems it is generally better to
2012 leave it disabled; on single node systems disable this option
2015 config SYS_SUPPORTS_NUMA
2021 depends on NEED_MULTIPLE_NODES
2026 bool "Multi-Processing support"
2027 depends on SYS_SUPPORTS_SMP
2029 select USE_GENERIC_SMP_HELPERS
2031 This enables support for systems with more than one CPU. If you have
2032 a system with only one CPU, like most personal computers, say N. If
2033 you have a system with more than one CPU, say Y.
2035 If you say N here, the kernel will run on single and multiprocessor
2036 machines, but will use only one CPU of a multiprocessor machine. If
2037 you say Y here, the kernel will run on many, but not all,
2038 singleprocessor machines. On a singleprocessor machine, the kernel
2039 will run faster if you say N here.
2041 People using multiprocessor machines who say Y here should also say
2042 Y to "Enhanced Real Time Clock Support", below.
2044 See also the SMP-HOWTO available at
2045 <http://www.tldp.org/docs.html#howto>.
2047 If you don't know what to do here, say N.
2052 config SYS_SUPPORTS_MIPS_CMP
2055 config SYS_SUPPORTS_SMP
2058 config NR_CPUS_DEFAULT_1
2061 config NR_CPUS_DEFAULT_2
2064 config NR_CPUS_DEFAULT_4
2067 config NR_CPUS_DEFAULT_8
2070 config NR_CPUS_DEFAULT_16
2073 config NR_CPUS_DEFAULT_32
2076 config NR_CPUS_DEFAULT_64
2080 int "Maximum number of CPUs (2-64)"
2081 range 1 64 if NR_CPUS_DEFAULT_1
2083 default "1" if NR_CPUS_DEFAULT_1
2084 default "2" if NR_CPUS_DEFAULT_2
2085 default "4" if NR_CPUS_DEFAULT_4
2086 default "8" if NR_CPUS_DEFAULT_8
2087 default "16" if NR_CPUS_DEFAULT_16
2088 default "32" if NR_CPUS_DEFAULT_32
2089 default "64" if NR_CPUS_DEFAULT_64
2091 This allows you to specify the maximum number of CPUs which this
2092 kernel will support. The maximum supported value is 32 for 32-bit
2093 kernel and 64 for 64-bit kernels; the minimum value which makes
2094 sense is 1 for Qemu (useful only for kernel debugging purposes)
2095 and 2 for all others.
2097 This is purely to save memory - each supported CPU adds
2098 approximately eight kilobytes to the kernel image. For best
2099 performance should round up your number of processors to the next
2102 source "kernel/time/Kconfig"
2105 # Timer Interrupt Frequency Configuration
2109 prompt "Timer frequency"
2112 Allows the configuration of the timer frequency.
2115 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2118 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2121 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2124 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2127 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2130 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2133 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2137 config SYS_SUPPORTS_48HZ
2140 config SYS_SUPPORTS_100HZ
2143 config SYS_SUPPORTS_128HZ
2146 config SYS_SUPPORTS_250HZ
2149 config SYS_SUPPORTS_256HZ
2152 config SYS_SUPPORTS_1000HZ
2155 config SYS_SUPPORTS_1024HZ
2158 config SYS_SUPPORTS_ARBIT_HZ
2160 default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2161 !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2162 !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2163 !SYS_SUPPORTS_1024HZ
2168 default 100 if HZ_100
2169 default 128 if HZ_128
2170 default 250 if HZ_250
2171 default 256 if HZ_256
2172 default 1000 if HZ_1000
2173 default 1024 if HZ_1024
2175 source "kernel/Kconfig.preempt"
2178 bool "Kexec system call (EXPERIMENTAL)"
2179 depends on EXPERIMENTAL
2181 kexec is a system call that implements the ability to shutdown your
2182 current kernel, and to start another kernel. It is like a reboot
2183 but it is independent of the system firmware. And like a reboot
2184 you can start any kernel with it, not just Linux.
2186 The name comes from the similarity to the exec system call.
2188 It is an ongoing process to be certain the hardware in a machine
2189 is properly shutdown, so do not be surprised if this code does not
2190 initially work for you. It may help to enable device hotplugging
2191 support. As of this writing the exact hardware interface is
2192 strongly in flux, so no good recommendation can be made.
2195 bool "Enable seccomp to safely compute untrusted bytecode"
2199 This kernel feature is useful for number crunching applications
2200 that may need to compute untrusted bytecode during their
2201 execution. By using pipes or other transports made available to
2202 the process as file descriptors supporting the read/write
2203 syscalls, it's possible to isolate those applications in
2204 their own address space using seccomp. Once seccomp is
2205 enabled via /proc/<pid>/seccomp, it cannot be disabled
2206 and the task is only allowed to execute a few safe syscalls
2207 defined by each seccomp mode.
2209 If unsure, say Y. Only embedded should say N here.
2213 config LOCKDEP_SUPPORT
2217 config STACKTRACE_SUPPORT
2221 source "init/Kconfig"
2223 source "kernel/Kconfig.freezer"
2225 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2233 bool "Support for PCI controller"
2234 depends on HW_HAS_PCI
2237 Find out whether you have a PCI motherboard. PCI is the name of a
2238 bus system, i.e. the way the CPU talks to the other stuff inside
2239 your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2245 source "drivers/pci/Kconfig"
2248 # ISA support is now enabled via select. Too many systems still have the one
2249 # or other ISA chip on the board that users don't know about so don't expect
2250 # users to choose the right thing ...
2257 depends on HW_HAS_EISA
2259 select GENERIC_ISA_DMA
2261 The Extended Industry Standard Architecture (EISA) bus was
2262 developed as an open alternative to the IBM MicroChannel bus.
2264 The EISA bus provided some of the features of the IBM MicroChannel
2265 bus while maintaining backward compatibility with cards made for
2266 the older ISA bus. The EISA bus saw limited use between 1988 and
2267 1995 when it was made obsolete by the PCI bus.
2269 Say Y here if you are building a kernel for an EISA-based machine.
2273 source "drivers/eisa/Kconfig"
2276 bool "TURBOchannel support"
2277 depends on MACH_DECSTATION
2279 TurboChannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2280 processors. Documentation on writing device drivers for TurboChannel
2282 <http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3HD-TET1_html/TITLE.html>.
2285 # bool "Access.Bus support"
2294 select MIPS_EXTERNAL_TIMER
2299 source "drivers/pcmcia/Kconfig"
2301 source "drivers/pci/hotplug/Kconfig"
2305 menu "Executable file formats"
2307 source "fs/Kconfig.binfmt"
2312 config MIPS32_COMPAT
2313 bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2315 default y if CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2317 Select this option if you want Linux/MIPS 32-bit binary
2318 compatibility. Since all software available for Linux/MIPS is
2319 currently 32-bit you should say Y here.
2323 depends on MIPS32_COMPAT
2326 config SYSVIPC_COMPAT
2328 depends on COMPAT && SYSVIPC
2332 bool "Kernel support for o32 binaries"
2333 depends on MIPS32_COMPAT
2334 default y if CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2336 Select this option if you want to run o32 binaries. These are pure
2337 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
2338 existing binaries are in this format.
2343 bool "Kernel support for n32 binaries"
2344 depends on MIPS32_COMPAT
2346 Select this option if you want to run n32 binaries. These are
2347 64-bit binaries using 32-bit quantities for addressing and certain
2348 data that would normally be 64-bit. They are used in special
2353 comment "64bit kernel, but support of 32bit applications is disabled!"
2354 depends on 64BIT && !MIPS32_O32 && !MIPS32_N32
2355 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2359 default y if MIPS32_O32 || MIPS32_N32
2363 menu "Power management options"
2365 config ARCH_HIBERNATION_POSSIBLE
2367 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2369 config ARCH_SUSPEND_POSSIBLE
2371 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2373 source "kernel/power/Kconfig"
2377 source "arch/mips/kernel/cpufreq/Kconfig"
2379 source "net/Kconfig"
2381 source "drivers/Kconfig"
2385 source "arch/mips/Kconfig.debug"
2387 source "security/Kconfig"
2389 source "crypto/Kconfig"
2391 source "lib/Kconfig"