4 select HAVE_CONTEXT_TRACKING
5 select HAVE_GENERIC_DMA_COHERENT
8 select HAVE_PERF_EVENTS
9 select PERF_USE_VMALLOC
11 select HAVE_ARCH_TRACEHOOK
12 select ARCH_HAVE_CUSTOM_GPIO_H
13 select HAVE_FUNCTION_TRACER
14 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
15 select HAVE_DYNAMIC_FTRACE
16 select HAVE_FTRACE_MCOUNT_RECORD
17 select HAVE_C_RECORDMCOUNT
18 select HAVE_FUNCTION_GRAPH_TRACER
20 select HAVE_KRETPROBES
21 select HAVE_DEBUG_KMEMLEAK
22 select HAVE_SYSCALL_TRACEPOINTS
23 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
24 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
25 select RTC_LIB if !MACH_LOONGSON
26 select GENERIC_ATOMIC64 if !64BIT
27 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
29 select HAVE_DMA_API_DEBUG
30 select GENERIC_IRQ_PROBE
31 select GENERIC_IRQ_SHOW
32 select GENERIC_PCI_IOMAP
33 select HAVE_ARCH_JUMP_LABEL
34 select ARCH_WANT_IPC_PARSE_VERSION
35 select IRQ_FORCED_THREADING
37 select HAVE_MEMBLOCK_NODE_MAP
38 select ARCH_DISCARD_MEMBLOCK
39 select GENERIC_SMP_IDLE_THREAD
40 select BUILDTIME_EXTABLE_SORT
41 select GENERIC_CLOCKEVENTS
42 select GENERIC_CMOS_UPDATE
43 select HAVE_MOD_ARCH_SPECIFIC
45 select MODULES_USE_ELF_REL if MODULES
46 select MODULES_USE_ELF_RELA if MODULES && 64BIT
47 select CLONE_BACKWARDS
48 select HAVE_DEBUG_STACKOVERFLOW
50 menu "Machine selection"
57 bool "Alchemy processor based machines"
58 select 64BIT_PHYS_ADDR
62 select SYS_HAS_CPU_MIPS32_R1
63 select SYS_SUPPORTS_32BIT_KERNEL
64 select SYS_SUPPORTS_APM_EMULATION
65 select ARCH_REQUIRE_GPIOLIB
66 select SYS_SUPPORTS_ZBOOT
67 select USB_ARCH_HAS_OHCI
68 select USB_ARCH_HAS_EHCI
71 bool "Texas Instruments AR7"
73 select DMA_NONCOHERENT
79 select SYS_HAS_CPU_MIPS32_R1
80 select SYS_HAS_EARLY_PRINTK
81 select SYS_SUPPORTS_32BIT_KERNEL
82 select SYS_SUPPORTS_LITTLE_ENDIAN
83 select SYS_SUPPORTS_ZBOOT_UART16550
84 select ARCH_REQUIRE_GPIOLIB
88 Support for the Texas Instruments AR7 System-on-a-Chip
89 family: TNETD7100, 7200 and 7300.
92 bool "Atheros AR71XX/AR724X/AR913X based boards"
93 select ARCH_REQUIRE_GPIOLIB
97 select DMA_NONCOHERENT
102 select SYS_HAS_CPU_MIPS32_R2
103 select SYS_HAS_EARLY_PRINTK
104 select SYS_SUPPORTS_32BIT_KERNEL
105 select SYS_SUPPORTS_BIG_ENDIAN
107 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
110 bool "Broadcom BCM47XX based boards"
111 select ARCH_WANT_OPTIONAL_GPIOLIB
115 select DMA_NONCOHERENT
119 select SYS_HAS_CPU_MIPS32_R1
120 select NO_EXCEPT_FILL
121 select SYS_SUPPORTS_32BIT_KERNEL
122 select SYS_SUPPORTS_LITTLE_ENDIAN
123 select SYS_HAS_EARLY_PRINTK
125 Support for BCM47XX based boards
128 bool "Broadcom BCM63XX based boards"
132 select DMA_NONCOHERENT
134 select SYS_HAS_CPU_MIPS32_R1
135 select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348
136 select SYS_SUPPORTS_32BIT_KERNEL
137 select SYS_SUPPORTS_BIG_ENDIAN
138 select SYS_HAS_EARLY_PRINTK
140 select ARCH_REQUIRE_GPIOLIB
143 Support for BCM63XX based boards
150 select DMA_NONCOHERENT
151 select EARLY_PRINTK_8250 if EARLY_PRINTK
157 select PCI_GT64XXX_PCI0
159 select SYS_HAS_CPU_NEVADA
160 select SYS_HAS_EARLY_PRINTK
161 select SYS_SUPPORTS_32BIT_KERNEL
162 select SYS_SUPPORTS_64BIT_KERNEL
163 select SYS_SUPPORTS_LITTLE_ENDIAN
165 config MACH_DECSTATION
172 select CPU_DADDI_WORKAROUNDS if 64BIT
173 select CPU_R4000_WORKAROUNDS if 64BIT
174 select CPU_R4400_WORKAROUNDS if 64BIT
175 select DMA_NONCOHERENT
178 select SYS_HAS_CPU_R3000
179 select SYS_HAS_CPU_R4X00
180 select SYS_SUPPORTS_32BIT_KERNEL
181 select SYS_SUPPORTS_64BIT_KERNEL
182 select SYS_SUPPORTS_LITTLE_ENDIAN
183 select SYS_SUPPORTS_128HZ
184 select SYS_SUPPORTS_256HZ
185 select SYS_SUPPORTS_1024HZ
187 This enables support for DEC's MIPS based workstations. For details
188 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
189 DECstation porting pages on <http://decstation.unix-ag.org/>.
191 If you have one of the following DECstation Models you definitely
192 want to choose R4xx0 for the CPU Type:
199 otherwise choose R3000.
202 bool "Jazz family of machines"
205 select ARCH_MAY_HAVE_PC_FDC
208 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
209 select GENERIC_ISA_DMA
210 select HAVE_PCSPKR_PLATFORM
215 select SYS_HAS_CPU_R4X00
216 select SYS_SUPPORTS_32BIT_KERNEL
217 select SYS_SUPPORTS_64BIT_KERNEL
218 select SYS_SUPPORTS_100HZ
220 This a family of machines based on the MIPS R4030 chipset which was
221 used by several vendors to build RISC/os and Windows NT workstations.
222 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
223 Olivetti M700-10 workstations.
226 bool "Ingenic JZ4740 based machines"
227 select SYS_HAS_CPU_MIPS32_R1
228 select SYS_SUPPORTS_32BIT_KERNEL
229 select SYS_SUPPORTS_LITTLE_ENDIAN
230 select SYS_SUPPORTS_ZBOOT_UART16550
231 select DMA_NONCOHERENT
233 select ARCH_REQUIRE_GPIOLIB
234 select SYS_HAS_EARLY_PRINTK
237 select GENERIC_IRQ_CHIP
240 bool "Lantiq based platforms"
241 select DMA_NONCOHERENT
245 select SYS_HAS_CPU_MIPS32_R1
246 select SYS_HAS_CPU_MIPS32_R2
247 select SYS_SUPPORTS_BIG_ENDIAN
248 select SYS_SUPPORTS_32BIT_KERNEL
249 select SYS_SUPPORTS_MULTITHREADING
250 select SYS_HAS_EARLY_PRINTK
251 select ARCH_REQUIRE_GPIOLIB
254 select HAVE_MACH_CLKDEV
258 select PINCTRL_LANTIQ
261 bool "LASAT Networks platforms"
264 select DMA_NONCOHERENT
265 select SYS_HAS_EARLY_PRINTK
268 select PCI_GT64XXX_PCI0
270 select R5000_CPU_SCACHE
271 select SYS_HAS_CPU_R5000
272 select SYS_SUPPORTS_32BIT_KERNEL
273 select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
274 select SYS_SUPPORTS_LITTLE_ENDIAN
277 bool "Loongson family of machines"
278 select SYS_SUPPORTS_ZBOOT
280 This enables the support of Loongson family of machines.
282 Loongson is a family of general-purpose MIPS-compatible CPUs.
283 developed at Institute of Computing Technology (ICT),
284 Chinese Academy of Sciences (CAS) in the People's Republic
285 of China. The chief architect is Professor Weiwu Hu.
287 config MACH_LOONGSON1
288 bool "Loongson 1 family of machines"
289 select SYS_SUPPORTS_ZBOOT
291 This enables support for the Loongson 1 based machines.
293 Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
294 the ICT (Institute of Computing Technology) and the Chinese Academy
298 bool "MIPS Malta board"
299 select ARCH_MAY_HAVE_PC_FDC
305 select DMA_NONCOHERENT
306 select GENERIC_ISA_DMA
307 select HAVE_PCSPKR_PLATFORM
314 select MIPS_CPU_SCACHE
315 select PCI_GT64XXX_PCI0
318 select SYS_HAS_CPU_MIPS32_R1
319 select SYS_HAS_CPU_MIPS32_R2
320 select SYS_HAS_CPU_MIPS64_R1
321 select SYS_HAS_CPU_MIPS64_R2
322 select SYS_HAS_CPU_NEVADA
323 select SYS_HAS_CPU_RM7000
324 select SYS_HAS_EARLY_PRINTK
325 select SYS_SUPPORTS_32BIT_KERNEL
326 select SYS_SUPPORTS_64BIT_KERNEL
327 select SYS_SUPPORTS_BIG_ENDIAN
328 select SYS_SUPPORTS_LITTLE_ENDIAN
329 select SYS_SUPPORTS_MIPS_CMP
330 select SYS_SUPPORTS_MULTITHREADING
331 select SYS_SUPPORTS_SMARTMIPS
332 select SYS_SUPPORTS_ZBOOT
334 This enables support for the MIPS Technologies Malta evaluation
338 bool "MIPS SEAD3 board"
344 select CPU_MIPSR2_IRQ_VI
345 select CPU_MIPSR2_IRQ_EI
346 select DMA_NONCOHERENT
350 select SYS_HAS_CPU_MIPS32_R1
351 select SYS_HAS_CPU_MIPS32_R2
352 select SYS_HAS_CPU_MIPS64_R1
353 select SYS_HAS_EARLY_PRINTK
354 select SYS_SUPPORTS_32BIT_KERNEL
355 select SYS_SUPPORTS_64BIT_KERNEL
356 select SYS_SUPPORTS_BIG_ENDIAN
357 select SYS_SUPPORTS_LITTLE_ENDIAN
358 select SYS_SUPPORTS_SMARTMIPS
359 select SYS_SUPPORTS_MICROMIPS
360 select USB_ARCH_HAS_EHCI
361 select USB_EHCI_BIG_ENDIAN_DESC
362 select USB_EHCI_BIG_ENDIAN_MMIO
365 This enables support for the MIPS Technologies SEAD3 evaluation
369 bool "NEC EMMA2RH Mark-eins board"
373 This enables support for the NEC Electronics Mark-eins boards.
376 bool "NEC VR4100 series based machines"
379 select SYS_HAS_CPU_VR41XX
380 select ARCH_REQUIRE_GPIOLIB
383 bool "NXP STB220 board"
386 Support for NXP Semiconductors STB220 Development Board.
393 Support for NXP Semiconductors STB225 Development Board.
396 bool "PMC-Sierra MSP chipsets"
399 select DMA_NONCOHERENT
401 select NO_EXCEPT_FILL
403 select SYS_HAS_CPU_MIPS32_R1
404 select SYS_HAS_CPU_MIPS32_R2
405 select SYS_SUPPORTS_32BIT_KERNEL
406 select SYS_SUPPORTS_BIG_ENDIAN
409 select SERIAL_8250_CONSOLE
410 select USB_EHCI_BIG_ENDIAN_MMIO
411 select USB_EHCI_BIG_ENDIAN_DESC
413 This adds support for the PMC-Sierra family of Multi-Service
414 Processor System-On-A-Chips. These parts include a number
415 of integrated peripherals, interfaces and DSPs in addition to
416 a variety of MIPS cores.
419 bool "Ralink based machines"
423 select DMA_NONCOHERENT
426 select SYS_HAS_CPU_MIPS32_R1
427 select SYS_HAS_CPU_MIPS32_R2
428 select SYS_SUPPORTS_32BIT_KERNEL
429 select SYS_SUPPORTS_LITTLE_ENDIAN
430 select SYS_HAS_EARLY_PRINTK
431 select HAVE_MACH_CLKDEV
433 select ARCH_HAS_RESET_CONTROLLER
434 select RESET_CONTROLLER
437 bool "SGI IP22 (Indy/Indigo2)"
443 select DEFAULT_SGI_PARTITION
444 select DMA_NONCOHERENT
448 select IP22_CPU_SCACHE
450 select GENERIC_ISA_DMA_SUPPORT_BROKEN
452 select SGI_HAS_INDYDOG
458 select SYS_HAS_CPU_R4X00
459 select SYS_HAS_CPU_R5000
461 # Disable EARLY_PRINTK for now since it leads to overwritten prom
462 # memory during early boot on some machines.
464 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
465 # for a more details discussion
467 # select SYS_HAS_EARLY_PRINTK
468 select SYS_SUPPORTS_32BIT_KERNEL
469 select SYS_SUPPORTS_64BIT_KERNEL
470 select SYS_SUPPORTS_BIG_ENDIAN
472 This are the SGI Indy, Challenge S and Indigo2, as well as certain
473 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
474 that runs on these, say Y here.
477 bool "SGI IP27 (Origin200/2000)"
481 select DEFAULT_SGI_PARTITION
483 select SYS_HAS_EARLY_PRINTK
485 select NR_CPUS_DEFAULT_64
486 select SYS_HAS_CPU_R10000
487 select SYS_SUPPORTS_64BIT_KERNEL
488 select SYS_SUPPORTS_BIG_ENDIAN
489 select SYS_SUPPORTS_NUMA
490 select SYS_SUPPORTS_SMP
492 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
493 workstations. To compile a Linux kernel that runs on these, say Y
497 bool "SGI IP28 (Indigo2 R10k)"
503 select DEFAULT_SGI_PARTITION
504 select DMA_NONCOHERENT
505 select GENERIC_ISA_DMA_SUPPORT_BROKEN
511 select SGI_HAS_INDYDOG
517 select SYS_HAS_CPU_R10000
519 # Disable EARLY_PRINTK for now since it leads to overwritten prom
520 # memory during early boot on some machines.
522 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
523 # for a more details discussion
525 # select SYS_HAS_EARLY_PRINTK
526 select SYS_SUPPORTS_64BIT_KERNEL
527 select SYS_SUPPORTS_BIG_ENDIAN
529 This is the SGI Indigo2 with R10000 processor. To compile a Linux
530 kernel that runs on these, say Y here.
539 select DMA_NONCOHERENT
542 select R5000_CPU_SCACHE
543 select RM7000_CPU_SCACHE
544 select SYS_HAS_CPU_R5000
545 select SYS_HAS_CPU_R10000 if BROKEN
546 select SYS_HAS_CPU_RM7000
547 select SYS_HAS_CPU_NEVADA
548 select SYS_SUPPORTS_64BIT_KERNEL
549 select SYS_SUPPORTS_BIG_ENDIAN
551 If you want this kernel to run on SGI O2 workstation, say Y here.
554 bool "Sibyte BCM91120C-CRhine"
557 select SIBYTE_BCM1120
559 select SYS_HAS_CPU_SB1
560 select SYS_SUPPORTS_BIG_ENDIAN
561 select SYS_SUPPORTS_LITTLE_ENDIAN
564 bool "Sibyte BCM91120x-Carmel"
567 select SIBYTE_BCM1120
569 select SYS_HAS_CPU_SB1
570 select SYS_SUPPORTS_BIG_ENDIAN
571 select SYS_SUPPORTS_LITTLE_ENDIAN
574 bool "Sibyte BCM91125C-CRhone"
577 select SIBYTE_BCM1125
579 select SYS_HAS_CPU_SB1
580 select SYS_SUPPORTS_BIG_ENDIAN
581 select SYS_SUPPORTS_HIGHMEM
582 select SYS_SUPPORTS_LITTLE_ENDIAN
585 bool "Sibyte BCM91125E-Rhone"
588 select SIBYTE_BCM1125H
590 select SYS_HAS_CPU_SB1
591 select SYS_SUPPORTS_BIG_ENDIAN
592 select SYS_SUPPORTS_LITTLE_ENDIAN
595 bool "Sibyte BCM91250A-SWARM"
598 select HAVE_PATA_PLATFORM
601 select SYS_HAS_CPU_SB1
602 select SYS_SUPPORTS_BIG_ENDIAN
603 select SYS_SUPPORTS_HIGHMEM
604 select SYS_SUPPORTS_LITTLE_ENDIAN
605 select ZONE_DMA32 if 64BIT
607 config SIBYTE_LITTLESUR
608 bool "Sibyte BCM91250C2-LittleSur"
611 select HAVE_PATA_PLATFORM
614 select SYS_HAS_CPU_SB1
615 select SYS_SUPPORTS_BIG_ENDIAN
616 select SYS_SUPPORTS_HIGHMEM
617 select SYS_SUPPORTS_LITTLE_ENDIAN
619 config SIBYTE_SENTOSA
620 bool "Sibyte BCM91250E-Sentosa"
625 select SYS_HAS_CPU_SB1
626 select SYS_SUPPORTS_BIG_ENDIAN
627 select SYS_SUPPORTS_LITTLE_ENDIAN
630 bool "Sibyte BCM91480B-BigSur"
633 select NR_CPUS_DEFAULT_4
634 select SIBYTE_BCM1x80
636 select SYS_HAS_CPU_SB1
637 select SYS_SUPPORTS_BIG_ENDIAN
638 select SYS_SUPPORTS_HIGHMEM
639 select SYS_SUPPORTS_LITTLE_ENDIAN
640 select ZONE_DMA32 if 64BIT
643 bool "SNI RM200/300/400"
644 select FW_ARC if CPU_LITTLE_ENDIAN
645 select FW_ARC32 if CPU_LITTLE_ENDIAN
646 select FW_SNIPROM if CPU_BIG_ENDIAN
647 select ARCH_MAY_HAVE_PC_FDC
651 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
652 select DMA_NONCOHERENT
653 select GENERIC_ISA_DMA
654 select HAVE_PCSPKR_PLATFORM
661 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
662 select SYS_HAS_CPU_R4X00
663 select SYS_HAS_CPU_R5000
664 select SYS_HAS_CPU_R10000
665 select R5000_CPU_SCACHE
666 select SYS_HAS_EARLY_PRINTK
667 select SYS_SUPPORTS_32BIT_KERNEL
668 select SYS_SUPPORTS_64BIT_KERNEL
669 select SYS_SUPPORTS_BIG_ENDIAN
670 select SYS_SUPPORTS_HIGHMEM
671 select SYS_SUPPORTS_LITTLE_ENDIAN
673 The SNI RM200/300/400 are MIPS-based machines manufactured by
674 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
675 Technology and now in turn merged with Fujitsu. Say Y here to
676 support this machine type.
679 bool "Toshiba TX39 series based machines"
682 bool "Toshiba TX49 series based machines"
684 config MIKROTIK_RB532
685 bool "Mikrotik RB532 boards"
688 select DMA_NONCOHERENT
691 select SYS_HAS_CPU_MIPS32_R1
692 select SYS_SUPPORTS_32BIT_KERNEL
693 select SYS_SUPPORTS_LITTLE_ENDIAN
696 select ARCH_REQUIRE_GPIOLIB
698 Support the Mikrotik(tm) RouterBoard 532 series,
699 based on the IDT RC32434 SoC.
701 config CAVIUM_OCTEON_SOC
702 bool "Cavium Networks Octeon SoC based boards"
704 select 64BIT_PHYS_ADDR
706 select SYS_SUPPORTS_64BIT_KERNEL
707 select SYS_SUPPORTS_BIG_ENDIAN
709 select SYS_SUPPORTS_HOTPLUG_CPU
710 select SYS_HAS_EARLY_PRINTK
711 select SYS_HAS_CPU_CAVIUM_OCTEON
715 select USB_ARCH_HAS_OHCI
716 select USB_ARCH_HAS_EHCI
718 select ARCH_REQUIRE_GPIOLIB
720 This option supports all of the Octeon reference boards from Cavium
721 Networks. It builds a kernel that dynamically determines the Octeon
722 CPU type and supports all known board reference implementations.
723 Some of the supported boards are:
730 Say Y here for most Octeon reference boards.
733 bool "Netlogic XLR/XLS based systems"
736 select SYS_HAS_CPU_XLR
737 select SYS_SUPPORTS_SMP
740 select SYS_SUPPORTS_32BIT_KERNEL
741 select SYS_SUPPORTS_64BIT_KERNEL
742 select 64BIT_PHYS_ADDR
743 select SYS_SUPPORTS_BIG_ENDIAN
744 select SYS_SUPPORTS_HIGHMEM
746 select NR_CPUS_DEFAULT_32
750 select ZONE_DMA32 if 64BIT
752 select SYS_HAS_EARLY_PRINTK
753 select USB_ARCH_HAS_OHCI if USB_SUPPORT
754 select USB_ARCH_HAS_EHCI if USB_SUPPORT
755 select SYS_SUPPORTS_ZBOOT
756 select SYS_SUPPORTS_ZBOOT_UART16550
758 Support for systems based on Netlogic XLR and XLS processors.
759 Say Y here if you have a XLR or XLS based board.
762 bool "Netlogic XLP based systems"
765 select SYS_HAS_CPU_XLP
766 select SYS_SUPPORTS_SMP
768 select SYS_SUPPORTS_32BIT_KERNEL
769 select SYS_SUPPORTS_64BIT_KERNEL
770 select 64BIT_PHYS_ADDR
771 select SYS_SUPPORTS_BIG_ENDIAN
772 select SYS_SUPPORTS_LITTLE_ENDIAN
773 select SYS_SUPPORTS_HIGHMEM
775 select NR_CPUS_DEFAULT_32
779 select ZONE_DMA32 if 64BIT
781 select SYS_HAS_EARLY_PRINTK
783 select SYS_SUPPORTS_ZBOOT
784 select SYS_SUPPORTS_ZBOOT_UART16550
786 This board is based on Netlogic XLP Processor.
787 Say Y here if you have a XLP based board.
791 source "arch/mips/alchemy/Kconfig"
792 source "arch/mips/ath79/Kconfig"
793 source "arch/mips/bcm47xx/Kconfig"
794 source "arch/mips/bcm63xx/Kconfig"
795 source "arch/mips/jazz/Kconfig"
796 source "arch/mips/jz4740/Kconfig"
797 source "arch/mips/lantiq/Kconfig"
798 source "arch/mips/lasat/Kconfig"
799 source "arch/mips/pmcs-msp71xx/Kconfig"
800 source "arch/mips/ralink/Kconfig"
801 source "arch/mips/sgi-ip27/Kconfig"
802 source "arch/mips/sibyte/Kconfig"
803 source "arch/mips/txx9/Kconfig"
804 source "arch/mips/vr41xx/Kconfig"
805 source "arch/mips/cavium-octeon/Kconfig"
806 source "arch/mips/loongson/Kconfig"
807 source "arch/mips/loongson1/Kconfig"
808 source "arch/mips/netlogic/Kconfig"
812 config RWSEM_GENERIC_SPINLOCK
816 config RWSEM_XCHGADD_ALGORITHM
819 config ARCH_HAS_ILOG2_U32
823 config ARCH_HAS_ILOG2_U64
827 config GENERIC_HWEIGHT
831 config GENERIC_CALIBRATE_DELAY
835 config SCHED_OMIT_FRAME_POINTER
840 # Select some configuration options automatically based on user selections.
845 config ARCH_MAY_HAVE_PC_FDC
888 select ARCH_REQUIRE_GPIOLIB
894 config ARCH_DMA_ADDR_T_64BIT
895 def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
900 config DMA_NONCOHERENT
902 select NEED_DMA_MAP_STATE
904 config NEED_DMA_MAP_STATE
907 config SYS_HAS_EARLY_PRINTK
911 bool "Support for hot-pluggable CPUs"
912 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
914 Say Y here to allow turning CPUs off and on. CPUs can be
915 controlled through /sys/devices/system/cpu.
916 (Note: power management support will enable this option
917 automatically on SMP systems. )
918 Say N if you want to disable CPU hotplug.
920 config SYS_SUPPORTS_HOTPLUG_CPU
944 config GENERIC_ISA_DMA
946 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
949 config GENERIC_ISA_DMA_SUPPORT_BROKEN
951 select GENERIC_ISA_DMA
960 # Endianness selection. Sufficiently obscure so many users don't know what to
961 # answer,so we try hard to limit the available choices. Also the use of a
962 # choice statement should be more obvious to the user.
965 prompt "Endianness selection"
967 Some MIPS machines can be configured for either little or big endian
968 byte order. These modes require different kernels and a different
969 Linux distribution. In general there is one preferred byteorder for a
970 particular system but some systems are just as commonly used in the
971 one or the other endianness.
973 config CPU_BIG_ENDIAN
975 depends on SYS_SUPPORTS_BIG_ENDIAN
977 config CPU_LITTLE_ENDIAN
979 depends on SYS_SUPPORTS_LITTLE_ENDIAN
986 config SYS_SUPPORTS_APM_EMULATION
989 config SYS_SUPPORTS_BIG_ENDIAN
992 config SYS_SUPPORTS_LITTLE_ENDIAN
995 config SYS_SUPPORTS_HUGETLBFS
997 depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1000 config MIPS_HUGE_TLB_SUPPORT
1001 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1024 config PCI_GT64XXX_PCI0
1027 config NO_EXCEPT_FILL
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
1052 select CPU_MIPSR2_IRQ_VI
1058 config SWAP_IO_SPACE
1061 config SGI_HAS_INDYDOG
1073 config SGI_HAS_ZILOG
1076 config SGI_HAS_I8042
1079 config DEFAULT_SGI_PARTITION
1091 config MIPS_L1_CACHE_SHIFT
1093 default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL || SOC_RT288X
1094 default "6" if MIPS_CPU_SCACHE
1095 default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
1098 config HAVE_STD_PC_SERIAL_PORT
1102 bool "ARC console support"
1103 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1107 depends on MACH_JAZZ || SNI_RM || SGI_IP32
1112 depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
1121 menu "CPU selection"
1127 config CPU_LOONGSON2E
1129 depends on SYS_HAS_CPU_LOONGSON2E
1130 select CPU_LOONGSON2
1132 The Loongson 2E processor implements the MIPS III instruction set
1133 with many extensions.
1135 It has an internal FPGA northbridge, which is compatible to
1138 config CPU_LOONGSON2F
1140 depends on SYS_HAS_CPU_LOONGSON2F
1141 select CPU_LOONGSON2
1142 select ARCH_REQUIRE_GPIOLIB
1144 The Loongson 2F processor implements the MIPS III instruction set
1145 with many extensions.
1147 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1148 have a similar programming interface with FPGA northbridge used in
1151 config CPU_LOONGSON1B
1153 depends on SYS_HAS_CPU_LOONGSON1B
1154 select CPU_LOONGSON1
1156 The Loongson 1B is a 32-bit SoC, which implements the MIPS32
1157 release 2 instruction set.
1159 config CPU_MIPS32_R1
1160 bool "MIPS32 Release 1"
1161 depends on SYS_HAS_CPU_MIPS32_R1
1162 select CPU_HAS_PREFETCH
1163 select CPU_SUPPORTS_32BIT_KERNEL
1164 select CPU_SUPPORTS_HIGHMEM
1166 Choose this option to build a kernel for release 1 or later of the
1167 MIPS32 architecture. Most modern embedded systems with a 32-bit
1168 MIPS processor are based on a MIPS32 processor. If you know the
1169 specific type of processor in your system, choose those that one
1170 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1171 Release 2 of the MIPS32 architecture is available since several
1172 years so chances are you even have a MIPS32 Release 2 processor
1173 in which case you should choose CPU_MIPS32_R2 instead for better
1176 config CPU_MIPS32_R2
1177 bool "MIPS32 Release 2"
1178 depends on SYS_HAS_CPU_MIPS32_R2
1179 select CPU_HAS_PREFETCH
1180 select CPU_SUPPORTS_32BIT_KERNEL
1181 select CPU_SUPPORTS_HIGHMEM
1184 Choose this option to build a kernel for release 2 or later of the
1185 MIPS32 architecture. Most modern embedded systems with a 32-bit
1186 MIPS processor are based on a MIPS32 processor. If you know the
1187 specific type of processor in your system, choose those that one
1188 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1190 config CPU_MIPS64_R1
1191 bool "MIPS64 Release 1"
1192 depends on SYS_HAS_CPU_MIPS64_R1
1193 select CPU_HAS_PREFETCH
1194 select CPU_SUPPORTS_32BIT_KERNEL
1195 select CPU_SUPPORTS_64BIT_KERNEL
1196 select CPU_SUPPORTS_HIGHMEM
1197 select CPU_SUPPORTS_HUGEPAGES
1199 Choose this option to build a kernel for release 1 or later of the
1200 MIPS64 architecture. Many modern embedded systems with a 64-bit
1201 MIPS processor are based on a MIPS64 processor. If you know the
1202 specific type of processor in your system, choose those that one
1203 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1204 Release 2 of the MIPS64 architecture is available since several
1205 years so chances are you even have a MIPS64 Release 2 processor
1206 in which case you should choose CPU_MIPS64_R2 instead for better
1209 config CPU_MIPS64_R2
1210 bool "MIPS64 Release 2"
1211 depends on SYS_HAS_CPU_MIPS64_R2
1212 select CPU_HAS_PREFETCH
1213 select CPU_SUPPORTS_32BIT_KERNEL
1214 select CPU_SUPPORTS_64BIT_KERNEL
1215 select CPU_SUPPORTS_HIGHMEM
1216 select CPU_SUPPORTS_HUGEPAGES
1218 Choose this option to build a kernel for release 2 or later of the
1219 MIPS64 architecture. Many modern embedded systems with a 64-bit
1220 MIPS processor are based on a MIPS64 processor. If you know the
1221 specific type of processor in your system, choose those that one
1222 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1226 depends on SYS_HAS_CPU_R3000
1228 select CPU_SUPPORTS_32BIT_KERNEL
1229 select CPU_SUPPORTS_HIGHMEM
1231 Please make sure to pick the right CPU type. Linux/MIPS is not
1232 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1233 *not* work on R4000 machines and vice versa. However, since most
1234 of the supported machines have an R4000 (or similar) CPU, R4x00
1235 might be a safe bet. If the resulting kernel does not work,
1236 try to recompile with R3000.
1240 depends on SYS_HAS_CPU_TX39XX
1241 select CPU_SUPPORTS_32BIT_KERNEL
1245 depends on SYS_HAS_CPU_VR41XX
1246 select CPU_SUPPORTS_32BIT_KERNEL
1247 select CPU_SUPPORTS_64BIT_KERNEL
1249 The options selects support for the NEC VR4100 series of processors.
1250 Only choose this option if you have one of these processors as a
1251 kernel built with this option will not run on any other type of
1252 processor or vice versa.
1256 depends on SYS_HAS_CPU_R4300
1257 select CPU_SUPPORTS_32BIT_KERNEL
1258 select CPU_SUPPORTS_64BIT_KERNEL
1260 MIPS Technologies R4300-series processors.
1264 depends on SYS_HAS_CPU_R4X00
1265 select CPU_SUPPORTS_32BIT_KERNEL
1266 select CPU_SUPPORTS_64BIT_KERNEL
1267 select CPU_SUPPORTS_HUGEPAGES
1269 MIPS Technologies R4000-series processors other than 4300, including
1270 the R4000, R4400, R4600, and 4700.
1274 depends on SYS_HAS_CPU_TX49XX
1275 select CPU_HAS_PREFETCH
1276 select CPU_SUPPORTS_32BIT_KERNEL
1277 select CPU_SUPPORTS_64BIT_KERNEL
1278 select CPU_SUPPORTS_HUGEPAGES
1282 depends on SYS_HAS_CPU_R5000
1283 select CPU_SUPPORTS_32BIT_KERNEL
1284 select CPU_SUPPORTS_64BIT_KERNEL
1285 select CPU_SUPPORTS_HUGEPAGES
1287 MIPS Technologies R5000-series processors other than the Nevada.
1291 depends on SYS_HAS_CPU_R5432
1292 select CPU_SUPPORTS_32BIT_KERNEL
1293 select CPU_SUPPORTS_64BIT_KERNEL
1294 select CPU_SUPPORTS_HUGEPAGES
1298 depends on SYS_HAS_CPU_R5500
1299 select CPU_SUPPORTS_32BIT_KERNEL
1300 select CPU_SUPPORTS_64BIT_KERNEL
1301 select CPU_SUPPORTS_HUGEPAGES
1303 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1308 depends on SYS_HAS_CPU_R6000
1309 select CPU_SUPPORTS_32BIT_KERNEL
1311 MIPS Technologies R6000 and R6000A series processors. Note these
1312 processors are extremely rare and the support for them is incomplete.
1316 depends on SYS_HAS_CPU_NEVADA
1317 select CPU_SUPPORTS_32BIT_KERNEL
1318 select CPU_SUPPORTS_64BIT_KERNEL
1319 select CPU_SUPPORTS_HUGEPAGES
1321 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1325 depends on SYS_HAS_CPU_R8000
1326 select CPU_HAS_PREFETCH
1327 select CPU_SUPPORTS_64BIT_KERNEL
1329 MIPS Technologies R8000 processors. Note these processors are
1330 uncommon and the support for them is incomplete.
1334 depends on SYS_HAS_CPU_R10000
1335 select CPU_HAS_PREFETCH
1336 select CPU_SUPPORTS_32BIT_KERNEL
1337 select CPU_SUPPORTS_64BIT_KERNEL
1338 select CPU_SUPPORTS_HIGHMEM
1339 select CPU_SUPPORTS_HUGEPAGES
1341 MIPS Technologies R10000-series processors.
1345 depends on SYS_HAS_CPU_RM7000
1346 select CPU_HAS_PREFETCH
1347 select CPU_SUPPORTS_32BIT_KERNEL
1348 select CPU_SUPPORTS_64BIT_KERNEL
1349 select CPU_SUPPORTS_HIGHMEM
1350 select CPU_SUPPORTS_HUGEPAGES
1354 depends on SYS_HAS_CPU_SB1
1355 select CPU_SUPPORTS_32BIT_KERNEL
1356 select CPU_SUPPORTS_64BIT_KERNEL
1357 select CPU_SUPPORTS_HIGHMEM
1358 select CPU_SUPPORTS_HUGEPAGES
1359 select WEAK_ORDERING
1361 config CPU_CAVIUM_OCTEON
1362 bool "Cavium Octeon processor"
1363 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1364 select ARCH_SPARSEMEM_ENABLE
1365 select CPU_HAS_PREFETCH
1366 select CPU_SUPPORTS_64BIT_KERNEL
1367 select SYS_SUPPORTS_SMP
1368 select NR_CPUS_DEFAULT_16
1369 select WEAK_ORDERING
1370 select CPU_SUPPORTS_HIGHMEM
1371 select CPU_SUPPORTS_HUGEPAGES
1374 select USB_EHCI_BIG_ENDIAN_MMIO
1376 The Cavium Octeon processor is a highly integrated chip containing
1377 many ethernet hardware widgets for networking tasks. The processor
1378 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1379 Full details can be found at http://www.caviumnetworks.com.
1381 config CPU_BMIPS3300
1383 depends on SYS_HAS_CPU_BMIPS3300
1386 Broadcom BMIPS3300 processors.
1388 config CPU_BMIPS4350
1390 depends on SYS_HAS_CPU_BMIPS4350
1392 select SYS_SUPPORTS_SMP
1393 select SYS_SUPPORTS_HOTPLUG_CPU
1395 Broadcom BMIPS4350 ("VIPER") processors.
1397 config CPU_BMIPS4380
1399 depends on SYS_HAS_CPU_BMIPS4380
1401 select SYS_SUPPORTS_SMP
1402 select SYS_SUPPORTS_HOTPLUG_CPU
1404 Broadcom BMIPS4380 processors.
1406 config CPU_BMIPS5000
1408 depends on SYS_HAS_CPU_BMIPS5000
1410 select CPU_SUPPORTS_HIGHMEM
1411 select MIPS_CPU_SCACHE
1412 select SYS_SUPPORTS_SMP
1413 select SYS_SUPPORTS_HOTPLUG_CPU
1415 Broadcom BMIPS5000 processors.
1418 bool "Netlogic XLR SoC"
1419 depends on SYS_HAS_CPU_XLR
1420 select CPU_SUPPORTS_32BIT_KERNEL
1421 select CPU_SUPPORTS_64BIT_KERNEL
1422 select CPU_SUPPORTS_HIGHMEM
1423 select CPU_SUPPORTS_HUGEPAGES
1424 select WEAK_ORDERING
1425 select WEAK_REORDERING_BEYOND_LLSC
1427 Netlogic Microsystems XLR/XLS processors.
1430 bool "Netlogic XLP SoC"
1431 depends on SYS_HAS_CPU_XLP
1432 select CPU_SUPPORTS_32BIT_KERNEL
1433 select CPU_SUPPORTS_64BIT_KERNEL
1434 select CPU_SUPPORTS_HIGHMEM
1435 select WEAK_ORDERING
1436 select WEAK_REORDERING_BEYOND_LLSC
1437 select CPU_HAS_PREFETCH
1440 Netlogic Microsystems XLP processors.
1444 config CPU_NOP_WORKAROUNDS
1447 config CPU_JUMP_WORKAROUNDS
1450 config CPU_LOONGSON2F_WORKAROUNDS
1451 bool "Loongson 2F Workarounds"
1453 select CPU_NOP_WORKAROUNDS
1454 select CPU_JUMP_WORKAROUNDS
1456 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1457 require workarounds. Without workarounds the system may hang
1458 unexpectedly. For more information please refer to the gas
1459 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1461 Loongson 2F03 and later have fixed these issues and no workarounds
1462 are needed. The workarounds have no significant side effect on them
1463 but may decrease the performance of the system so this option should
1464 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1467 If unsure, please say Y.
1468 endif # CPU_LOONGSON2F
1470 config SYS_SUPPORTS_ZBOOT
1472 select HAVE_KERNEL_GZIP
1473 select HAVE_KERNEL_BZIP2
1474 select HAVE_KERNEL_LZ4
1475 select HAVE_KERNEL_LZMA
1476 select HAVE_KERNEL_LZO
1477 select HAVE_KERNEL_XZ
1479 config SYS_SUPPORTS_ZBOOT_UART16550
1481 select SYS_SUPPORTS_ZBOOT
1483 config CPU_LOONGSON2
1485 select CPU_SUPPORTS_32BIT_KERNEL
1486 select CPU_SUPPORTS_64BIT_KERNEL
1487 select CPU_SUPPORTS_HIGHMEM
1488 select CPU_SUPPORTS_HUGEPAGES
1490 config CPU_LOONGSON1
1494 select CPU_HAS_PREFETCH
1495 select CPU_SUPPORTS_32BIT_KERNEL
1496 select CPU_SUPPORTS_HIGHMEM
1501 select CPU_SUPPORTS_32BIT_KERNEL
1502 select DMA_NONCOHERENT
1504 select SWAP_IO_SPACE
1505 select WEAK_ORDERING
1507 config SYS_HAS_CPU_LOONGSON2E
1510 config SYS_HAS_CPU_LOONGSON2F
1512 select CPU_SUPPORTS_CPUFREQ
1513 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1514 select CPU_SUPPORTS_UNCACHED_ACCELERATED
1516 config SYS_HAS_CPU_LOONGSON1B
1519 config SYS_HAS_CPU_MIPS32_R1
1522 config SYS_HAS_CPU_MIPS32_R2
1525 config SYS_HAS_CPU_MIPS64_R1
1528 config SYS_HAS_CPU_MIPS64_R2
1531 config SYS_HAS_CPU_R3000
1534 config SYS_HAS_CPU_TX39XX
1537 config SYS_HAS_CPU_VR41XX
1540 config SYS_HAS_CPU_R4300
1543 config SYS_HAS_CPU_R4X00
1546 config SYS_HAS_CPU_TX49XX
1549 config SYS_HAS_CPU_R5000
1552 config SYS_HAS_CPU_R5432
1555 config SYS_HAS_CPU_R5500
1558 config SYS_HAS_CPU_R6000
1561 config SYS_HAS_CPU_NEVADA
1564 config SYS_HAS_CPU_R8000
1567 config SYS_HAS_CPU_R10000
1570 config SYS_HAS_CPU_RM7000
1573 config SYS_HAS_CPU_SB1
1576 config SYS_HAS_CPU_CAVIUM_OCTEON
1579 config SYS_HAS_CPU_BMIPS3300
1582 config SYS_HAS_CPU_BMIPS4350
1585 config SYS_HAS_CPU_BMIPS4380
1588 config SYS_HAS_CPU_BMIPS5000
1591 config SYS_HAS_CPU_XLR
1594 config SYS_HAS_CPU_XLP
1598 # CPU may reorder R->R, R->W, W->R, W->W
1599 # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1601 config WEAK_ORDERING
1605 # CPU may reorder reads and writes beyond LL/SC
1606 # CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1608 config WEAK_REORDERING_BEYOND_LLSC
1613 # These two indicate any level of the MIPS32 and MIPS64 architecture
1617 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
1621 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
1624 # These two indicate the revision of the architecture, either Release 1 or Release 2
1628 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1632 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1634 config SYS_SUPPORTS_32BIT_KERNEL
1636 config SYS_SUPPORTS_64BIT_KERNEL
1638 config CPU_SUPPORTS_32BIT_KERNEL
1640 config CPU_SUPPORTS_64BIT_KERNEL
1642 config CPU_SUPPORTS_CPUFREQ
1644 config CPU_SUPPORTS_ADDRWINCFG
1646 config CPU_SUPPORTS_HUGEPAGES
1648 config CPU_SUPPORTS_UNCACHED_ACCELERATED
1650 config MIPS_PGD_C0_CONTEXT
1652 default y if 64BIT && CPU_MIPSR2 && !CPU_XLP
1655 # Set to y for ptrace access to watch registers.
1657 config HARDWARE_WATCHPOINTS
1659 default y if CPU_MIPSR1 || CPU_MIPSR2
1664 prompt "Kernel code model"
1666 You should only select this option if you have a workload that
1667 actually benefits from 64-bit processing or if your machine has
1668 large memory. You will only be presented a single option in this
1669 menu if your system does not support both 32-bit and 64-bit kernels.
1672 bool "32-bit kernel"
1673 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1676 Select this option if you want to build a 32-bit kernel.
1678 bool "64-bit kernel"
1679 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1681 Select this option if you want to build a 64-bit kernel.
1686 bool "KVM Guest Kernel"
1687 depends on BROKEN_ON_SMP
1689 Select this option if building a guest kernel for KVM (Trap & Emulate) mode
1691 config KVM_HOST_FREQ
1692 int "KVM Host Processor Frequency (MHz)"
1693 depends on KVM_GUEST
1696 Select this option if building a guest kernel for KVM to skip
1697 RTC emulation when determining guest CPU Frequency. Instead, the guest
1698 processor frequency is automatically derived from the host frequency.
1701 prompt "Kernel page size"
1702 default PAGE_SIZE_4KB
1704 config PAGE_SIZE_4KB
1706 depends on !CPU_LOONGSON2
1708 This option select the standard 4kB Linux page size. On some
1709 R3000-family processors this is the only available page size. Using
1710 4kB page size will minimize memory consumption and is therefore
1711 recommended for low memory systems.
1713 config PAGE_SIZE_8KB
1715 depends on CPU_R8000 || CPU_CAVIUM_OCTEON
1717 Using 8kB page size will result in higher performance kernel at
1718 the price of higher memory consumption. This option is available
1719 only on R8000 and cnMIPS processors. Note that you will need a
1720 suitable Linux distribution to support this.
1722 config PAGE_SIZE_16KB
1724 depends on !CPU_R3000 && !CPU_TX39XX
1726 Using 16kB page size will result in higher performance kernel at
1727 the price of higher memory consumption. This option is available on
1728 all non-R3000 family processors. Note that you will need a suitable
1729 Linux distribution to support this.
1731 config PAGE_SIZE_32KB
1733 depends on CPU_CAVIUM_OCTEON
1735 Using 32kB page size will result in higher performance kernel at
1736 the price of higher memory consumption. This option is available
1737 only on cnMIPS cores. Note that you will need a suitable Linux
1738 distribution to support this.
1740 config PAGE_SIZE_64KB
1742 depends on !CPU_R3000 && !CPU_TX39XX
1744 Using 64kB page size will result in higher performance kernel at
1745 the price of higher memory consumption. This option is available on
1746 all non-R3000 family processor. Not that at the time of this
1747 writing this option is still high experimental.
1751 config FORCE_MAX_ZONEORDER
1752 int "Maximum zone order"
1753 range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB
1754 default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB
1755 range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB
1756 default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB
1757 range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB
1758 default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB
1762 The kernel memory allocator divides physically contiguous memory
1763 blocks into "zones", where each zone is a power of two number of
1764 pages. This option selects the largest power of two that the kernel
1765 keeps in the memory allocator. If you need to allocate very large
1766 blocks of physically contiguous memory, then you may need to
1767 increase this value.
1769 This config option is actually maximum order plus one. For example,
1770 a value of 11 means that the largest free memory block is 2^10 pages.
1772 The page size is not necessarily 4KB. Keep this in mind
1773 when choosing a value for this option.
1776 bool "Use GIC global counter for clock events"
1777 depends on IRQ_GIC && !(MIPS_SEAD3 || MIPS_MT_SMTC)
1779 Use the GIC global counter for the clock events. The R4K clock
1780 event driver is always present, so if the platform ends up not
1781 detecting a GIC, it will fall back to the R4K timer for the
1782 generation of clock events.
1787 config IP22_CPU_SCACHE
1792 # Support for a MIPS32 / MIPS64 style S-caches
1794 config MIPS_CPU_SCACHE
1798 config R5000_CPU_SCACHE
1802 config RM7000_CPU_SCACHE
1806 config SIBYTE_DMA_PAGEOPS
1807 bool "Use DMA to clear/copy pages"
1810 Instead of using the CPU to zero and copy pages, use a Data Mover
1811 channel. These DMA channels are otherwise unused by the standard
1812 SiByte Linux port. Seems to give a small performance benefit.
1814 config CPU_HAS_PREFETCH
1817 config CPU_GENERIC_DUMP_TLB
1819 default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
1823 default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1825 config CPU_R4K_CACHE_TLB
1827 default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
1830 prompt "MIPS MT options"
1832 config MIPS_MT_DISABLED
1833 bool "Disable multithreading support."
1835 Use this option if your workload can't take advantage of
1836 MIPS hardware multithreading support. On systems that don't have
1837 the option of an MT-enabled processor this option will be the only
1838 option in this menu.
1841 bool "Use 1 TC on each available VPE for SMP"
1842 depends on SYS_SUPPORTS_MULTITHREADING
1843 select CPU_MIPSR2_IRQ_VI
1844 select CPU_MIPSR2_IRQ_EI
1847 select SYS_SUPPORTS_SCHED_SMT if SMP
1848 select SYS_SUPPORTS_SMP
1850 select MIPS_PERF_SHARED_TC_COUNTERS
1852 This is a kernel model which is known a VSMP but lately has been
1853 marketesed into SMVP.
1854 Virtual SMP uses the processor's VPEs to implement virtual
1855 processors. In currently available configuration of the 34K processor
1856 this allows for a dual processor. Both processors will share the same
1857 primary caches; each will obtain the half of the TLB for it's own
1858 exclusive use. For a layman this model can be described as similar to
1859 what Intel calls Hyperthreading.
1861 For further information see http://www.linux-mips.org/wiki/34K#VSMP
1864 bool "SMTC: Use all TCs on all VPEs for SMP"
1865 depends on CPU_MIPS32_R2
1866 #depends on CPU_MIPS64_R2 # once there is hardware ...
1867 depends on SYS_SUPPORTS_MULTITHREADING
1868 select CPU_MIPSR2_IRQ_VI
1869 select CPU_MIPSR2_IRQ_EI
1871 select NR_CPUS_DEFAULT_8
1873 select SYS_SUPPORTS_SMP
1876 This is a kernel model which is known a SMTC or lately has been
1877 marketesed into SMVP.
1878 is presenting the available TC's of the core as processors to Linux.
1879 On currently available 34K processors this means a Linux system will
1880 see up to 5 processors. The implementation of the SMTC kernel differs
1881 significantly from VSMP and cannot efficiently coexist in the same
1882 kernel binary so the choice between VSMP and SMTC is a compile time
1885 For further information see http://www.linux-mips.org/wiki/34K#SMTC
1893 bool "SMT (multithreading) scheduler support"
1894 depends on SYS_SUPPORTS_SCHED_SMT
1897 SMT scheduler support improves the CPU scheduler's decision making
1898 when dealing with MIPS MT enabled cores at a cost of slightly
1899 increased overhead in some places. If unsure say N here.
1901 config SYS_SUPPORTS_SCHED_SMT
1904 config SYS_SUPPORTS_MULTITHREADING
1907 config MIPS_MT_FPAFF
1908 bool "Dynamic FPU affinity for FP-intensive threads"
1910 depends on MIPS_MT_SMP || MIPS_MT_SMTC
1912 config MIPS_VPE_LOADER
1913 bool "VPE loader support."
1914 depends on SYS_SUPPORTS_MULTITHREADING && MODULES
1915 select CPU_MIPSR2_IRQ_VI
1916 select CPU_MIPSR2_IRQ_EI
1919 Includes a loader for loading an elf relocatable object
1920 onto another VPE and running it.
1922 config MIPS_MT_SMTC_IM_BACKSTOP
1923 bool "Use per-TC register bits as backstop for inhibited IM bits"
1924 depends on MIPS_MT_SMTC
1927 To support multiple TC microthreads acting as "CPUs" within
1928 a VPE, VPE-wide interrupt mask bits must be specially manipulated
1929 during interrupt handling. To support legacy drivers and interrupt
1930 controller management code, SMTC has a "backstop" to track and
1931 if necessary restore the interrupt mask. This has some performance
1932 impact on interrupt service overhead.
1934 config MIPS_MT_SMTC_IRQAFF
1935 bool "Support IRQ affinity API"
1936 depends on MIPS_MT_SMTC
1939 Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1940 for SMTC Linux kernel. Requires platform support, of which
1941 an example can be found in the MIPS kernel i8259 and Malta
1942 platform code. Adds some overhead to interrupt dispatch, and
1943 should be used only if you know what you are doing.
1945 config MIPS_VPE_LOADER_TOM
1946 bool "Load VPE program into memory hidden from linux"
1947 depends on MIPS_VPE_LOADER
1950 The loader can use memory that is present but has been hidden from
1951 Linux using the kernel command line option "mem=xxMB". It's up to
1952 you to ensure the amount you put in the option and the space your
1953 program requires is less or equal to the amount physically present.
1955 # this should possibly be in drivers/char, but it is rather cpu related. Hmmm
1956 config MIPS_VPE_APSP_API
1957 bool "Enable support for AP/SP API (RTLX)"
1958 depends on MIPS_VPE_LOADER
1962 bool "MIPS CMP framework support"
1963 depends on SYS_SUPPORTS_MIPS_CMP
1966 select SYS_SUPPORTS_SMP
1967 select SYS_SUPPORTS_SCHED_SMT if SMP
1968 select WEAK_ORDERING
1971 This is a placeholder option for the GCMP work. It will need to
1972 be handled differently...
1974 config SB1_PASS_1_WORKAROUNDS
1976 depends on CPU_SB1_PASS_1
1979 config SB1_PASS_2_WORKAROUNDS
1981 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
1984 config SB1_PASS_2_1_WORKAROUNDS
1986 depends on CPU_SB1 && CPU_SB1_PASS_2
1990 config 64BIT_PHYS_ADDR
1993 config ARCH_PHYS_ADDR_T_64BIT
1994 def_bool 64BIT_PHYS_ADDR
1996 config CPU_HAS_SMARTMIPS
1997 depends on SYS_SUPPORTS_SMARTMIPS
1998 bool "Support for the SmartMIPS ASE"
2000 SmartMIPS is a extension of the MIPS32 architecture aimed at
2001 increased security at both hardware and software level for
2002 smartcards. Enabling this option will allow proper use of the
2003 SmartMIPS instructions by Linux applications. However a kernel with
2004 this option will not work on a MIPS core without SmartMIPS core. If
2005 you don't know you probably don't have SmartMIPS and should say N
2008 config CPU_MICROMIPS
2009 depends on SYS_SUPPORTS_MICROMIPS
2010 bool "Build kernel using microMIPS ISA"
2012 When this option is enabled the kernel will be built using the
2022 # Vectored interrupt mode is an R2 feature
2024 config CPU_MIPSR2_IRQ_VI
2028 # Extended interrupt mode is an R2 feature
2030 config CPU_MIPSR2_IRQ_EI
2035 depends on !CPU_R3000
2041 config CPU_DADDI_WORKAROUNDS
2044 config CPU_R4000_WORKAROUNDS
2046 select CPU_R4400_WORKAROUNDS
2048 config CPU_R4400_WORKAROUNDS
2052 # - Highmem only makes sense for the 32-bit kernel.
2053 # - The current highmem code will only work properly on physically indexed
2054 # caches such as R3000, SB1, R7000 or those that look like they're virtually
2055 # indexed such as R4000/R4400 SC and MC versions or R10000. So for the
2056 # moment we protect the user and offer the highmem option only on machines
2057 # where it's known to be safe. This will not offer highmem on a few systems
2058 # such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2059 # indexed CPUs but we're playing safe.
2060 # - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2061 # know they might have memory configurations that could make use of highmem
2065 bool "High Memory Support"
2066 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
2068 config CPU_SUPPORTS_HIGHMEM
2071 config SYS_SUPPORTS_HIGHMEM
2074 config SYS_SUPPORTS_SMARTMIPS
2077 config SYS_SUPPORTS_MICROMIPS
2080 config ARCH_FLATMEM_ENABLE
2082 depends on !NUMA && !CPU_LOONGSON2
2084 config ARCH_DISCONTIGMEM_ENABLE
2086 default y if SGI_IP27
2088 Say Y to support efficient handling of discontiguous physical memory,
2089 for architectures which are either NUMA (Non-Uniform Memory Access)
2090 or have huge holes in the physical address space for other reasons.
2091 See <file:Documentation/vm/numa> for more.
2093 config ARCH_SPARSEMEM_ENABLE
2095 select SPARSEMEM_STATIC
2099 depends on SYS_SUPPORTS_NUMA
2101 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2102 Access). This option improves performance on systems with more
2103 than two nodes; on two node systems it is generally better to
2104 leave it disabled; on single node systems disable this option
2107 config SYS_SUPPORTS_NUMA
2113 depends on NEED_MULTIPLE_NODES
2115 config HW_PERF_EVENTS
2116 bool "Enable hardware performance counter support for perf events"
2117 depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
2120 Enable hardware performance counter support for perf events. If
2121 disabled, perf events will use software events only.
2126 bool "Multi-Processing support"
2127 depends on SYS_SUPPORTS_SMP
2128 select USE_GENERIC_SMP_HELPERS
2130 This enables support for systems with more than one CPU. If you have
2131 a system with only one CPU, like most personal computers, say N. If
2132 you have a system with more than one CPU, say Y.
2134 If you say N here, the kernel will run on single and multiprocessor
2135 machines, but will use only one CPU of a multiprocessor machine. If
2136 you say Y here, the kernel will run on many, but not all,
2137 singleprocessor machines. On a singleprocessor machine, the kernel
2138 will run faster if you say N here.
2140 People using multiprocessor machines who say Y here should also say
2141 Y to "Enhanced Real Time Clock Support", below.
2143 See also the SMP-HOWTO available at
2144 <http://www.tldp.org/docs.html#howto>.
2146 If you don't know what to do here, say N.
2151 config SYS_SUPPORTS_MIPS_CMP
2154 config SYS_SUPPORTS_SMP
2157 config NR_CPUS_DEFAULT_4
2160 config NR_CPUS_DEFAULT_8
2163 config NR_CPUS_DEFAULT_16
2166 config NR_CPUS_DEFAULT_32
2169 config NR_CPUS_DEFAULT_64
2173 int "Maximum number of CPUs (2-64)"
2176 default "4" if NR_CPUS_DEFAULT_4
2177 default "8" if NR_CPUS_DEFAULT_8
2178 default "16" if NR_CPUS_DEFAULT_16
2179 default "32" if NR_CPUS_DEFAULT_32
2180 default "64" if NR_CPUS_DEFAULT_64
2182 This allows you to specify the maximum number of CPUs which this
2183 kernel will support. The maximum supported value is 32 for 32-bit
2184 kernel and 64 for 64-bit kernels; the minimum value which makes
2185 sense is 1 for Qemu (useful only for kernel debugging purposes)
2186 and 2 for all others.
2188 This is purely to save memory - each supported CPU adds
2189 approximately eight kilobytes to the kernel image. For best
2190 performance should round up your number of processors to the next
2193 config MIPS_PERF_SHARED_TC_COUNTERS
2197 # Timer Interrupt Frequency Configuration
2201 prompt "Timer frequency"
2204 Allows the configuration of the timer frequency.
2207 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2210 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2213 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2216 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2219 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2222 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2225 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2229 config SYS_SUPPORTS_48HZ
2232 config SYS_SUPPORTS_100HZ
2235 config SYS_SUPPORTS_128HZ
2238 config SYS_SUPPORTS_250HZ
2241 config SYS_SUPPORTS_256HZ
2244 config SYS_SUPPORTS_1000HZ
2247 config SYS_SUPPORTS_1024HZ
2250 config SYS_SUPPORTS_ARBIT_HZ
2252 default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2253 !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2254 !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2255 !SYS_SUPPORTS_1024HZ
2260 default 100 if HZ_100
2261 default 128 if HZ_128
2262 default 250 if HZ_250
2263 default 256 if HZ_256
2264 default 1000 if HZ_1000
2265 default 1024 if HZ_1024
2267 source "kernel/Kconfig.preempt"
2270 bool "Kexec system call"
2272 kexec is a system call that implements the ability to shutdown your
2273 current kernel, and to start another kernel. It is like a reboot
2274 but it is independent of the system firmware. And like a reboot
2275 you can start any kernel with it, not just Linux.
2277 The name comes from the similarity to the exec system call.
2279 It is an ongoing process to be certain the hardware in a machine
2280 is properly shutdown, so do not be surprised if this code does not
2281 initially work for you. As of this writing the exact hardware
2282 interface is strongly in flux, so no good recommendation can be
2286 bool "Kernel crash dumps"
2288 Generate crash dump after being started by kexec.
2289 This should be normally only set in special crash dump kernels
2290 which are loaded in the main kernel with kexec-tools into
2291 a specially reserved region and then later executed after
2292 a crash by kdump/kexec. The crash dump kernel must be compiled
2293 to a memory address not used by the main kernel or firmware using
2296 config PHYSICAL_START
2297 hex "Physical address where the kernel is loaded"
2298 default "0xffffffff84000000" if 64BIT
2299 default "0x84000000" if 32BIT
2300 depends on CRASH_DUMP
2302 This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2303 If you plan to use kernel for capturing the crash dump change
2304 this value to start of the reserved region (the "X" value as
2305 specified in the "crashkernel=YM@XM" command line boot parameter
2306 passed to the panic-ed kernel).
2309 bool "Enable seccomp to safely compute untrusted bytecode"
2313 This kernel feature is useful for number crunching applications
2314 that may need to compute untrusted bytecode during their
2315 execution. By using pipes or other transports made available to
2316 the process as file descriptors supporting the read/write
2317 syscalls, it's possible to isolate those applications in
2318 their own address space using seccomp. Once seccomp is
2319 enabled via /proc/<pid>/seccomp, it cannot be disabled
2320 and the task is only allowed to execute a few safe syscalls
2321 defined by each seccomp mode.
2323 If unsure, say Y. Only embedded should say N here.
2325 config CC_STACKPROTECTOR
2326 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
2328 This option turns on the -fstack-protector GCC feature. This
2329 feature puts, at the beginning of functions, a canary value on
2330 the stack just before the return address, and validates
2331 the value just before actually returning. Stack based buffer
2332 overflows (that need to overwrite this return address) now also
2333 overwrite the canary, which gets detected and the attack is then
2334 neutralized via a kernel panic.
2336 This feature requires gcc version 4.2 or above.
2341 select OF_EARLY_FLATTREE
2346 config LOCKDEP_SUPPORT
2350 config STACKTRACE_SUPPORT
2354 source "init/Kconfig"
2356 source "kernel/Kconfig.freezer"
2358 menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2366 bool "Support for PCI controller"
2367 depends on HW_HAS_PCI
2369 select NO_GENERIC_PCI_IOPORT_MAP
2371 Find out whether you have a PCI motherboard. PCI is the name of a
2372 bus system, i.e. the way the CPU talks to the other stuff inside
2373 your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2379 source "drivers/pci/Kconfig"
2381 source "drivers/pci/pcie/Kconfig"
2384 # ISA support is now enabled via select. Too many systems still have the one
2385 # or other ISA chip on the board that users don't know about so don't expect
2386 # users to choose the right thing ...
2393 depends on HW_HAS_EISA
2395 select GENERIC_ISA_DMA
2397 The Extended Industry Standard Architecture (EISA) bus was
2398 developed as an open alternative to the IBM MicroChannel bus.
2400 The EISA bus provided some of the features of the IBM MicroChannel
2401 bus while maintaining backward compatibility with cards made for
2402 the older ISA bus. The EISA bus saw limited use between 1988 and
2403 1995 when it was made obsolete by the PCI bus.
2405 Say Y here if you are building a kernel for an EISA-based machine.
2409 source "drivers/eisa/Kconfig"
2412 bool "TURBOchannel support"
2413 depends on MACH_DECSTATION
2415 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2416 processors. TURBOchannel programming specifications are available
2418 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2420 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2421 Linux driver support status is documented at:
2422 <http://www.linux-mips.org/wiki/DECstation>
2432 select MIPS_EXTERNAL_TIMER
2440 source "drivers/pcmcia/Kconfig"
2442 source "drivers/pci/hotplug/Kconfig"
2445 bool "RapidIO support"
2449 If you say Y here, the kernel will include drivers and
2450 infrastructure code to support RapidIO interconnect devices.
2452 source "drivers/rapidio/Kconfig"
2456 menu "Executable file formats"
2458 source "fs/Kconfig.binfmt"
2463 config MIPS32_COMPAT
2464 bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
2467 Select this option if you want Linux/MIPS 32-bit binary
2468 compatibility. Since all software available for Linux/MIPS is
2469 currently 32-bit you should say Y here.
2473 depends on MIPS32_COMPAT
2474 select ARCH_WANT_OLD_COMPAT_IPC
2477 config SYSVIPC_COMPAT
2479 depends on COMPAT && SYSVIPC
2483 bool "Kernel support for o32 binaries"
2484 depends on MIPS32_COMPAT
2486 Select this option if you want to run o32 binaries. These are pure
2487 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
2488 existing binaries are in this format.
2493 bool "Kernel support for n32 binaries"
2494 depends on MIPS32_COMPAT
2496 Select this option if you want to run n32 binaries. These are
2497 64-bit binaries using 32-bit quantities for addressing and certain
2498 data that would normally be 64-bit. They are used in special
2505 default y if MIPS32_O32 || MIPS32_N32
2509 menu "Power management options"
2511 config ARCH_HIBERNATION_POSSIBLE
2513 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2515 config ARCH_SUSPEND_POSSIBLE
2517 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2519 source "kernel/power/Kconfig"
2523 config MIPS_EXTERNAL_TIMER
2526 if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
2527 menu "CPU Power Management"
2528 source "drivers/cpufreq/Kconfig"
2532 source "net/Kconfig"
2534 source "drivers/Kconfig"
2536 source "drivers/firmware/Kconfig"
2540 source "arch/mips/Kconfig.debug"
2542 source "security/Kconfig"
2544 source "crypto/Kconfig"
2546 source "lib/Kconfig"
2548 source "arch/mips/kvm/Kconfig"