162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig MIPS
362306a36Sopenharmony_ci	bool
462306a36Sopenharmony_ci	default y
562306a36Sopenharmony_ci	select ARCH_32BIT_OFF_T if !64BIT
662306a36Sopenharmony_ci	select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
762306a36Sopenharmony_ci	select ARCH_HAS_CPU_FINALIZE_INIT
862306a36Sopenharmony_ci	select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
962306a36Sopenharmony_ci	select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
1062306a36Sopenharmony_ci	select ARCH_HAS_FORTIFY_SOURCE
1162306a36Sopenharmony_ci	select ARCH_HAS_KCOV
1262306a36Sopenharmony_ci	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
1362306a36Sopenharmony_ci	select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
1462306a36Sopenharmony_ci	select ARCH_HAS_STRNCPY_FROM_USER
1562306a36Sopenharmony_ci	select ARCH_HAS_STRNLEN_USER
1662306a36Sopenharmony_ci	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
1762306a36Sopenharmony_ci	select ARCH_HAS_UBSAN_SANITIZE_ALL
1862306a36Sopenharmony_ci	select ARCH_HAS_GCOV_PROFILE_ALL
1962306a36Sopenharmony_ci	select ARCH_KEEP_MEMBLOCK
2062306a36Sopenharmony_ci	select ARCH_USE_BUILTIN_BSWAP
2162306a36Sopenharmony_ci	select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
2262306a36Sopenharmony_ci	select ARCH_USE_MEMTEST
2362306a36Sopenharmony_ci	select ARCH_USE_QUEUED_RWLOCKS
2462306a36Sopenharmony_ci	select ARCH_USE_QUEUED_SPINLOCKS
2562306a36Sopenharmony_ci	select ARCH_SUPPORTS_HUGETLBFS if CPU_SUPPORTS_HUGEPAGES
2662306a36Sopenharmony_ci	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
2762306a36Sopenharmony_ci	select ARCH_WANT_IPC_PARSE_VERSION
2862306a36Sopenharmony_ci	select ARCH_WANT_LD_ORPHAN_WARN
2962306a36Sopenharmony_ci	select BUILDTIME_TABLE_SORT
3062306a36Sopenharmony_ci	select CLONE_BACKWARDS
3162306a36Sopenharmony_ci	select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
3262306a36Sopenharmony_ci	select CPU_PM if CPU_IDLE
3362306a36Sopenharmony_ci	select GENERIC_ATOMIC64 if !64BIT
3462306a36Sopenharmony_ci	select GENERIC_CMOS_UPDATE
3562306a36Sopenharmony_ci	select GENERIC_CPU_AUTOPROBE
3662306a36Sopenharmony_ci	select GENERIC_GETTIMEOFDAY
3762306a36Sopenharmony_ci	select GENERIC_IOMAP
3862306a36Sopenharmony_ci	select GENERIC_IRQ_PROBE
3962306a36Sopenharmony_ci	select GENERIC_IRQ_SHOW
4062306a36Sopenharmony_ci	select GENERIC_ISA_DMA if EISA
4162306a36Sopenharmony_ci	select GENERIC_LIB_ASHLDI3
4262306a36Sopenharmony_ci	select GENERIC_LIB_ASHRDI3
4362306a36Sopenharmony_ci	select GENERIC_LIB_CMPDI2
4462306a36Sopenharmony_ci	select GENERIC_LIB_LSHRDI3
4562306a36Sopenharmony_ci	select GENERIC_LIB_UCMPDI2
4662306a36Sopenharmony_ci	select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
4762306a36Sopenharmony_ci	select GENERIC_SMP_IDLE_THREAD
4862306a36Sopenharmony_ci	select GENERIC_IDLE_POLL_SETUP
4962306a36Sopenharmony_ci	select GENERIC_TIME_VSYSCALL
5062306a36Sopenharmony_ci	select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
5162306a36Sopenharmony_ci	select HAS_IOPORT if !NO_IOPORT_MAP || ISA
5262306a36Sopenharmony_ci	select HAVE_ARCH_COMPILER_H
5362306a36Sopenharmony_ci	select HAVE_ARCH_JUMP_LABEL
5462306a36Sopenharmony_ci	select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
5562306a36Sopenharmony_ci	select HAVE_ARCH_MMAP_RND_BITS if MMU
5662306a36Sopenharmony_ci	select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
5762306a36Sopenharmony_ci	select HAVE_ARCH_SECCOMP_FILTER
5862306a36Sopenharmony_ci	select HAVE_ARCH_TRACEHOOK
5962306a36Sopenharmony_ci	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
6062306a36Sopenharmony_ci	select HAVE_ASM_MODVERSIONS
6162306a36Sopenharmony_ci	select HAVE_CONTEXT_TRACKING_USER
6262306a36Sopenharmony_ci	select HAVE_TIF_NOHZ
6362306a36Sopenharmony_ci	select HAVE_C_RECORDMCOUNT
6462306a36Sopenharmony_ci	select HAVE_DEBUG_KMEMLEAK
6562306a36Sopenharmony_ci	select HAVE_DEBUG_STACKOVERFLOW
6662306a36Sopenharmony_ci	select HAVE_DMA_CONTIGUOUS
6762306a36Sopenharmony_ci	select HAVE_DYNAMIC_FTRACE
6862306a36Sopenharmony_ci	select HAVE_EBPF_JIT if !CPU_MICROMIPS
6962306a36Sopenharmony_ci	select HAVE_EXIT_THREAD
7062306a36Sopenharmony_ci	select HAVE_FAST_GUP
7162306a36Sopenharmony_ci	select HAVE_FTRACE_MCOUNT_RECORD
7262306a36Sopenharmony_ci	select HAVE_FUNCTION_GRAPH_TRACER
7362306a36Sopenharmony_ci	select HAVE_FUNCTION_TRACER
7462306a36Sopenharmony_ci	select HAVE_GCC_PLUGINS
7562306a36Sopenharmony_ci	select HAVE_GENERIC_VDSO
7662306a36Sopenharmony_ci	select HAVE_IOREMAP_PROT
7762306a36Sopenharmony_ci	select HAVE_IRQ_EXIT_ON_IRQ_STACK
7862306a36Sopenharmony_ci	select HAVE_IRQ_TIME_ACCOUNTING
7962306a36Sopenharmony_ci	select HAVE_KPROBES
8062306a36Sopenharmony_ci	select HAVE_KRETPROBES
8162306a36Sopenharmony_ci	select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
8262306a36Sopenharmony_ci	select HAVE_MOD_ARCH_SPECIFIC
8362306a36Sopenharmony_ci	select HAVE_NMI
8462306a36Sopenharmony_ci	select HAVE_PERF_EVENTS
8562306a36Sopenharmony_ci	select HAVE_PERF_REGS
8662306a36Sopenharmony_ci	select HAVE_PERF_USER_STACK_DUMP
8762306a36Sopenharmony_ci	select HAVE_REGS_AND_STACK_ACCESS_API
8862306a36Sopenharmony_ci	select HAVE_RSEQ
8962306a36Sopenharmony_ci	select HAVE_SPARSE_SYSCALL_NR
9062306a36Sopenharmony_ci	select HAVE_STACKPROTECTOR
9162306a36Sopenharmony_ci	select HAVE_SYSCALL_TRACEPOINTS
9262306a36Sopenharmony_ci	select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
9362306a36Sopenharmony_ci	select IRQ_FORCED_THREADING
9462306a36Sopenharmony_ci	select ISA if EISA
9562306a36Sopenharmony_ci	select LOCK_MM_AND_FIND_VMA
9662306a36Sopenharmony_ci	select MODULES_USE_ELF_REL if MODULES
9762306a36Sopenharmony_ci	select MODULES_USE_ELF_RELA if MODULES && 64BIT
9862306a36Sopenharmony_ci	select PERF_USE_VMALLOC
9962306a36Sopenharmony_ci	select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
10062306a36Sopenharmony_ci	select RTC_LIB
10162306a36Sopenharmony_ci	select SYSCTL_EXCEPTION_TRACE
10262306a36Sopenharmony_ci	select TRACE_IRQFLAGS_SUPPORT
10362306a36Sopenharmony_ci	select ARCH_HAS_ELFCORE_COMPAT
10462306a36Sopenharmony_ci	select HAVE_ARCH_KCSAN if 64BIT
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciconfig MIPS_FIXUP_BIGPHYS_ADDR
10762306a36Sopenharmony_ci	bool
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig MIPS_GENERIC
11062306a36Sopenharmony_ci	bool
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciconfig MACH_INGENIC
11362306a36Sopenharmony_ci	bool
11462306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
11562306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
11662306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
11762306a36Sopenharmony_ci	select DMA_NONCOHERENT
11862306a36Sopenharmony_ci	select IRQ_MIPS_CPU
11962306a36Sopenharmony_ci	select PINCTRL
12062306a36Sopenharmony_ci	select GPIOLIB
12162306a36Sopenharmony_ci	select COMMON_CLK
12262306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
12362306a36Sopenharmony_ci	select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
12462306a36Sopenharmony_ci	select USE_OF
12562306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
12662306a36Sopenharmony_ci	select MIPS_EXTERNAL_TIMER
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_cimenu "Machine selection"
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_cichoice
13162306a36Sopenharmony_ci	prompt "System type"
13262306a36Sopenharmony_ci	default MIPS_GENERIC_KERNEL
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig MIPS_GENERIC_KERNEL
13562306a36Sopenharmony_ci	bool "Generic board-agnostic MIPS kernel"
13662306a36Sopenharmony_ci	select MIPS_GENERIC
13762306a36Sopenharmony_ci	select BOOT_RAW
13862306a36Sopenharmony_ci	select BUILTIN_DTB
13962306a36Sopenharmony_ci	select CEVT_R4K
14062306a36Sopenharmony_ci	select CLKSRC_MIPS_GIC
14162306a36Sopenharmony_ci	select COMMON_CLK
14262306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_EI
14362306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_VI
14462306a36Sopenharmony_ci	select CSRC_R4K
14562306a36Sopenharmony_ci	select DMA_NONCOHERENT
14662306a36Sopenharmony_ci	select HAVE_PCI
14762306a36Sopenharmony_ci	select IRQ_MIPS_CPU
14862306a36Sopenharmony_ci	select MIPS_AUTO_PFN_OFFSET
14962306a36Sopenharmony_ci	select MIPS_CPU_SCACHE
15062306a36Sopenharmony_ci	select MIPS_GIC
15162306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
15262306a36Sopenharmony_ci	select NO_EXCEPT_FILL
15362306a36Sopenharmony_ci	select PCI_DRIVERS_GENERIC
15462306a36Sopenharmony_ci	select SMP_UP if SMP
15562306a36Sopenharmony_ci	select SWAP_IO_SPACE
15662306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
15762306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
15862306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R5
15962306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R6
16062306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R1
16162306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R2
16262306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R5
16362306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R6
16462306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
16562306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
16662306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
16762306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
16862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
16962306a36Sopenharmony_ci	select SYS_SUPPORTS_MICROMIPS
17062306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
17162306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS_CPS
17262306a36Sopenharmony_ci	select SYS_SUPPORTS_MULTITHREADING
17362306a36Sopenharmony_ci	select SYS_SUPPORTS_RELOCATABLE
17462306a36Sopenharmony_ci	select SYS_SUPPORTS_SMARTMIPS
17562306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
17662306a36Sopenharmony_ci	select UHI_BOOT
17762306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
17862306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
17962306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
18062306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
18162306a36Sopenharmony_ci	select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
18262306a36Sopenharmony_ci	select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
18362306a36Sopenharmony_ci	select USE_OF
18462306a36Sopenharmony_ci	help
18562306a36Sopenharmony_ci	  Select this to build a kernel which aims to support multiple boards,
18662306a36Sopenharmony_ci	  generally using a flattened device tree passed from the bootloader
18762306a36Sopenharmony_ci	  using the boot protocol defined in the UHI (Unified Hosting
18862306a36Sopenharmony_ci	  Interface) specification.
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ciconfig MIPS_ALCHEMY
19162306a36Sopenharmony_ci	bool "Alchemy processor based machines"
19262306a36Sopenharmony_ci	select PHYS_ADDR_T_64BIT
19362306a36Sopenharmony_ci	select CEVT_R4K
19462306a36Sopenharmony_ci	select CSRC_R4K
19562306a36Sopenharmony_ci	select IRQ_MIPS_CPU
19662306a36Sopenharmony_ci	select DMA_NONCOHERENT		# Au1000,1500,1100 aren't, rest is
19762306a36Sopenharmony_ci	select MIPS_FIXUP_BIGPHYS_ADDR if PCI
19862306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
19962306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
20062306a36Sopenharmony_ci	select SYS_SUPPORTS_APM_EMULATION
20162306a36Sopenharmony_ci	select GPIOLIB
20262306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
20362306a36Sopenharmony_ci	select COMMON_CLK
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ciconfig AR7
20662306a36Sopenharmony_ci	bool "Texas Instruments AR7"
20762306a36Sopenharmony_ci	select BOOT_ELF32
20862306a36Sopenharmony_ci	select COMMON_CLK
20962306a36Sopenharmony_ci	select DMA_NONCOHERENT
21062306a36Sopenharmony_ci	select CEVT_R4K
21162306a36Sopenharmony_ci	select CSRC_R4K
21262306a36Sopenharmony_ci	select IRQ_MIPS_CPU
21362306a36Sopenharmony_ci	select NO_EXCEPT_FILL
21462306a36Sopenharmony_ci	select SWAP_IO_SPACE
21562306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
21662306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
21762306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
21862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
21962306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
22062306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT_UART16550
22162306a36Sopenharmony_ci	select GPIOLIB
22262306a36Sopenharmony_ci	select VLYNQ
22362306a36Sopenharmony_ci	help
22462306a36Sopenharmony_ci	  Support for the Texas Instruments AR7 System-on-a-Chip
22562306a36Sopenharmony_ci	  family: TNETD7100, 7200 and 7300.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ciconfig ATH25
22862306a36Sopenharmony_ci	bool "Atheros AR231x/AR531x SoC support"
22962306a36Sopenharmony_ci	select CEVT_R4K
23062306a36Sopenharmony_ci	select CSRC_R4K
23162306a36Sopenharmony_ci	select DMA_NONCOHERENT
23262306a36Sopenharmony_ci	select IRQ_MIPS_CPU
23362306a36Sopenharmony_ci	select IRQ_DOMAIN
23462306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
23562306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
23662306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
23762306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
23862306a36Sopenharmony_ci	help
23962306a36Sopenharmony_ci	  Support for Atheros AR231x and Atheros AR531x based boards
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciconfig ATH79
24262306a36Sopenharmony_ci	bool "Atheros AR71XX/AR724X/AR913X based boards"
24362306a36Sopenharmony_ci	select ARCH_HAS_RESET_CONTROLLER
24462306a36Sopenharmony_ci	select BOOT_RAW
24562306a36Sopenharmony_ci	select CEVT_R4K
24662306a36Sopenharmony_ci	select CSRC_R4K
24762306a36Sopenharmony_ci	select DMA_NONCOHERENT
24862306a36Sopenharmony_ci	select GPIOLIB
24962306a36Sopenharmony_ci	select PINCTRL
25062306a36Sopenharmony_ci	select COMMON_CLK
25162306a36Sopenharmony_ci	select IRQ_MIPS_CPU
25262306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
25362306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
25462306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
25562306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
25662306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
25762306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT_UART_PROM
25862306a36Sopenharmony_ci	select USE_OF
25962306a36Sopenharmony_ci	select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
26062306a36Sopenharmony_ci	help
26162306a36Sopenharmony_ci	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ciconfig BMIPS_GENERIC
26462306a36Sopenharmony_ci	bool "Broadcom Generic BMIPS kernel"
26562306a36Sopenharmony_ci	select ARCH_HAS_RESET_CONTROLLER
26662306a36Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
26762306a36Sopenharmony_ci	select BOOT_RAW
26862306a36Sopenharmony_ci	select NO_EXCEPT_FILL
26962306a36Sopenharmony_ci	select USE_OF
27062306a36Sopenharmony_ci	select CEVT_R4K
27162306a36Sopenharmony_ci	select CSRC_R4K
27262306a36Sopenharmony_ci	select SYNC_R4K
27362306a36Sopenharmony_ci	select COMMON_CLK
27462306a36Sopenharmony_ci	select BCM6345_L1_IRQ
27562306a36Sopenharmony_ci	select BCM7038_L1_IRQ
27662306a36Sopenharmony_ci	select BCM7120_L2_IRQ
27762306a36Sopenharmony_ci	select BRCMSTB_L2_IRQ
27862306a36Sopenharmony_ci	select IRQ_MIPS_CPU
27962306a36Sopenharmony_ci	select DMA_NONCOHERENT
28062306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
28162306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
28262306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
28362306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
28462306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS32_3300
28562306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS4350
28662306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS4380
28762306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS5000
28862306a36Sopenharmony_ci	select SWAP_IO_SPACE
28962306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
29062306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
29162306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
29262306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
29362306a36Sopenharmony_ci	select HARDIRQS_SW_RESEND
29462306a36Sopenharmony_ci	select HAVE_PCI
29562306a36Sopenharmony_ci	select PCI_DRIVERS_GENERIC
29662306a36Sopenharmony_ci	select FW_CFE
29762306a36Sopenharmony_ci	help
29862306a36Sopenharmony_ci	  Build a generic DT-based kernel image that boots on select
29962306a36Sopenharmony_ci	  BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
30062306a36Sopenharmony_ci	  box chips.  Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
30162306a36Sopenharmony_ci	  must be set appropriately for your board.
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ciconfig BCM47XX
30462306a36Sopenharmony_ci	bool "Broadcom BCM47XX based boards"
30562306a36Sopenharmony_ci	select BOOT_RAW
30662306a36Sopenharmony_ci	select CEVT_R4K
30762306a36Sopenharmony_ci	select CSRC_R4K
30862306a36Sopenharmony_ci	select DMA_NONCOHERENT
30962306a36Sopenharmony_ci	select HAVE_PCI
31062306a36Sopenharmony_ci	select IRQ_MIPS_CPU
31162306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
31262306a36Sopenharmony_ci	select NO_EXCEPT_FILL
31362306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
31462306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
31562306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
31662306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
31762306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
31862306a36Sopenharmony_ci	select USE_GENERIC_EARLY_PRINTK_8250
31962306a36Sopenharmony_ci	select GPIOLIB
32062306a36Sopenharmony_ci	select LEDS_GPIO_REGISTER
32162306a36Sopenharmony_ci	select BCM47XX_NVRAM
32262306a36Sopenharmony_ci	select BCM47XX_SPROM
32362306a36Sopenharmony_ci	select BCM47XX_SSB if !BCM47XX_BCMA
32462306a36Sopenharmony_ci	help
32562306a36Sopenharmony_ci	  Support for BCM47XX based boards
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ciconfig BCM63XX
32862306a36Sopenharmony_ci	bool "Broadcom BCM63XX based boards"
32962306a36Sopenharmony_ci	select BOOT_RAW
33062306a36Sopenharmony_ci	select CEVT_R4K
33162306a36Sopenharmony_ci	select CSRC_R4K
33262306a36Sopenharmony_ci	select SYNC_R4K
33362306a36Sopenharmony_ci	select DMA_NONCOHERENT
33462306a36Sopenharmony_ci	select IRQ_MIPS_CPU
33562306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
33662306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
33762306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
33862306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS32_3300
33962306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS4350
34062306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS4380
34162306a36Sopenharmony_ci	select SWAP_IO_SPACE
34262306a36Sopenharmony_ci	select GPIOLIB
34362306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_4
34462306a36Sopenharmony_ci	select HAVE_LEGACY_CLK
34562306a36Sopenharmony_ci	help
34662306a36Sopenharmony_ci	  Support for BCM63XX based boards
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ciconfig MIPS_COBALT
34962306a36Sopenharmony_ci	bool "Cobalt Server"
35062306a36Sopenharmony_ci	select CEVT_R4K
35162306a36Sopenharmony_ci	select CSRC_R4K
35262306a36Sopenharmony_ci	select CEVT_GT641XX
35362306a36Sopenharmony_ci	select DMA_NONCOHERENT
35462306a36Sopenharmony_ci	select FORCE_PCI
35562306a36Sopenharmony_ci	select I8253
35662306a36Sopenharmony_ci	select I8259
35762306a36Sopenharmony_ci	select IRQ_MIPS_CPU
35862306a36Sopenharmony_ci	select IRQ_GT641XX
35962306a36Sopenharmony_ci	select PCI_GT64XXX_PCI0
36062306a36Sopenharmony_ci	select SYS_HAS_CPU_NEVADA
36162306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
36262306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
36362306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
36462306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
36562306a36Sopenharmony_ci	select USE_GENERIC_EARLY_PRINTK_8250
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ciconfig MACH_DECSTATION
36862306a36Sopenharmony_ci	bool "DECstations"
36962306a36Sopenharmony_ci	select BOOT_ELF32
37062306a36Sopenharmony_ci	select CEVT_DS1287
37162306a36Sopenharmony_ci	select CEVT_R4K if CPU_R4X00
37262306a36Sopenharmony_ci	select CSRC_IOASIC
37362306a36Sopenharmony_ci	select CSRC_R4K if CPU_R4X00
37462306a36Sopenharmony_ci	select CPU_DADDI_WORKAROUNDS if 64BIT
37562306a36Sopenharmony_ci	select CPU_R4000_WORKAROUNDS if 64BIT
37662306a36Sopenharmony_ci	select CPU_R4400_WORKAROUNDS if 64BIT
37762306a36Sopenharmony_ci	select DMA_NONCOHERENT
37862306a36Sopenharmony_ci	select NO_IOPORT_MAP
37962306a36Sopenharmony_ci	select IRQ_MIPS_CPU
38062306a36Sopenharmony_ci	select SYS_HAS_CPU_R3000
38162306a36Sopenharmony_ci	select SYS_HAS_CPU_R4X00
38262306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
38362306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
38462306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
38562306a36Sopenharmony_ci	select SYS_SUPPORTS_128HZ
38662306a36Sopenharmony_ci	select SYS_SUPPORTS_256HZ
38762306a36Sopenharmony_ci	select SYS_SUPPORTS_1024HZ
38862306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_4
38962306a36Sopenharmony_ci	help
39062306a36Sopenharmony_ci	  This enables support for DEC's MIPS based workstations.  For details
39162306a36Sopenharmony_ci	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
39262306a36Sopenharmony_ci	  DECstation porting pages on <http://decstation.unix-ag.org/>.
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ci	  If you have one of the following DECstation Models you definitely
39562306a36Sopenharmony_ci	  want to choose R4xx0 for the CPU Type:
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci		DECstation 5000/50
39862306a36Sopenharmony_ci		DECstation 5000/150
39962306a36Sopenharmony_ci		DECstation 5000/260
40062306a36Sopenharmony_ci		DECsystem 5900/260
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ci	  otherwise choose R3000.
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ciconfig MACH_JAZZ
40562306a36Sopenharmony_ci	bool "Jazz family of machines"
40662306a36Sopenharmony_ci	select ARC_MEMORY
40762306a36Sopenharmony_ci	select ARC_PROMLIB
40862306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_PARPORT
40962306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
41062306a36Sopenharmony_ci	select DMA_OPS
41162306a36Sopenharmony_ci	select FW_ARC
41262306a36Sopenharmony_ci	select FW_ARC32
41362306a36Sopenharmony_ci	select ARCH_MAY_HAVE_PC_FDC
41462306a36Sopenharmony_ci	select CEVT_R4K
41562306a36Sopenharmony_ci	select CSRC_R4K
41662306a36Sopenharmony_ci	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
41762306a36Sopenharmony_ci	select GENERIC_ISA_DMA
41862306a36Sopenharmony_ci	select HAVE_PCSPKR_PLATFORM
41962306a36Sopenharmony_ci	select IRQ_MIPS_CPU
42062306a36Sopenharmony_ci	select I8253
42162306a36Sopenharmony_ci	select I8259
42262306a36Sopenharmony_ci	select ISA
42362306a36Sopenharmony_ci	select SYS_HAS_CPU_R4X00
42462306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
42562306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
42662306a36Sopenharmony_ci	select SYS_SUPPORTS_100HZ
42762306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
42862306a36Sopenharmony_ci	help
42962306a36Sopenharmony_ci	  This a family of machines based on the MIPS R4030 chipset which was
43062306a36Sopenharmony_ci	  used by several vendors to build RISC/os and Windows NT workstations.
43162306a36Sopenharmony_ci	  Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
43262306a36Sopenharmony_ci	  Olivetti M700-10 workstations.
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ciconfig MACH_INGENIC_SOC
43562306a36Sopenharmony_ci	bool "Ingenic SoC based machines"
43662306a36Sopenharmony_ci	select MIPS_GENERIC
43762306a36Sopenharmony_ci	select MACH_INGENIC
43862306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT_UART16550
43962306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
44062306a36Sopenharmony_ci	select MIPS_EXTERNAL_TIMER
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_ciconfig LANTIQ
44362306a36Sopenharmony_ci	bool "Lantiq based platforms"
44462306a36Sopenharmony_ci	select DMA_NONCOHERENT
44562306a36Sopenharmony_ci	select IRQ_MIPS_CPU
44662306a36Sopenharmony_ci	select CEVT_R4K
44762306a36Sopenharmony_ci	select CSRC_R4K
44862306a36Sopenharmony_ci	select NO_EXCEPT_FILL
44962306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
45062306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
45162306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
45262306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
45362306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
45462306a36Sopenharmony_ci	select SYS_SUPPORTS_MULTITHREADING
45562306a36Sopenharmony_ci	select SYS_SUPPORTS_VPE_LOADER
45662306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
45762306a36Sopenharmony_ci	select GPIOLIB
45862306a36Sopenharmony_ci	select SWAP_IO_SPACE
45962306a36Sopenharmony_ci	select BOOT_RAW
46062306a36Sopenharmony_ci	select HAVE_LEGACY_CLK
46162306a36Sopenharmony_ci	select USE_OF
46262306a36Sopenharmony_ci	select PINCTRL
46362306a36Sopenharmony_ci	select PINCTRL_LANTIQ
46462306a36Sopenharmony_ci	select ARCH_HAS_RESET_CONTROLLER
46562306a36Sopenharmony_ci	select RESET_CONTROLLER
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ciconfig MACH_LOONGSON32
46862306a36Sopenharmony_ci	bool "Loongson 32-bit family of machines"
46962306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
47062306a36Sopenharmony_ci	help
47162306a36Sopenharmony_ci	  This enables support for the Loongson-1 family of machines.
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ci	  Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
47462306a36Sopenharmony_ci	  the Institute of Computing Technology (ICT), Chinese Academy of
47562306a36Sopenharmony_ci	  Sciences (CAS).
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ciconfig MACH_LOONGSON2EF
47862306a36Sopenharmony_ci	bool "Loongson-2E/F family of machines"
47962306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
48062306a36Sopenharmony_ci	help
48162306a36Sopenharmony_ci	  This enables the support of early Loongson-2E/F family of machines.
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ciconfig MACH_LOONGSON64
48462306a36Sopenharmony_ci	bool "Loongson 64-bit family of machines"
48562306a36Sopenharmony_ci	select ARCH_DMA_DEFAULT_COHERENT
48662306a36Sopenharmony_ci	select ARCH_SPARSEMEM_ENABLE
48762306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_PARPORT
48862306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
48962306a36Sopenharmony_ci	select GENERIC_ISA_DMA_SUPPORT_BROKEN
49062306a36Sopenharmony_ci	select BOOT_ELF32
49162306a36Sopenharmony_ci	select BOARD_SCACHE
49262306a36Sopenharmony_ci	select CSRC_R4K
49362306a36Sopenharmony_ci	select CEVT_R4K
49462306a36Sopenharmony_ci	select FORCE_PCI
49562306a36Sopenharmony_ci	select ISA
49662306a36Sopenharmony_ci	select I8259
49762306a36Sopenharmony_ci	select IRQ_MIPS_CPU
49862306a36Sopenharmony_ci	select NO_EXCEPT_FILL
49962306a36Sopenharmony_ci	select NR_CPUS_DEFAULT_64
50062306a36Sopenharmony_ci	select USE_GENERIC_EARLY_PRINTK_8250
50162306a36Sopenharmony_ci	select PCI_DRIVERS_GENERIC
50262306a36Sopenharmony_ci	select SYS_HAS_CPU_LOONGSON64
50362306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
50462306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
50562306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU
50662306a36Sopenharmony_ci	select SYS_SUPPORTS_NUMA
50762306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
50862306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
50962306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
51062306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
51162306a36Sopenharmony_ci	select SYS_SUPPORTS_RELOCATABLE
51262306a36Sopenharmony_ci	select ZONE_DMA32
51362306a36Sopenharmony_ci	select COMMON_CLK
51462306a36Sopenharmony_ci	select USE_OF
51562306a36Sopenharmony_ci	select BUILTIN_DTB
51662306a36Sopenharmony_ci	select PCI_HOST_GENERIC
51762306a36Sopenharmony_ci	select HAVE_ARCH_NODEDATA_EXTENSION if NUMA
51862306a36Sopenharmony_ci	help
51962306a36Sopenharmony_ci	  This enables the support of Loongson-2/3 family of machines.
52062306a36Sopenharmony_ci
52162306a36Sopenharmony_ci	  Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
52262306a36Sopenharmony_ci	  GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
52362306a36Sopenharmony_ci	  and Loongson-2F which will be removed), developed by the Institute
52462306a36Sopenharmony_ci	  of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ciconfig MIPS_MALTA
52762306a36Sopenharmony_ci	bool "MIPS Malta board"
52862306a36Sopenharmony_ci	select ARCH_MAY_HAVE_PC_FDC
52962306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_PARPORT
53062306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
53162306a36Sopenharmony_ci	select BOOT_ELF32
53262306a36Sopenharmony_ci	select BOOT_RAW
53362306a36Sopenharmony_ci	select BUILTIN_DTB
53462306a36Sopenharmony_ci	select CEVT_R4K
53562306a36Sopenharmony_ci	select CLKSRC_MIPS_GIC
53662306a36Sopenharmony_ci	select COMMON_CLK
53762306a36Sopenharmony_ci	select CSRC_R4K
53862306a36Sopenharmony_ci	select DMA_NONCOHERENT
53962306a36Sopenharmony_ci	select GENERIC_ISA_DMA
54062306a36Sopenharmony_ci	select HAVE_PCSPKR_PLATFORM
54162306a36Sopenharmony_ci	select HAVE_PCI
54262306a36Sopenharmony_ci	select I8253
54362306a36Sopenharmony_ci	select I8259
54462306a36Sopenharmony_ci	select IRQ_MIPS_CPU
54562306a36Sopenharmony_ci	select MIPS_BONITO64
54662306a36Sopenharmony_ci	select MIPS_CPU_SCACHE
54762306a36Sopenharmony_ci	select MIPS_GIC
54862306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_6
54962306a36Sopenharmony_ci	select MIPS_MSC
55062306a36Sopenharmony_ci	select PCI_GT64XXX_PCI0
55162306a36Sopenharmony_ci	select SMP_UP if SMP
55262306a36Sopenharmony_ci	select SWAP_IO_SPACE
55362306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
55462306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
55562306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R3_5
55662306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R5
55762306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R6
55862306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R1
55962306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R2
56062306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS64_R6
56162306a36Sopenharmony_ci	select SYS_HAS_CPU_NEVADA
56262306a36Sopenharmony_ci	select SYS_HAS_CPU_RM7000
56362306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
56462306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
56562306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
56662306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
56762306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
56862306a36Sopenharmony_ci	select SYS_SUPPORTS_MICROMIPS
56962306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
57062306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS_CPS
57162306a36Sopenharmony_ci	select SYS_SUPPORTS_MULTITHREADING
57262306a36Sopenharmony_ci	select SYS_SUPPORTS_RELOCATABLE
57362306a36Sopenharmony_ci	select SYS_SUPPORTS_SMARTMIPS
57462306a36Sopenharmony_ci	select SYS_SUPPORTS_VPE_LOADER
57562306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
57662306a36Sopenharmony_ci	select USE_OF
57762306a36Sopenharmony_ci	select WAR_ICACHE_REFILLS
57862306a36Sopenharmony_ci	select ZONE_DMA32 if 64BIT
57962306a36Sopenharmony_ci	help
58062306a36Sopenharmony_ci	  This enables support for the MIPS Technologies Malta evaluation
58162306a36Sopenharmony_ci	  board.
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ciconfig MACH_PIC32
58462306a36Sopenharmony_ci	bool "Microchip PIC32 Family"
58562306a36Sopenharmony_ci	help
58662306a36Sopenharmony_ci	  This enables support for the Microchip PIC32 family of platforms.
58762306a36Sopenharmony_ci
58862306a36Sopenharmony_ci	  Microchip PIC32 is a family of general-purpose 32 bit MIPS core
58962306a36Sopenharmony_ci	  microcontrollers.
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ciconfig MACH_NINTENDO64
59262306a36Sopenharmony_ci	bool "Nintendo 64 console"
59362306a36Sopenharmony_ci	select CEVT_R4K
59462306a36Sopenharmony_ci	select CSRC_R4K
59562306a36Sopenharmony_ci	select SYS_HAS_CPU_R4300
59662306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
59762306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
59862306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
59962306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
60062306a36Sopenharmony_ci	select DMA_NONCOHERENT
60162306a36Sopenharmony_ci	select IRQ_MIPS_CPU
60262306a36Sopenharmony_ci
60362306a36Sopenharmony_ciconfig RALINK
60462306a36Sopenharmony_ci	bool "Ralink based machines"
60562306a36Sopenharmony_ci	select CEVT_R4K
60662306a36Sopenharmony_ci	select COMMON_CLK
60762306a36Sopenharmony_ci	select CSRC_R4K
60862306a36Sopenharmony_ci	select BOOT_RAW
60962306a36Sopenharmony_ci	select DMA_NONCOHERENT
61062306a36Sopenharmony_ci	select IRQ_MIPS_CPU
61162306a36Sopenharmony_ci	select USE_OF
61262306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
61362306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
61462306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
61562306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
61662306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
61762306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
61862306a36Sopenharmony_ci	select ARCH_HAS_RESET_CONTROLLER
61962306a36Sopenharmony_ci	select RESET_CONTROLLER
62062306a36Sopenharmony_ci
62162306a36Sopenharmony_ciconfig MACH_REALTEK_RTL
62262306a36Sopenharmony_ci	bool "Realtek RTL838x/RTL839x based machines"
62362306a36Sopenharmony_ci	select MIPS_GENERIC
62462306a36Sopenharmony_ci	select DMA_NONCOHERENT
62562306a36Sopenharmony_ci	select IRQ_MIPS_CPU
62662306a36Sopenharmony_ci	select CSRC_R4K
62762306a36Sopenharmony_ci	select CEVT_R4K
62862306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
62962306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R2
63062306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
63162306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
63262306a36Sopenharmony_ci	select SYS_SUPPORTS_MIPS16
63362306a36Sopenharmony_ci	select SYS_SUPPORTS_MULTITHREADING
63462306a36Sopenharmony_ci	select SYS_SUPPORTS_VPE_LOADER
63562306a36Sopenharmony_ci	select BOOT_RAW
63662306a36Sopenharmony_ci	select PINCTRL
63762306a36Sopenharmony_ci	select USE_OF
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_ciconfig SGI_IP22
64062306a36Sopenharmony_ci	bool "SGI IP22 (Indy/Indigo2)"
64162306a36Sopenharmony_ci	select ARC_MEMORY
64262306a36Sopenharmony_ci	select ARC_PROMLIB
64362306a36Sopenharmony_ci	select FW_ARC
64462306a36Sopenharmony_ci	select FW_ARC32
64562306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
64662306a36Sopenharmony_ci	select BOOT_ELF32
64762306a36Sopenharmony_ci	select CEVT_R4K
64862306a36Sopenharmony_ci	select CSRC_R4K
64962306a36Sopenharmony_ci	select DEFAULT_SGI_PARTITION
65062306a36Sopenharmony_ci	select DMA_NONCOHERENT
65162306a36Sopenharmony_ci	select HAVE_EISA
65262306a36Sopenharmony_ci	select I8253
65362306a36Sopenharmony_ci	select I8259
65462306a36Sopenharmony_ci	select IP22_CPU_SCACHE
65562306a36Sopenharmony_ci	select IRQ_MIPS_CPU
65662306a36Sopenharmony_ci	select GENERIC_ISA_DMA_SUPPORT_BROKEN
65762306a36Sopenharmony_ci	select SGI_HAS_I8042
65862306a36Sopenharmony_ci	select SGI_HAS_INDYDOG
65962306a36Sopenharmony_ci	select SGI_HAS_HAL2
66062306a36Sopenharmony_ci	select SGI_HAS_SEEQ
66162306a36Sopenharmony_ci	select SGI_HAS_WD93
66262306a36Sopenharmony_ci	select SGI_HAS_ZILOG
66362306a36Sopenharmony_ci	select SWAP_IO_SPACE
66462306a36Sopenharmony_ci	select SYS_HAS_CPU_R4X00
66562306a36Sopenharmony_ci	select SYS_HAS_CPU_R5000
66662306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
66762306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
66862306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
66962306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
67062306a36Sopenharmony_ci	select WAR_R4600_V1_INDEX_ICACHEOP
67162306a36Sopenharmony_ci	select WAR_R4600_V1_HIT_CACHEOP
67262306a36Sopenharmony_ci	select WAR_R4600_V2_HIT_CACHEOP
67362306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
67462306a36Sopenharmony_ci	help
67562306a36Sopenharmony_ci	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
67662306a36Sopenharmony_ci	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
67762306a36Sopenharmony_ci	  that runs on these, say Y here.
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_ciconfig SGI_IP27
68062306a36Sopenharmony_ci	bool "SGI IP27 (Origin200/2000)"
68162306a36Sopenharmony_ci	select ARCH_HAS_PHYS_TO_DMA
68262306a36Sopenharmony_ci	select ARCH_SPARSEMEM_ENABLE
68362306a36Sopenharmony_ci	select FW_ARC
68462306a36Sopenharmony_ci	select FW_ARC64
68562306a36Sopenharmony_ci	select ARC_CMDLINE_ONLY
68662306a36Sopenharmony_ci	select BOOT_ELF64
68762306a36Sopenharmony_ci	select DEFAULT_SGI_PARTITION
68862306a36Sopenharmony_ci	select FORCE_PCI
68962306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
69062306a36Sopenharmony_ci	select HAVE_PCI
69162306a36Sopenharmony_ci	select IRQ_MIPS_CPU
69262306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
69362306a36Sopenharmony_ci	select NR_CPUS_DEFAULT_64
69462306a36Sopenharmony_ci	select PCI_DRIVERS_GENERIC
69562306a36Sopenharmony_ci	select PCI_XTALK_BRIDGE
69662306a36Sopenharmony_ci	select SYS_HAS_CPU_R10000
69762306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
69862306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
69962306a36Sopenharmony_ci	select SYS_SUPPORTS_NUMA
70062306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
70162306a36Sopenharmony_ci	select WAR_R10000_LLSC
70262306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
70362306a36Sopenharmony_ci	select NUMA
70462306a36Sopenharmony_ci	select HAVE_ARCH_NODEDATA_EXTENSION
70562306a36Sopenharmony_ci	help
70662306a36Sopenharmony_ci	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
70762306a36Sopenharmony_ci	  workstations.  To compile a Linux kernel that runs on these, say Y
70862306a36Sopenharmony_ci	  here.
70962306a36Sopenharmony_ci
71062306a36Sopenharmony_ciconfig SGI_IP28
71162306a36Sopenharmony_ci	bool "SGI IP28 (Indigo2 R10k)"
71262306a36Sopenharmony_ci	select ARC_MEMORY
71362306a36Sopenharmony_ci	select ARC_PROMLIB
71462306a36Sopenharmony_ci	select FW_ARC
71562306a36Sopenharmony_ci	select FW_ARC64
71662306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
71762306a36Sopenharmony_ci	select BOOT_ELF64
71862306a36Sopenharmony_ci	select CEVT_R4K
71962306a36Sopenharmony_ci	select CSRC_R4K
72062306a36Sopenharmony_ci	select DEFAULT_SGI_PARTITION
72162306a36Sopenharmony_ci	select DMA_NONCOHERENT
72262306a36Sopenharmony_ci	select GENERIC_ISA_DMA_SUPPORT_BROKEN
72362306a36Sopenharmony_ci	select IRQ_MIPS_CPU
72462306a36Sopenharmony_ci	select HAVE_EISA
72562306a36Sopenharmony_ci	select I8253
72662306a36Sopenharmony_ci	select I8259
72762306a36Sopenharmony_ci	select SGI_HAS_I8042
72862306a36Sopenharmony_ci	select SGI_HAS_INDYDOG
72962306a36Sopenharmony_ci	select SGI_HAS_HAL2
73062306a36Sopenharmony_ci	select SGI_HAS_SEEQ
73162306a36Sopenharmony_ci	select SGI_HAS_WD93
73262306a36Sopenharmony_ci	select SGI_HAS_ZILOG
73362306a36Sopenharmony_ci	select SWAP_IO_SPACE
73462306a36Sopenharmony_ci	select SYS_HAS_CPU_R10000
73562306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
73662306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
73762306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
73862306a36Sopenharmony_ci	select WAR_R10000_LLSC
73962306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
74062306a36Sopenharmony_ci	help
74162306a36Sopenharmony_ci	  This is the SGI Indigo2 with R10000 processor.  To compile a Linux
74262306a36Sopenharmony_ci	  kernel that runs on these, say Y here.
74362306a36Sopenharmony_ci
74462306a36Sopenharmony_ciconfig SGI_IP30
74562306a36Sopenharmony_ci	bool "SGI IP30 (Octane/Octane2)"
74662306a36Sopenharmony_ci	select ARCH_HAS_PHYS_TO_DMA
74762306a36Sopenharmony_ci	select FW_ARC
74862306a36Sopenharmony_ci	select FW_ARC64
74962306a36Sopenharmony_ci	select BOOT_ELF64
75062306a36Sopenharmony_ci	select CEVT_R4K
75162306a36Sopenharmony_ci	select CSRC_R4K
75262306a36Sopenharmony_ci	select FORCE_PCI
75362306a36Sopenharmony_ci	select SYNC_R4K if SMP
75462306a36Sopenharmony_ci	select ZONE_DMA32
75562306a36Sopenharmony_ci	select HAVE_PCI
75662306a36Sopenharmony_ci	select IRQ_MIPS_CPU
75762306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
75862306a36Sopenharmony_ci	select PCI_DRIVERS_GENERIC
75962306a36Sopenharmony_ci	select PCI_XTALK_BRIDGE
76062306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
76162306a36Sopenharmony_ci	select SYS_HAS_CPU_R10000
76262306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
76362306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
76462306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
76562306a36Sopenharmony_ci	select WAR_R10000_LLSC
76662306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
76762306a36Sopenharmony_ci	select ARC_MEMORY
76862306a36Sopenharmony_ci	help
76962306a36Sopenharmony_ci	  These are the SGI Octane and Octane2 graphics workstations.  To
77062306a36Sopenharmony_ci	  compile a Linux kernel that runs on these, say Y here.
77162306a36Sopenharmony_ci
77262306a36Sopenharmony_ciconfig SGI_IP32
77362306a36Sopenharmony_ci	bool "SGI IP32 (O2)"
77462306a36Sopenharmony_ci	select ARC_MEMORY
77562306a36Sopenharmony_ci	select ARC_PROMLIB
77662306a36Sopenharmony_ci	select ARCH_HAS_PHYS_TO_DMA
77762306a36Sopenharmony_ci	select FW_ARC
77862306a36Sopenharmony_ci	select FW_ARC32
77962306a36Sopenharmony_ci	select BOOT_ELF32
78062306a36Sopenharmony_ci	select CEVT_R4K
78162306a36Sopenharmony_ci	select CSRC_R4K
78262306a36Sopenharmony_ci	select DMA_NONCOHERENT
78362306a36Sopenharmony_ci	select HAVE_PCI
78462306a36Sopenharmony_ci	select IRQ_MIPS_CPU
78562306a36Sopenharmony_ci	select R5000_CPU_SCACHE
78662306a36Sopenharmony_ci	select RM7000_CPU_SCACHE
78762306a36Sopenharmony_ci	select SYS_HAS_CPU_R5000
78862306a36Sopenharmony_ci	select SYS_HAS_CPU_R10000 if BROKEN
78962306a36Sopenharmony_ci	select SYS_HAS_CPU_RM7000
79062306a36Sopenharmony_ci	select SYS_HAS_CPU_NEVADA
79162306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
79262306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
79362306a36Sopenharmony_ci	select WAR_ICACHE_REFILLS
79462306a36Sopenharmony_ci	help
79562306a36Sopenharmony_ci	  If you want this kernel to run on SGI O2 workstation, say Y here.
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_ciconfig SIBYTE_CRHONE
79862306a36Sopenharmony_ci	bool "Sibyte BCM91125C-CRhone"
79962306a36Sopenharmony_ci	select BOOT_ELF32
80062306a36Sopenharmony_ci	select SIBYTE_BCM1125
80162306a36Sopenharmony_ci	select SWAP_IO_SPACE
80262306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
80362306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
80462306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
80562306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
80662306a36Sopenharmony_ci
80762306a36Sopenharmony_ciconfig SIBYTE_RHONE
80862306a36Sopenharmony_ci	bool "Sibyte BCM91125E-Rhone"
80962306a36Sopenharmony_ci	select BOOT_ELF32
81062306a36Sopenharmony_ci	select SIBYTE_SB1250
81162306a36Sopenharmony_ci	select SWAP_IO_SPACE
81262306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
81362306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
81462306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
81562306a36Sopenharmony_ci
81662306a36Sopenharmony_ciconfig SIBYTE_SWARM
81762306a36Sopenharmony_ci	bool "Sibyte BCM91250A-SWARM"
81862306a36Sopenharmony_ci	select BOOT_ELF32
81962306a36Sopenharmony_ci	select HAVE_PATA_PLATFORM
82062306a36Sopenharmony_ci	select SIBYTE_SB1250
82162306a36Sopenharmony_ci	select SWAP_IO_SPACE
82262306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
82362306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
82462306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
82562306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
82662306a36Sopenharmony_ci	select ZONE_DMA32 if 64BIT
82762306a36Sopenharmony_ci	select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_ciconfig SIBYTE_LITTLESUR
83062306a36Sopenharmony_ci	bool "Sibyte BCM91250C2-LittleSur"
83162306a36Sopenharmony_ci	select BOOT_ELF32
83262306a36Sopenharmony_ci	select HAVE_PATA_PLATFORM
83362306a36Sopenharmony_ci	select SIBYTE_SB1250
83462306a36Sopenharmony_ci	select SWAP_IO_SPACE
83562306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
83662306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
83762306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
83862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
83962306a36Sopenharmony_ci	select ZONE_DMA32 if 64BIT
84062306a36Sopenharmony_ci
84162306a36Sopenharmony_ciconfig SIBYTE_SENTOSA
84262306a36Sopenharmony_ci	bool "Sibyte BCM91250E-Sentosa"
84362306a36Sopenharmony_ci	select BOOT_ELF32
84462306a36Sopenharmony_ci	select SIBYTE_SB1250
84562306a36Sopenharmony_ci	select SWAP_IO_SPACE
84662306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
84762306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
84862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
84962306a36Sopenharmony_ci	select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
85062306a36Sopenharmony_ci
85162306a36Sopenharmony_ciconfig SIBYTE_BIGSUR
85262306a36Sopenharmony_ci	bool "Sibyte BCM91480B-BigSur"
85362306a36Sopenharmony_ci	select BOOT_ELF32
85462306a36Sopenharmony_ci	select NR_CPUS_DEFAULT_4
85562306a36Sopenharmony_ci	select SIBYTE_BCM1x80
85662306a36Sopenharmony_ci	select SWAP_IO_SPACE
85762306a36Sopenharmony_ci	select SYS_HAS_CPU_SB1
85862306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
85962306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
86062306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
86162306a36Sopenharmony_ci	select ZONE_DMA32 if 64BIT
86262306a36Sopenharmony_ci	select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
86362306a36Sopenharmony_ci
86462306a36Sopenharmony_ciconfig SNI_RM
86562306a36Sopenharmony_ci	bool "SNI RM200/300/400"
86662306a36Sopenharmony_ci	select ARC_MEMORY
86762306a36Sopenharmony_ci	select ARC_PROMLIB
86862306a36Sopenharmony_ci	select FW_ARC if CPU_LITTLE_ENDIAN
86962306a36Sopenharmony_ci	select FW_ARC32 if CPU_LITTLE_ENDIAN
87062306a36Sopenharmony_ci	select FW_SNIPROM if CPU_BIG_ENDIAN
87162306a36Sopenharmony_ci	select ARCH_MAY_HAVE_PC_FDC
87262306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_PARPORT
87362306a36Sopenharmony_ci	select ARCH_MIGHT_HAVE_PC_SERIO
87462306a36Sopenharmony_ci	select BOOT_ELF32
87562306a36Sopenharmony_ci	select CEVT_R4K
87662306a36Sopenharmony_ci	select CSRC_R4K
87762306a36Sopenharmony_ci	select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
87862306a36Sopenharmony_ci	select DMA_NONCOHERENT
87962306a36Sopenharmony_ci	select GENERIC_ISA_DMA
88062306a36Sopenharmony_ci	select HAVE_EISA
88162306a36Sopenharmony_ci	select HAVE_PCSPKR_PLATFORM
88262306a36Sopenharmony_ci	select HAVE_PCI
88362306a36Sopenharmony_ci	select IRQ_MIPS_CPU
88462306a36Sopenharmony_ci	select I8253
88562306a36Sopenharmony_ci	select I8259
88662306a36Sopenharmony_ci	select ISA
88762306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_6
88862306a36Sopenharmony_ci	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
88962306a36Sopenharmony_ci	select SYS_HAS_CPU_R4X00
89062306a36Sopenharmony_ci	select SYS_HAS_CPU_R5000
89162306a36Sopenharmony_ci	select SYS_HAS_CPU_R10000
89262306a36Sopenharmony_ci	select R5000_CPU_SCACHE
89362306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
89462306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
89562306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
89662306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
89762306a36Sopenharmony_ci	select SYS_SUPPORTS_HIGHMEM
89862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
89962306a36Sopenharmony_ci	select WAR_R4600_V2_HIT_CACHEOP
90062306a36Sopenharmony_ci	help
90162306a36Sopenharmony_ci	  The SNI RM200/300/400 are MIPS-based machines manufactured by
90262306a36Sopenharmony_ci	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
90362306a36Sopenharmony_ci	  Technology and now in turn merged with Fujitsu.  Say Y here to
90462306a36Sopenharmony_ci	  support this machine type.
90562306a36Sopenharmony_ci
90662306a36Sopenharmony_ciconfig MACH_TX49XX
90762306a36Sopenharmony_ci	bool "Toshiba TX49 series based machines"
90862306a36Sopenharmony_ci	select WAR_TX49XX_ICACHE_INDEX_INV
90962306a36Sopenharmony_ci
91062306a36Sopenharmony_ciconfig MIKROTIK_RB532
91162306a36Sopenharmony_ci	bool "Mikrotik RB532 boards"
91262306a36Sopenharmony_ci	select CEVT_R4K
91362306a36Sopenharmony_ci	select CSRC_R4K
91462306a36Sopenharmony_ci	select DMA_NONCOHERENT
91562306a36Sopenharmony_ci	select HAVE_PCI
91662306a36Sopenharmony_ci	select IRQ_MIPS_CPU
91762306a36Sopenharmony_ci	select SYS_HAS_CPU_MIPS32_R1
91862306a36Sopenharmony_ci	select SYS_SUPPORTS_32BIT_KERNEL
91962306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
92062306a36Sopenharmony_ci	select SWAP_IO_SPACE
92162306a36Sopenharmony_ci	select BOOT_RAW
92262306a36Sopenharmony_ci	select GPIOLIB
92362306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_4
92462306a36Sopenharmony_ci	help
92562306a36Sopenharmony_ci	  Support the Mikrotik(tm) RouterBoard 532 series,
92662306a36Sopenharmony_ci	  based on the IDT RC32434 SoC.
92762306a36Sopenharmony_ci
92862306a36Sopenharmony_ciconfig CAVIUM_OCTEON_SOC
92962306a36Sopenharmony_ci	bool "Cavium Networks Octeon SoC based boards"
93062306a36Sopenharmony_ci	select CEVT_R4K
93162306a36Sopenharmony_ci	select ARCH_HAS_PHYS_TO_DMA
93262306a36Sopenharmony_ci	select HAVE_RAPIDIO
93362306a36Sopenharmony_ci	select PHYS_ADDR_T_64BIT
93462306a36Sopenharmony_ci	select SYS_SUPPORTS_64BIT_KERNEL
93562306a36Sopenharmony_ci	select SYS_SUPPORTS_BIG_ENDIAN
93662306a36Sopenharmony_ci	select EDAC_SUPPORT
93762306a36Sopenharmony_ci	select EDAC_ATOMIC_SCRUB
93862306a36Sopenharmony_ci	select SYS_SUPPORTS_LITTLE_ENDIAN
93962306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
94062306a36Sopenharmony_ci	select SYS_HAS_EARLY_PRINTK
94162306a36Sopenharmony_ci	select SYS_HAS_CPU_CAVIUM_OCTEON
94262306a36Sopenharmony_ci	select HAVE_PCI
94362306a36Sopenharmony_ci	select HAVE_PLAT_DELAY
94462306a36Sopenharmony_ci	select HAVE_PLAT_FW_INIT_CMDLINE
94562306a36Sopenharmony_ci	select HAVE_PLAT_MEMCPY
94662306a36Sopenharmony_ci	select ZONE_DMA32
94762306a36Sopenharmony_ci	select GPIOLIB
94862306a36Sopenharmony_ci	select USE_OF
94962306a36Sopenharmony_ci	select ARCH_SPARSEMEM_ENABLE
95062306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
95162306a36Sopenharmony_ci	select NR_CPUS_DEFAULT_64
95262306a36Sopenharmony_ci	select MIPS_NR_CPU_NR_MAP_1024
95362306a36Sopenharmony_ci	select BUILTIN_DTB
95462306a36Sopenharmony_ci	select MTD
95562306a36Sopenharmony_ci	select MTD_COMPLEX_MAPPINGS
95662306a36Sopenharmony_ci	select SWIOTLB
95762306a36Sopenharmony_ci	select SYS_SUPPORTS_RELOCATABLE
95862306a36Sopenharmony_ci	help
95962306a36Sopenharmony_ci	  This option supports all of the Octeon reference boards from Cavium
96062306a36Sopenharmony_ci	  Networks. It builds a kernel that dynamically determines the Octeon
96162306a36Sopenharmony_ci	  CPU type and supports all known board reference implementations.
96262306a36Sopenharmony_ci	  Some of the supported boards are:
96362306a36Sopenharmony_ci		EBT3000
96462306a36Sopenharmony_ci		EBH3000
96562306a36Sopenharmony_ci		EBH3100
96662306a36Sopenharmony_ci		Thunder
96762306a36Sopenharmony_ci		Kodama
96862306a36Sopenharmony_ci		Hikari
96962306a36Sopenharmony_ci	  Say Y here for most Octeon reference boards.
97062306a36Sopenharmony_ci
97162306a36Sopenharmony_ciendchoice
97262306a36Sopenharmony_ci
97362306a36Sopenharmony_cisource "arch/mips/alchemy/Kconfig"
97462306a36Sopenharmony_cisource "arch/mips/ath25/Kconfig"
97562306a36Sopenharmony_cisource "arch/mips/ath79/Kconfig"
97662306a36Sopenharmony_cisource "arch/mips/bcm47xx/Kconfig"
97762306a36Sopenharmony_cisource "arch/mips/bcm63xx/Kconfig"
97862306a36Sopenharmony_cisource "arch/mips/bmips/Kconfig"
97962306a36Sopenharmony_cisource "arch/mips/generic/Kconfig"
98062306a36Sopenharmony_cisource "arch/mips/ingenic/Kconfig"
98162306a36Sopenharmony_cisource "arch/mips/jazz/Kconfig"
98262306a36Sopenharmony_cisource "arch/mips/lantiq/Kconfig"
98362306a36Sopenharmony_cisource "arch/mips/pic32/Kconfig"
98462306a36Sopenharmony_cisource "arch/mips/ralink/Kconfig"
98562306a36Sopenharmony_cisource "arch/mips/sgi-ip27/Kconfig"
98662306a36Sopenharmony_cisource "arch/mips/sibyte/Kconfig"
98762306a36Sopenharmony_cisource "arch/mips/txx9/Kconfig"
98862306a36Sopenharmony_cisource "arch/mips/cavium-octeon/Kconfig"
98962306a36Sopenharmony_cisource "arch/mips/loongson2ef/Kconfig"
99062306a36Sopenharmony_cisource "arch/mips/loongson32/Kconfig"
99162306a36Sopenharmony_cisource "arch/mips/loongson64/Kconfig"
99262306a36Sopenharmony_ci
99362306a36Sopenharmony_ciendmenu
99462306a36Sopenharmony_ci
99562306a36Sopenharmony_ciconfig GENERIC_HWEIGHT
99662306a36Sopenharmony_ci	bool
99762306a36Sopenharmony_ci	default y
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY
100062306a36Sopenharmony_ci	bool
100162306a36Sopenharmony_ci	default y
100262306a36Sopenharmony_ci
100362306a36Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER
100462306a36Sopenharmony_ci	bool
100562306a36Sopenharmony_ci	default y
100662306a36Sopenharmony_ci
100762306a36Sopenharmony_ci#
100862306a36Sopenharmony_ci# Select some configuration options automatically based on user selections.
100962306a36Sopenharmony_ci#
101062306a36Sopenharmony_ciconfig FW_ARC
101162306a36Sopenharmony_ci	bool
101262306a36Sopenharmony_ci
101362306a36Sopenharmony_ciconfig ARCH_MAY_HAVE_PC_FDC
101462306a36Sopenharmony_ci	bool
101562306a36Sopenharmony_ci
101662306a36Sopenharmony_ciconfig BOOT_RAW
101762306a36Sopenharmony_ci	bool
101862306a36Sopenharmony_ci
101962306a36Sopenharmony_ciconfig CEVT_BCM1480
102062306a36Sopenharmony_ci	bool
102162306a36Sopenharmony_ci
102262306a36Sopenharmony_ciconfig CEVT_DS1287
102362306a36Sopenharmony_ci	bool
102462306a36Sopenharmony_ci
102562306a36Sopenharmony_ciconfig CEVT_GT641XX
102662306a36Sopenharmony_ci	bool
102762306a36Sopenharmony_ci
102862306a36Sopenharmony_ciconfig CEVT_R4K
102962306a36Sopenharmony_ci	bool
103062306a36Sopenharmony_ci
103162306a36Sopenharmony_ciconfig CEVT_SB1250
103262306a36Sopenharmony_ci	bool
103362306a36Sopenharmony_ci
103462306a36Sopenharmony_ciconfig CEVT_TXX9
103562306a36Sopenharmony_ci	bool
103662306a36Sopenharmony_ci
103762306a36Sopenharmony_ciconfig CSRC_BCM1480
103862306a36Sopenharmony_ci	bool
103962306a36Sopenharmony_ci
104062306a36Sopenharmony_ciconfig CSRC_IOASIC
104162306a36Sopenharmony_ci	bool
104262306a36Sopenharmony_ci
104362306a36Sopenharmony_ciconfig CSRC_R4K
104462306a36Sopenharmony_ci	select CLOCKSOURCE_WATCHDOG if CPU_FREQ
104562306a36Sopenharmony_ci	bool
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_ciconfig CSRC_SB1250
104862306a36Sopenharmony_ci	bool
104962306a36Sopenharmony_ci
105062306a36Sopenharmony_ciconfig MIPS_CLOCK_VSYSCALL
105162306a36Sopenharmony_ci	def_bool CSRC_R4K || CLKSRC_MIPS_GIC
105262306a36Sopenharmony_ci
105362306a36Sopenharmony_ciconfig GPIO_TXX9
105462306a36Sopenharmony_ci	select GPIOLIB
105562306a36Sopenharmony_ci	bool
105662306a36Sopenharmony_ci
105762306a36Sopenharmony_ciconfig FW_CFE
105862306a36Sopenharmony_ci	bool
105962306a36Sopenharmony_ci
106062306a36Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES
106162306a36Sopenharmony_ci	def_bool y
106262306a36Sopenharmony_ci
106362306a36Sopenharmony_ciconfig DMA_NONCOHERENT
106462306a36Sopenharmony_ci	bool
106562306a36Sopenharmony_ci	#
106662306a36Sopenharmony_ci	# MIPS allows mixing "slightly different" Cacheability and Coherency
106762306a36Sopenharmony_ci	# Attribute bits.  It is believed that the uncached access through
106862306a36Sopenharmony_ci	# KSEG1 and the implementation specific "uncached accelerated" used
106962306a36Sopenharmony_ci	# by pgprot_writcombine can be mixed, and the latter sometimes provides
107062306a36Sopenharmony_ci	# significant advantages.
107162306a36Sopenharmony_ci	#
107262306a36Sopenharmony_ci	select ARCH_HAS_SETUP_DMA_OPS
107362306a36Sopenharmony_ci	select ARCH_HAS_DMA_WRITE_COMBINE
107462306a36Sopenharmony_ci	select ARCH_HAS_DMA_PREP_COHERENT
107562306a36Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_CPU
107662306a36Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
107762306a36Sopenharmony_ci	select ARCH_HAS_DMA_SET_UNCACHED
107862306a36Sopenharmony_ci	select DMA_NONCOHERENT_MMAP
107962306a36Sopenharmony_ci	select NEED_DMA_MAP_STATE
108062306a36Sopenharmony_ci
108162306a36Sopenharmony_ciconfig SYS_HAS_EARLY_PRINTK
108262306a36Sopenharmony_ci	bool
108362306a36Sopenharmony_ci
108462306a36Sopenharmony_ciconfig SYS_SUPPORTS_HOTPLUG_CPU
108562306a36Sopenharmony_ci	bool
108662306a36Sopenharmony_ci
108762306a36Sopenharmony_ciconfig MIPS_BONITO64
108862306a36Sopenharmony_ci	bool
108962306a36Sopenharmony_ci
109062306a36Sopenharmony_ciconfig MIPS_MSC
109162306a36Sopenharmony_ci	bool
109262306a36Sopenharmony_ci
109362306a36Sopenharmony_ciconfig SYNC_R4K
109462306a36Sopenharmony_ci	bool
109562306a36Sopenharmony_ci
109662306a36Sopenharmony_ciconfig NO_IOPORT_MAP
109762306a36Sopenharmony_ci	def_bool n
109862306a36Sopenharmony_ci
109962306a36Sopenharmony_ciconfig GENERIC_CSUM
110062306a36Sopenharmony_ci	def_bool CPU_NO_LOAD_STORE_LR
110162306a36Sopenharmony_ci
110262306a36Sopenharmony_ciconfig GENERIC_ISA_DMA
110362306a36Sopenharmony_ci	bool
110462306a36Sopenharmony_ci	select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
110562306a36Sopenharmony_ci	select ISA_DMA_API
110662306a36Sopenharmony_ci
110762306a36Sopenharmony_ciconfig GENERIC_ISA_DMA_SUPPORT_BROKEN
110862306a36Sopenharmony_ci	bool
110962306a36Sopenharmony_ci	select GENERIC_ISA_DMA
111062306a36Sopenharmony_ci
111162306a36Sopenharmony_ciconfig HAVE_PLAT_DELAY
111262306a36Sopenharmony_ci	bool
111362306a36Sopenharmony_ci
111462306a36Sopenharmony_ciconfig HAVE_PLAT_FW_INIT_CMDLINE
111562306a36Sopenharmony_ci	bool
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_ciconfig HAVE_PLAT_MEMCPY
111862306a36Sopenharmony_ci	bool
111962306a36Sopenharmony_ci
112062306a36Sopenharmony_ciconfig ISA_DMA_API
112162306a36Sopenharmony_ci	bool
112262306a36Sopenharmony_ci
112362306a36Sopenharmony_ciconfig SYS_SUPPORTS_RELOCATABLE
112462306a36Sopenharmony_ci	bool
112562306a36Sopenharmony_ci	help
112662306a36Sopenharmony_ci	  Selected if the platform supports relocating the kernel.
112762306a36Sopenharmony_ci	  The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
112862306a36Sopenharmony_ci	  to allow access to command line and entropy sources.
112962306a36Sopenharmony_ci
113062306a36Sopenharmony_ci#
113162306a36Sopenharmony_ci# Endianness selection.  Sufficiently obscure so many users don't know what to
113262306a36Sopenharmony_ci# answer,so we try hard to limit the available choices.  Also the use of a
113362306a36Sopenharmony_ci# choice statement should be more obvious to the user.
113462306a36Sopenharmony_ci#
113562306a36Sopenharmony_cichoice
113662306a36Sopenharmony_ci	prompt "Endianness selection"
113762306a36Sopenharmony_ci	help
113862306a36Sopenharmony_ci	  Some MIPS machines can be configured for either little or big endian
113962306a36Sopenharmony_ci	  byte order. These modes require different kernels and a different
114062306a36Sopenharmony_ci	  Linux distribution.  In general there is one preferred byteorder for a
114162306a36Sopenharmony_ci	  particular system but some systems are just as commonly used in the
114262306a36Sopenharmony_ci	  one or the other endianness.
114362306a36Sopenharmony_ci
114462306a36Sopenharmony_ciconfig CPU_BIG_ENDIAN
114562306a36Sopenharmony_ci	bool "Big endian"
114662306a36Sopenharmony_ci	depends on SYS_SUPPORTS_BIG_ENDIAN
114762306a36Sopenharmony_ci
114862306a36Sopenharmony_ciconfig CPU_LITTLE_ENDIAN
114962306a36Sopenharmony_ci	bool "Little endian"
115062306a36Sopenharmony_ci	depends on SYS_SUPPORTS_LITTLE_ENDIAN
115162306a36Sopenharmony_ci
115262306a36Sopenharmony_ciendchoice
115362306a36Sopenharmony_ci
115462306a36Sopenharmony_ciconfig EXPORT_UASM
115562306a36Sopenharmony_ci	bool
115662306a36Sopenharmony_ci
115762306a36Sopenharmony_ciconfig SYS_SUPPORTS_APM_EMULATION
115862306a36Sopenharmony_ci	bool
115962306a36Sopenharmony_ci
116062306a36Sopenharmony_ciconfig SYS_SUPPORTS_BIG_ENDIAN
116162306a36Sopenharmony_ci	bool
116262306a36Sopenharmony_ci
116362306a36Sopenharmony_ciconfig SYS_SUPPORTS_LITTLE_ENDIAN
116462306a36Sopenharmony_ci	bool
116562306a36Sopenharmony_ci
116662306a36Sopenharmony_ciconfig MIPS_HUGE_TLB_SUPPORT
116762306a36Sopenharmony_ci	def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
116862306a36Sopenharmony_ci
116962306a36Sopenharmony_ciconfig IRQ_TXX9
117062306a36Sopenharmony_ci	bool
117162306a36Sopenharmony_ci
117262306a36Sopenharmony_ciconfig IRQ_GT641XX
117362306a36Sopenharmony_ci	bool
117462306a36Sopenharmony_ci
117562306a36Sopenharmony_ciconfig PCI_GT64XXX_PCI0
117662306a36Sopenharmony_ci	bool
117762306a36Sopenharmony_ci
117862306a36Sopenharmony_ciconfig PCI_XTALK_BRIDGE
117962306a36Sopenharmony_ci	bool
118062306a36Sopenharmony_ci
118162306a36Sopenharmony_ciconfig NO_EXCEPT_FILL
118262306a36Sopenharmony_ci	bool
118362306a36Sopenharmony_ci
118462306a36Sopenharmony_ciconfig MIPS_SPRAM
118562306a36Sopenharmony_ci	bool
118662306a36Sopenharmony_ci
118762306a36Sopenharmony_ciconfig SWAP_IO_SPACE
118862306a36Sopenharmony_ci	bool
118962306a36Sopenharmony_ci
119062306a36Sopenharmony_ciconfig SGI_HAS_INDYDOG
119162306a36Sopenharmony_ci	bool
119262306a36Sopenharmony_ci
119362306a36Sopenharmony_ciconfig SGI_HAS_HAL2
119462306a36Sopenharmony_ci	bool
119562306a36Sopenharmony_ci
119662306a36Sopenharmony_ciconfig SGI_HAS_SEEQ
119762306a36Sopenharmony_ci	bool
119862306a36Sopenharmony_ci
119962306a36Sopenharmony_ciconfig SGI_HAS_WD93
120062306a36Sopenharmony_ci	bool
120162306a36Sopenharmony_ci
120262306a36Sopenharmony_ciconfig SGI_HAS_ZILOG
120362306a36Sopenharmony_ci	bool
120462306a36Sopenharmony_ci
120562306a36Sopenharmony_ciconfig SGI_HAS_I8042
120662306a36Sopenharmony_ci	bool
120762306a36Sopenharmony_ci
120862306a36Sopenharmony_ciconfig DEFAULT_SGI_PARTITION
120962306a36Sopenharmony_ci	bool
121062306a36Sopenharmony_ci
121162306a36Sopenharmony_ciconfig FW_ARC32
121262306a36Sopenharmony_ci	bool
121362306a36Sopenharmony_ci
121462306a36Sopenharmony_ciconfig FW_SNIPROM
121562306a36Sopenharmony_ci	bool
121662306a36Sopenharmony_ci
121762306a36Sopenharmony_ciconfig BOOT_ELF32
121862306a36Sopenharmony_ci	bool
121962306a36Sopenharmony_ci
122062306a36Sopenharmony_ciconfig MIPS_L1_CACHE_SHIFT_4
122162306a36Sopenharmony_ci	bool
122262306a36Sopenharmony_ci
122362306a36Sopenharmony_ciconfig MIPS_L1_CACHE_SHIFT_5
122462306a36Sopenharmony_ci	bool
122562306a36Sopenharmony_ci
122662306a36Sopenharmony_ciconfig MIPS_L1_CACHE_SHIFT_6
122762306a36Sopenharmony_ci	bool
122862306a36Sopenharmony_ci
122962306a36Sopenharmony_ciconfig MIPS_L1_CACHE_SHIFT_7
123062306a36Sopenharmony_ci	bool
123162306a36Sopenharmony_ci
123262306a36Sopenharmony_ciconfig MIPS_L1_CACHE_SHIFT
123362306a36Sopenharmony_ci	int
123462306a36Sopenharmony_ci	default "7" if MIPS_L1_CACHE_SHIFT_7
123562306a36Sopenharmony_ci	default "6" if MIPS_L1_CACHE_SHIFT_6
123662306a36Sopenharmony_ci	default "5" if MIPS_L1_CACHE_SHIFT_5
123762306a36Sopenharmony_ci	default "4" if MIPS_L1_CACHE_SHIFT_4
123862306a36Sopenharmony_ci	default "5"
123962306a36Sopenharmony_ci
124062306a36Sopenharmony_ciconfig ARC_CMDLINE_ONLY
124162306a36Sopenharmony_ci	bool
124262306a36Sopenharmony_ci
124362306a36Sopenharmony_ciconfig ARC_CONSOLE
124462306a36Sopenharmony_ci	bool "ARC console support"
124562306a36Sopenharmony_ci	depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
124662306a36Sopenharmony_ci
124762306a36Sopenharmony_ciconfig ARC_MEMORY
124862306a36Sopenharmony_ci	bool
124962306a36Sopenharmony_ci
125062306a36Sopenharmony_ciconfig ARC_PROMLIB
125162306a36Sopenharmony_ci	bool
125262306a36Sopenharmony_ci
125362306a36Sopenharmony_ciconfig FW_ARC64
125462306a36Sopenharmony_ci	bool
125562306a36Sopenharmony_ci
125662306a36Sopenharmony_ciconfig BOOT_ELF64
125762306a36Sopenharmony_ci	bool
125862306a36Sopenharmony_ci
125962306a36Sopenharmony_cimenu "CPU selection"
126062306a36Sopenharmony_ci
126162306a36Sopenharmony_cichoice
126262306a36Sopenharmony_ci	prompt "CPU type"
126362306a36Sopenharmony_ci	default CPU_R4X00
126462306a36Sopenharmony_ci
126562306a36Sopenharmony_ciconfig CPU_LOONGSON64
126662306a36Sopenharmony_ci	bool "Loongson 64-bit CPU"
126762306a36Sopenharmony_ci	depends on SYS_HAS_CPU_LOONGSON64
126862306a36Sopenharmony_ci	select ARCH_HAS_PHYS_TO_DMA
126962306a36Sopenharmony_ci	select CPU_MIPSR2
127062306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
127162306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
127262306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
127362306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
127462306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
127562306a36Sopenharmony_ci	select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
127662306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_VI
127762306a36Sopenharmony_ci	select DMA_NONCOHERENT
127862306a36Sopenharmony_ci	select WEAK_ORDERING
127962306a36Sopenharmony_ci	select WEAK_REORDERING_BEYOND_LLSC
128062306a36Sopenharmony_ci	select MIPS_ASID_BITS_VARIABLE
128162306a36Sopenharmony_ci	select MIPS_PGD_C0_CONTEXT
128262306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_6
128362306a36Sopenharmony_ci	select MIPS_FP_SUPPORT
128462306a36Sopenharmony_ci	select GPIOLIB
128562306a36Sopenharmony_ci	select SWIOTLB
128662306a36Sopenharmony_ci	select HAVE_KVM
128762306a36Sopenharmony_ci	help
128862306a36Sopenharmony_ci	  The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
128962306a36Sopenharmony_ci	  cores implements the MIPS64R2 instruction set with many extensions,
129062306a36Sopenharmony_ci	  including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
129162306a36Sopenharmony_ci	  3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
129262306a36Sopenharmony_ci	  Loongson-2E/2F is not covered here and will be removed in future.
129362306a36Sopenharmony_ci
129462306a36Sopenharmony_ciconfig LOONGSON3_ENHANCEMENT
129562306a36Sopenharmony_ci	bool "New Loongson-3 CPU Enhancements"
129662306a36Sopenharmony_ci	default n
129762306a36Sopenharmony_ci	depends on CPU_LOONGSON64
129862306a36Sopenharmony_ci	help
129962306a36Sopenharmony_ci	  New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
130062306a36Sopenharmony_ci	  R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
130162306a36Sopenharmony_ci	  FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
130262306a36Sopenharmony_ci	  Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
130362306a36Sopenharmony_ci	  Fast TLB refill support, etc.
130462306a36Sopenharmony_ci
130562306a36Sopenharmony_ci	  This option enable those enhancements which are not probed at run
130662306a36Sopenharmony_ci	  time. If you want a generic kernel to run on all Loongson 3 machines,
130762306a36Sopenharmony_ci	  please say 'N' here. If you want a high-performance kernel to run on
130862306a36Sopenharmony_ci	  new Loongson-3 machines only, please say 'Y' here.
130962306a36Sopenharmony_ci
131062306a36Sopenharmony_ciconfig CPU_LOONGSON3_WORKAROUNDS
131162306a36Sopenharmony_ci	bool "Loongson-3 LLSC Workarounds"
131262306a36Sopenharmony_ci	default y if SMP
131362306a36Sopenharmony_ci	depends on CPU_LOONGSON64
131462306a36Sopenharmony_ci	help
131562306a36Sopenharmony_ci	  Loongson-3 processors have the llsc issues which require workarounds.
131662306a36Sopenharmony_ci	  Without workarounds the system may hang unexpectedly.
131762306a36Sopenharmony_ci
131862306a36Sopenharmony_ci	  Say Y, unless you know what you are doing.
131962306a36Sopenharmony_ci
132062306a36Sopenharmony_ciconfig CPU_LOONGSON3_CPUCFG_EMULATION
132162306a36Sopenharmony_ci	bool "Emulate the CPUCFG instruction on older Loongson cores"
132262306a36Sopenharmony_ci	default y
132362306a36Sopenharmony_ci	depends on CPU_LOONGSON64
132462306a36Sopenharmony_ci	help
132562306a36Sopenharmony_ci	  Loongson-3A R4 and newer have the CPUCFG instruction available for
132662306a36Sopenharmony_ci	  userland to query CPU capabilities, much like CPUID on x86. This
132762306a36Sopenharmony_ci	  option provides emulation of the instruction on older Loongson
132862306a36Sopenharmony_ci	  cores, back to Loongson-3A1000.
132962306a36Sopenharmony_ci
133062306a36Sopenharmony_ci	  If unsure, please say Y.
133162306a36Sopenharmony_ci
133262306a36Sopenharmony_ciconfig CPU_LOONGSON2E
133362306a36Sopenharmony_ci	bool "Loongson 2E"
133462306a36Sopenharmony_ci	depends on SYS_HAS_CPU_LOONGSON2E
133562306a36Sopenharmony_ci	select CPU_LOONGSON2EF
133662306a36Sopenharmony_ci	help
133762306a36Sopenharmony_ci	  The Loongson 2E processor implements the MIPS III instruction set
133862306a36Sopenharmony_ci	  with many extensions.
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_ci	  It has an internal FPGA northbridge, which is compatible to
134162306a36Sopenharmony_ci	  bonito64.
134262306a36Sopenharmony_ci
134362306a36Sopenharmony_ciconfig CPU_LOONGSON2F
134462306a36Sopenharmony_ci	bool "Loongson 2F"
134562306a36Sopenharmony_ci	depends on SYS_HAS_CPU_LOONGSON2F
134662306a36Sopenharmony_ci	select CPU_LOONGSON2EF
134762306a36Sopenharmony_ci	help
134862306a36Sopenharmony_ci	  The Loongson 2F processor implements the MIPS III instruction set
134962306a36Sopenharmony_ci	  with many extensions.
135062306a36Sopenharmony_ci
135162306a36Sopenharmony_ci	  Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
135262306a36Sopenharmony_ci	  have a similar programming interface with FPGA northbridge used in
135362306a36Sopenharmony_ci	  Loongson2E.
135462306a36Sopenharmony_ci
135562306a36Sopenharmony_ciconfig CPU_LOONGSON1B
135662306a36Sopenharmony_ci	bool "Loongson 1B"
135762306a36Sopenharmony_ci	depends on SYS_HAS_CPU_LOONGSON1B
135862306a36Sopenharmony_ci	select CPU_LOONGSON32
135962306a36Sopenharmony_ci	select LEDS_GPIO_REGISTER
136062306a36Sopenharmony_ci	help
136162306a36Sopenharmony_ci	  The Loongson 1B is a 32-bit SoC, which implements the MIPS32
136262306a36Sopenharmony_ci	  Release 1 instruction set and part of the MIPS32 Release 2
136362306a36Sopenharmony_ci	  instruction set.
136462306a36Sopenharmony_ci
136562306a36Sopenharmony_ciconfig CPU_LOONGSON1C
136662306a36Sopenharmony_ci	bool "Loongson 1C"
136762306a36Sopenharmony_ci	depends on SYS_HAS_CPU_LOONGSON1C
136862306a36Sopenharmony_ci	select CPU_LOONGSON32
136962306a36Sopenharmony_ci	select LEDS_GPIO_REGISTER
137062306a36Sopenharmony_ci	help
137162306a36Sopenharmony_ci	  The Loongson 1C is a 32-bit SoC, which implements the MIPS32
137262306a36Sopenharmony_ci	  Release 1 instruction set and part of the MIPS32 Release 2
137362306a36Sopenharmony_ci	  instruction set.
137462306a36Sopenharmony_ci
137562306a36Sopenharmony_ciconfig CPU_MIPS32_R1
137662306a36Sopenharmony_ci	bool "MIPS32 Release 1"
137762306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R1
137862306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
137962306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
138062306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
138162306a36Sopenharmony_ci	help
138262306a36Sopenharmony_ci	  Choose this option to build a kernel for release 1 or later of the
138362306a36Sopenharmony_ci	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
138462306a36Sopenharmony_ci	  MIPS processor are based on a MIPS32 processor.  If you know the
138562306a36Sopenharmony_ci	  specific type of processor in your system, choose those that one
138662306a36Sopenharmony_ci	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
138762306a36Sopenharmony_ci	  Release 2 of the MIPS32 architecture is available since several
138862306a36Sopenharmony_ci	  years so chances are you even have a MIPS32 Release 2 processor
138962306a36Sopenharmony_ci	  in which case you should choose CPU_MIPS32_R2 instead for better
139062306a36Sopenharmony_ci	  performance.
139162306a36Sopenharmony_ci
139262306a36Sopenharmony_ciconfig CPU_MIPS32_R2
139362306a36Sopenharmony_ci	bool "MIPS32 Release 2"
139462306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R2
139562306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
139662306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
139762306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
139862306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
139962306a36Sopenharmony_ci	select HAVE_KVM
140062306a36Sopenharmony_ci	help
140162306a36Sopenharmony_ci	  Choose this option to build a kernel for release 2 or later of the
140262306a36Sopenharmony_ci	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
140362306a36Sopenharmony_ci	  MIPS processor are based on a MIPS32 processor.  If you know the
140462306a36Sopenharmony_ci	  specific type of processor in your system, choose those that one
140562306a36Sopenharmony_ci	  otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
140662306a36Sopenharmony_ci
140762306a36Sopenharmony_ciconfig CPU_MIPS32_R5
140862306a36Sopenharmony_ci	bool "MIPS32 Release 5"
140962306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R5
141062306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
141162306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
141262306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
141362306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
141462306a36Sopenharmony_ci	select HAVE_KVM
141562306a36Sopenharmony_ci	select MIPS_O32_FP64_SUPPORT
141662306a36Sopenharmony_ci	help
141762306a36Sopenharmony_ci	  Choose this option to build a kernel for release 5 or later of the
141862306a36Sopenharmony_ci	  MIPS32 architecture.  New MIPS processors, starting with the Warrior
141962306a36Sopenharmony_ci	  family, are based on a MIPS32r5 processor. If you own an older
142062306a36Sopenharmony_ci	  processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
142162306a36Sopenharmony_ci
142262306a36Sopenharmony_ciconfig CPU_MIPS32_R6
142362306a36Sopenharmony_ci	bool "MIPS32 Release 6"
142462306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R6
142562306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
142662306a36Sopenharmony_ci	select CPU_NO_LOAD_STORE_LR
142762306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
142862306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
142962306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
143062306a36Sopenharmony_ci	select HAVE_KVM
143162306a36Sopenharmony_ci	select MIPS_O32_FP64_SUPPORT
143262306a36Sopenharmony_ci	help
143362306a36Sopenharmony_ci	  Choose this option to build a kernel for release 6 or later of the
143462306a36Sopenharmony_ci	  MIPS32 architecture.  New MIPS processors, starting with the Warrior
143562306a36Sopenharmony_ci	  family, are based on a MIPS32r6 processor. If you own an older
143662306a36Sopenharmony_ci	  processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
143762306a36Sopenharmony_ci
143862306a36Sopenharmony_ciconfig CPU_MIPS64_R1
143962306a36Sopenharmony_ci	bool "MIPS64 Release 1"
144062306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS64_R1
144162306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
144262306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
144362306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
144462306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
144562306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
144662306a36Sopenharmony_ci	help
144762306a36Sopenharmony_ci	  Choose this option to build a kernel for release 1 or later of the
144862306a36Sopenharmony_ci	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
144962306a36Sopenharmony_ci	  MIPS processor are based on a MIPS64 processor.  If you know the
145062306a36Sopenharmony_ci	  specific type of processor in your system, choose those that one
145162306a36Sopenharmony_ci	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
145262306a36Sopenharmony_ci	  Release 2 of the MIPS64 architecture is available since several
145362306a36Sopenharmony_ci	  years so chances are you even have a MIPS64 Release 2 processor
145462306a36Sopenharmony_ci	  in which case you should choose CPU_MIPS64_R2 instead for better
145562306a36Sopenharmony_ci	  performance.
145662306a36Sopenharmony_ci
145762306a36Sopenharmony_ciconfig CPU_MIPS64_R2
145862306a36Sopenharmony_ci	bool "MIPS64 Release 2"
145962306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS64_R2
146062306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
146162306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
146262306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
146362306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
146462306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
146562306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
146662306a36Sopenharmony_ci	select HAVE_KVM
146762306a36Sopenharmony_ci	help
146862306a36Sopenharmony_ci	  Choose this option to build a kernel for release 2 or later of the
146962306a36Sopenharmony_ci	  MIPS64 architecture.  Many modern embedded systems with a 64-bit
147062306a36Sopenharmony_ci	  MIPS processor are based on a MIPS64 processor.  If you know the
147162306a36Sopenharmony_ci	  specific type of processor in your system, choose those that one
147262306a36Sopenharmony_ci	  otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
147362306a36Sopenharmony_ci
147462306a36Sopenharmony_ciconfig CPU_MIPS64_R5
147562306a36Sopenharmony_ci	bool "MIPS64 Release 5"
147662306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS64_R5
147762306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
147862306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
147962306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
148062306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
148162306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
148262306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
148362306a36Sopenharmony_ci	select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
148462306a36Sopenharmony_ci	select HAVE_KVM
148562306a36Sopenharmony_ci	help
148662306a36Sopenharmony_ci	  Choose this option to build a kernel for release 5 or later of the
148762306a36Sopenharmony_ci	  MIPS64 architecture.  This is a intermediate MIPS architecture
148862306a36Sopenharmony_ci	  release partly implementing release 6 features. Though there is no
148962306a36Sopenharmony_ci	  any hardware known to be based on this release.
149062306a36Sopenharmony_ci
149162306a36Sopenharmony_ciconfig CPU_MIPS64_R6
149262306a36Sopenharmony_ci	bool "MIPS64 Release 6"
149362306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS64_R6
149462306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
149562306a36Sopenharmony_ci	select CPU_NO_LOAD_STORE_LR
149662306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
149762306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
149862306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
149962306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
150062306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
150162306a36Sopenharmony_ci	select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
150262306a36Sopenharmony_ci	select HAVE_KVM
150362306a36Sopenharmony_ci	help
150462306a36Sopenharmony_ci	  Choose this option to build a kernel for release 6 or later of the
150562306a36Sopenharmony_ci	  MIPS64 architecture.  New MIPS processors, starting with the Warrior
150662306a36Sopenharmony_ci	  family, are based on a MIPS64r6 processor. If you own an older
150762306a36Sopenharmony_ci	  processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
150862306a36Sopenharmony_ci
150962306a36Sopenharmony_ciconfig CPU_P5600
151062306a36Sopenharmony_ci	bool "MIPS Warrior P5600"
151162306a36Sopenharmony_ci	depends on SYS_HAS_CPU_P5600
151262306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
151362306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
151462306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
151562306a36Sopenharmony_ci	select CPU_SUPPORTS_MSA
151662306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
151762306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_VI
151862306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_EI
151962306a36Sopenharmony_ci	select HAVE_KVM
152062306a36Sopenharmony_ci	select MIPS_O32_FP64_SUPPORT
152162306a36Sopenharmony_ci	help
152262306a36Sopenharmony_ci	  Choose this option to build a kernel for MIPS Warrior P5600 CPU.
152362306a36Sopenharmony_ci	  It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
152462306a36Sopenharmony_ci	  MMU with two-levels TLB, UCA, MSA, MDU core level features and system
152562306a36Sopenharmony_ci	  level features like up to six P5600 calculation cores, CM2 with L2
152662306a36Sopenharmony_ci	  cache, IOCU/IOMMU (though might be unused depending on the system-
152762306a36Sopenharmony_ci	  specific IP core configuration), GIC, CPC, virtualisation module,
152862306a36Sopenharmony_ci	  eJTAG and PDtrace.
152962306a36Sopenharmony_ci
153062306a36Sopenharmony_ciconfig CPU_R3000
153162306a36Sopenharmony_ci	bool "R3000"
153262306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R3000
153362306a36Sopenharmony_ci	select CPU_HAS_WB
153462306a36Sopenharmony_ci	select CPU_R3K_TLB
153562306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
153662306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
153762306a36Sopenharmony_ci	help
153862306a36Sopenharmony_ci	  Please make sure to pick the right CPU type. Linux/MIPS is not
153962306a36Sopenharmony_ci	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
154062306a36Sopenharmony_ci	  *not* work on R4000 machines and vice versa.  However, since most
154162306a36Sopenharmony_ci	  of the supported machines have an R4000 (or similar) CPU, R4x00
154262306a36Sopenharmony_ci	  might be a safe bet.  If the resulting kernel does not work,
154362306a36Sopenharmony_ci	  try to recompile with R3000.
154462306a36Sopenharmony_ci
154562306a36Sopenharmony_ciconfig CPU_R4300
154662306a36Sopenharmony_ci	bool "R4300"
154762306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R4300
154862306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
154962306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
155062306a36Sopenharmony_ci	help
155162306a36Sopenharmony_ci	  MIPS Technologies R4300-series processors.
155262306a36Sopenharmony_ci
155362306a36Sopenharmony_ciconfig CPU_R4X00
155462306a36Sopenharmony_ci	bool "R4x00"
155562306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R4X00
155662306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
155762306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
155862306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
155962306a36Sopenharmony_ci	help
156062306a36Sopenharmony_ci	  MIPS Technologies R4000-series processors other than 4300, including
156162306a36Sopenharmony_ci	  the R4000, R4400, R4600, and 4700.
156262306a36Sopenharmony_ci
156362306a36Sopenharmony_ciconfig CPU_TX49XX
156462306a36Sopenharmony_ci	bool "R49XX"
156562306a36Sopenharmony_ci	depends on SYS_HAS_CPU_TX49XX
156662306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
156762306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
156862306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
156962306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
157062306a36Sopenharmony_ci
157162306a36Sopenharmony_ciconfig CPU_R5000
157262306a36Sopenharmony_ci	bool "R5000"
157362306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R5000
157462306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
157562306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
157662306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
157762306a36Sopenharmony_ci	help
157862306a36Sopenharmony_ci	  MIPS Technologies R5000-series processors other than the Nevada.
157962306a36Sopenharmony_ci
158062306a36Sopenharmony_ciconfig CPU_R5500
158162306a36Sopenharmony_ci	bool "R5500"
158262306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R5500
158362306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
158462306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
158562306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
158662306a36Sopenharmony_ci	help
158762306a36Sopenharmony_ci	  NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
158862306a36Sopenharmony_ci	  instruction set.
158962306a36Sopenharmony_ci
159062306a36Sopenharmony_ciconfig CPU_NEVADA
159162306a36Sopenharmony_ci	bool "RM52xx"
159262306a36Sopenharmony_ci	depends on SYS_HAS_CPU_NEVADA
159362306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
159462306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
159562306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
159662306a36Sopenharmony_ci	help
159762306a36Sopenharmony_ci	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
159862306a36Sopenharmony_ci
159962306a36Sopenharmony_ciconfig CPU_R10000
160062306a36Sopenharmony_ci	bool "R10000"
160162306a36Sopenharmony_ci	depends on SYS_HAS_CPU_R10000
160262306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
160362306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
160462306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
160562306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
160662306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
160762306a36Sopenharmony_ci	help
160862306a36Sopenharmony_ci	  MIPS Technologies R10000-series processors.
160962306a36Sopenharmony_ci
161062306a36Sopenharmony_ciconfig CPU_RM7000
161162306a36Sopenharmony_ci	bool "RM7000"
161262306a36Sopenharmony_ci	depends on SYS_HAS_CPU_RM7000
161362306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
161462306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
161562306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
161662306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
161762306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
161862306a36Sopenharmony_ci
161962306a36Sopenharmony_ciconfig CPU_SB1
162062306a36Sopenharmony_ci	bool "SB1"
162162306a36Sopenharmony_ci	depends on SYS_HAS_CPU_SB1
162262306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
162362306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
162462306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
162562306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
162662306a36Sopenharmony_ci	select WEAK_ORDERING
162762306a36Sopenharmony_ci
162862306a36Sopenharmony_ciconfig CPU_CAVIUM_OCTEON
162962306a36Sopenharmony_ci	bool "Cavium Octeon processor"
163062306a36Sopenharmony_ci	depends on SYS_HAS_CPU_CAVIUM_OCTEON
163162306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
163262306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
163362306a36Sopenharmony_ci	select WEAK_ORDERING
163462306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
163562306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
163662306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
163762306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
163862306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
163962306a36Sopenharmony_ci	select HAVE_KVM
164062306a36Sopenharmony_ci	help
164162306a36Sopenharmony_ci	  The Cavium Octeon processor is a highly integrated chip containing
164262306a36Sopenharmony_ci	  many ethernet hardware widgets for networking tasks. The processor
164362306a36Sopenharmony_ci	  can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
164462306a36Sopenharmony_ci	  Full details can be found at http://www.caviumnetworks.com.
164562306a36Sopenharmony_ci
164662306a36Sopenharmony_ciconfig CPU_BMIPS
164762306a36Sopenharmony_ci	bool "Broadcom BMIPS"
164862306a36Sopenharmony_ci	depends on SYS_HAS_CPU_BMIPS
164962306a36Sopenharmony_ci	select CPU_MIPS32
165062306a36Sopenharmony_ci	select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
165162306a36Sopenharmony_ci	select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
165262306a36Sopenharmony_ci	select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
165362306a36Sopenharmony_ci	select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
165462306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
165562306a36Sopenharmony_ci	select DMA_NONCOHERENT
165662306a36Sopenharmony_ci	select IRQ_MIPS_CPU
165762306a36Sopenharmony_ci	select SWAP_IO_SPACE
165862306a36Sopenharmony_ci	select WEAK_ORDERING
165962306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
166062306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
166162306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
166262306a36Sopenharmony_ci	select MIPS_EXTERNAL_TIMER
166362306a36Sopenharmony_ci	select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
166462306a36Sopenharmony_ci	help
166562306a36Sopenharmony_ci	  Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
166662306a36Sopenharmony_ci
166762306a36Sopenharmony_ciendchoice
166862306a36Sopenharmony_ci
166962306a36Sopenharmony_ciconfig CPU_MIPS32_3_5_FEATURES
167062306a36Sopenharmony_ci	bool "MIPS32 Release 3.5 Features"
167162306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R3_5
167262306a36Sopenharmony_ci	depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
167362306a36Sopenharmony_ci		   CPU_P5600
167462306a36Sopenharmony_ci	help
167562306a36Sopenharmony_ci	  Choose this option to build a kernel for release 2 or later of the
167662306a36Sopenharmony_ci	  MIPS32 architecture including features from the 3.5 release such as
167762306a36Sopenharmony_ci	  support for Enhanced Virtual Addressing (EVA).
167862306a36Sopenharmony_ci
167962306a36Sopenharmony_ciconfig CPU_MIPS32_3_5_EVA
168062306a36Sopenharmony_ci	bool "Enhanced Virtual Addressing (EVA)"
168162306a36Sopenharmony_ci	depends on CPU_MIPS32_3_5_FEATURES
168262306a36Sopenharmony_ci	select EVA
168362306a36Sopenharmony_ci	default y
168462306a36Sopenharmony_ci	help
168562306a36Sopenharmony_ci	  Choose this option if you want to enable the Enhanced Virtual
168662306a36Sopenharmony_ci	  Addressing (EVA) on your MIPS32 core (such as proAptiv).
168762306a36Sopenharmony_ci	  One of its primary benefits is an increase in the maximum size
168862306a36Sopenharmony_ci	  of lowmem (up to 3GB). If unsure, say 'N' here.
168962306a36Sopenharmony_ci
169062306a36Sopenharmony_ciconfig CPU_MIPS32_R5_FEATURES
169162306a36Sopenharmony_ci	bool "MIPS32 Release 5 Features"
169262306a36Sopenharmony_ci	depends on SYS_HAS_CPU_MIPS32_R5
169362306a36Sopenharmony_ci	depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
169462306a36Sopenharmony_ci	help
169562306a36Sopenharmony_ci	  Choose this option to build a kernel for release 2 or later of the
169662306a36Sopenharmony_ci	  MIPS32 architecture including features from release 5 such as
169762306a36Sopenharmony_ci	  support for Extended Physical Addressing (XPA).
169862306a36Sopenharmony_ci
169962306a36Sopenharmony_ciconfig CPU_MIPS32_R5_XPA
170062306a36Sopenharmony_ci	bool "Extended Physical Addressing (XPA)"
170162306a36Sopenharmony_ci	depends on CPU_MIPS32_R5_FEATURES
170262306a36Sopenharmony_ci	depends on !EVA
170362306a36Sopenharmony_ci	depends on !PAGE_SIZE_4KB
170462306a36Sopenharmony_ci	depends on SYS_SUPPORTS_HIGHMEM
170562306a36Sopenharmony_ci	select XPA
170662306a36Sopenharmony_ci	select HIGHMEM
170762306a36Sopenharmony_ci	select PHYS_ADDR_T_64BIT
170862306a36Sopenharmony_ci	default n
170962306a36Sopenharmony_ci	help
171062306a36Sopenharmony_ci	  Choose this option if you want to enable the Extended Physical
171162306a36Sopenharmony_ci	  Addressing (XPA) on your MIPS32 core (such as P5600 series). The
171262306a36Sopenharmony_ci	  benefit is to increase physical addressing equal to or greater
171362306a36Sopenharmony_ci	  than 40 bits. Note that this has the side effect of turning on
171462306a36Sopenharmony_ci	  64-bit addressing which in turn makes the PTEs 64-bit in size.
171562306a36Sopenharmony_ci	  If unsure, say 'N' here.
171662306a36Sopenharmony_ci
171762306a36Sopenharmony_ciif CPU_LOONGSON2F
171862306a36Sopenharmony_ciconfig CPU_NOP_WORKAROUNDS
171962306a36Sopenharmony_ci	bool
172062306a36Sopenharmony_ci
172162306a36Sopenharmony_ciconfig CPU_JUMP_WORKAROUNDS
172262306a36Sopenharmony_ci	bool
172362306a36Sopenharmony_ci
172462306a36Sopenharmony_ciconfig CPU_LOONGSON2F_WORKAROUNDS
172562306a36Sopenharmony_ci	bool "Loongson 2F Workarounds"
172662306a36Sopenharmony_ci	default y
172762306a36Sopenharmony_ci	select CPU_NOP_WORKAROUNDS
172862306a36Sopenharmony_ci	select CPU_JUMP_WORKAROUNDS
172962306a36Sopenharmony_ci	help
173062306a36Sopenharmony_ci	  Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
173162306a36Sopenharmony_ci	  require workarounds.  Without workarounds the system may hang
173262306a36Sopenharmony_ci	  unexpectedly.  For more information please refer to the gas
173362306a36Sopenharmony_ci	  -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
173462306a36Sopenharmony_ci
173562306a36Sopenharmony_ci	  Loongson 2F03 and later have fixed these issues and no workarounds
173662306a36Sopenharmony_ci	  are needed.  The workarounds have no significant side effect on them
173762306a36Sopenharmony_ci	  but may decrease the performance of the system so this option should
173862306a36Sopenharmony_ci	  be disabled unless the kernel is intended to be run on 2F01 or 2F02
173962306a36Sopenharmony_ci	  systems.
174062306a36Sopenharmony_ci
174162306a36Sopenharmony_ci	  If unsure, please say Y.
174262306a36Sopenharmony_ciendif # CPU_LOONGSON2F
174362306a36Sopenharmony_ci
174462306a36Sopenharmony_ciconfig SYS_SUPPORTS_ZBOOT
174562306a36Sopenharmony_ci	bool
174662306a36Sopenharmony_ci	select HAVE_KERNEL_GZIP
174762306a36Sopenharmony_ci	select HAVE_KERNEL_BZIP2
174862306a36Sopenharmony_ci	select HAVE_KERNEL_LZ4
174962306a36Sopenharmony_ci	select HAVE_KERNEL_LZMA
175062306a36Sopenharmony_ci	select HAVE_KERNEL_LZO
175162306a36Sopenharmony_ci	select HAVE_KERNEL_XZ
175262306a36Sopenharmony_ci	select HAVE_KERNEL_ZSTD
175362306a36Sopenharmony_ci
175462306a36Sopenharmony_ciconfig SYS_SUPPORTS_ZBOOT_UART16550
175562306a36Sopenharmony_ci	bool
175662306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
175762306a36Sopenharmony_ci
175862306a36Sopenharmony_ciconfig SYS_SUPPORTS_ZBOOT_UART_PROM
175962306a36Sopenharmony_ci	bool
176062306a36Sopenharmony_ci	select SYS_SUPPORTS_ZBOOT
176162306a36Sopenharmony_ci
176262306a36Sopenharmony_ciconfig CPU_LOONGSON2EF
176362306a36Sopenharmony_ci	bool
176462306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
176562306a36Sopenharmony_ci	select CPU_SUPPORTS_64BIT_KERNEL
176662306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
176762306a36Sopenharmony_ci	select CPU_SUPPORTS_HUGEPAGES
176862306a36Sopenharmony_ci
176962306a36Sopenharmony_ciconfig CPU_LOONGSON32
177062306a36Sopenharmony_ci	bool
177162306a36Sopenharmony_ci	select CPU_MIPS32
177262306a36Sopenharmony_ci	select CPU_MIPSR2
177362306a36Sopenharmony_ci	select CPU_HAS_PREFETCH
177462306a36Sopenharmony_ci	select CPU_SUPPORTS_32BIT_KERNEL
177562306a36Sopenharmony_ci	select CPU_SUPPORTS_HIGHMEM
177662306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
177762306a36Sopenharmony_ci
177862306a36Sopenharmony_ciconfig CPU_BMIPS32_3300
177962306a36Sopenharmony_ci	select SMP_UP if SMP
178062306a36Sopenharmony_ci	bool
178162306a36Sopenharmony_ci
178262306a36Sopenharmony_ciconfig CPU_BMIPS4350
178362306a36Sopenharmony_ci	bool
178462306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
178562306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU
178662306a36Sopenharmony_ci
178762306a36Sopenharmony_ciconfig CPU_BMIPS4380
178862306a36Sopenharmony_ci	bool
178962306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_6
179062306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
179162306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU
179262306a36Sopenharmony_ci	select CPU_HAS_RIXI
179362306a36Sopenharmony_ci
179462306a36Sopenharmony_ciconfig CPU_BMIPS5000
179562306a36Sopenharmony_ci	bool
179662306a36Sopenharmony_ci	select MIPS_CPU_SCACHE
179762306a36Sopenharmony_ci	select MIPS_L1_CACHE_SHIFT_7
179862306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
179962306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU
180062306a36Sopenharmony_ci	select CPU_HAS_RIXI
180162306a36Sopenharmony_ci
180262306a36Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON64
180362306a36Sopenharmony_ci	bool
180462306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
180562306a36Sopenharmony_ci	select CPU_HAS_RIXI
180662306a36Sopenharmony_ci
180762306a36Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON2E
180862306a36Sopenharmony_ci	bool
180962306a36Sopenharmony_ci
181062306a36Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON2F
181162306a36Sopenharmony_ci	bool
181262306a36Sopenharmony_ci	select CPU_SUPPORTS_CPUFREQ
181362306a36Sopenharmony_ci	select CPU_SUPPORTS_ADDRWINCFG if 64BIT
181462306a36Sopenharmony_ci
181562306a36Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON1B
181662306a36Sopenharmony_ci	bool
181762306a36Sopenharmony_ci
181862306a36Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON1C
181962306a36Sopenharmony_ci	bool
182062306a36Sopenharmony_ci
182162306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS32_R1
182262306a36Sopenharmony_ci	bool
182362306a36Sopenharmony_ci
182462306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS32_R2
182562306a36Sopenharmony_ci	bool
182662306a36Sopenharmony_ci
182762306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS32_R3_5
182862306a36Sopenharmony_ci	bool
182962306a36Sopenharmony_ci
183062306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS32_R5
183162306a36Sopenharmony_ci	bool
183262306a36Sopenharmony_ci
183362306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS32_R6
183462306a36Sopenharmony_ci	bool
183562306a36Sopenharmony_ci
183662306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS64_R1
183762306a36Sopenharmony_ci	bool
183862306a36Sopenharmony_ci
183962306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS64_R2
184062306a36Sopenharmony_ci	bool
184162306a36Sopenharmony_ci
184262306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS64_R5
184362306a36Sopenharmony_ci	bool
184462306a36Sopenharmony_ci
184562306a36Sopenharmony_ciconfig SYS_HAS_CPU_MIPS64_R6
184662306a36Sopenharmony_ci	bool
184762306a36Sopenharmony_ci
184862306a36Sopenharmony_ciconfig SYS_HAS_CPU_P5600
184962306a36Sopenharmony_ci	bool
185062306a36Sopenharmony_ci
185162306a36Sopenharmony_ciconfig SYS_HAS_CPU_R3000
185262306a36Sopenharmony_ci	bool
185362306a36Sopenharmony_ci
185462306a36Sopenharmony_ciconfig SYS_HAS_CPU_R4300
185562306a36Sopenharmony_ci	bool
185662306a36Sopenharmony_ci
185762306a36Sopenharmony_ciconfig SYS_HAS_CPU_R4X00
185862306a36Sopenharmony_ci	bool
185962306a36Sopenharmony_ci
186062306a36Sopenharmony_ciconfig SYS_HAS_CPU_TX49XX
186162306a36Sopenharmony_ci	bool
186262306a36Sopenharmony_ci
186362306a36Sopenharmony_ciconfig SYS_HAS_CPU_R5000
186462306a36Sopenharmony_ci	bool
186562306a36Sopenharmony_ci
186662306a36Sopenharmony_ciconfig SYS_HAS_CPU_R5500
186762306a36Sopenharmony_ci	bool
186862306a36Sopenharmony_ci
186962306a36Sopenharmony_ciconfig SYS_HAS_CPU_NEVADA
187062306a36Sopenharmony_ci	bool
187162306a36Sopenharmony_ci
187262306a36Sopenharmony_ciconfig SYS_HAS_CPU_R10000
187362306a36Sopenharmony_ci	bool
187462306a36Sopenharmony_ci
187562306a36Sopenharmony_ciconfig SYS_HAS_CPU_RM7000
187662306a36Sopenharmony_ci	bool
187762306a36Sopenharmony_ci
187862306a36Sopenharmony_ciconfig SYS_HAS_CPU_SB1
187962306a36Sopenharmony_ci	bool
188062306a36Sopenharmony_ci
188162306a36Sopenharmony_ciconfig SYS_HAS_CPU_CAVIUM_OCTEON
188262306a36Sopenharmony_ci	bool
188362306a36Sopenharmony_ci
188462306a36Sopenharmony_ciconfig SYS_HAS_CPU_BMIPS
188562306a36Sopenharmony_ci	bool
188662306a36Sopenharmony_ci
188762306a36Sopenharmony_ciconfig SYS_HAS_CPU_BMIPS32_3300
188862306a36Sopenharmony_ci	bool
188962306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS
189062306a36Sopenharmony_ci
189162306a36Sopenharmony_ciconfig SYS_HAS_CPU_BMIPS4350
189262306a36Sopenharmony_ci	bool
189362306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS
189462306a36Sopenharmony_ci
189562306a36Sopenharmony_ciconfig SYS_HAS_CPU_BMIPS4380
189662306a36Sopenharmony_ci	bool
189762306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS
189862306a36Sopenharmony_ci
189962306a36Sopenharmony_ciconfig SYS_HAS_CPU_BMIPS5000
190062306a36Sopenharmony_ci	bool
190162306a36Sopenharmony_ci	select SYS_HAS_CPU_BMIPS
190262306a36Sopenharmony_ci
190362306a36Sopenharmony_ci#
190462306a36Sopenharmony_ci# CPU may reorder R->R, R->W, W->R, W->W
190562306a36Sopenharmony_ci# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
190662306a36Sopenharmony_ci#
190762306a36Sopenharmony_ciconfig WEAK_ORDERING
190862306a36Sopenharmony_ci	bool
190962306a36Sopenharmony_ci
191062306a36Sopenharmony_ci#
191162306a36Sopenharmony_ci# CPU may reorder reads and writes beyond LL/SC
191262306a36Sopenharmony_ci# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
191362306a36Sopenharmony_ci#
191462306a36Sopenharmony_ciconfig WEAK_REORDERING_BEYOND_LLSC
191562306a36Sopenharmony_ci	bool
191662306a36Sopenharmony_ciendmenu
191762306a36Sopenharmony_ci
191862306a36Sopenharmony_ci#
191962306a36Sopenharmony_ci# These two indicate any level of the MIPS32 and MIPS64 architecture
192062306a36Sopenharmony_ci#
192162306a36Sopenharmony_ciconfig CPU_MIPS32
192262306a36Sopenharmony_ci	bool
192362306a36Sopenharmony_ci	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
192462306a36Sopenharmony_ci		     CPU_MIPS32_R6 || CPU_P5600
192562306a36Sopenharmony_ci
192662306a36Sopenharmony_ciconfig CPU_MIPS64
192762306a36Sopenharmony_ci	bool
192862306a36Sopenharmony_ci	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
192962306a36Sopenharmony_ci		     CPU_MIPS64_R6 || CPU_LOONGSON64 || CPU_CAVIUM_OCTEON
193062306a36Sopenharmony_ci
193162306a36Sopenharmony_ci#
193262306a36Sopenharmony_ci# These indicate the revision of the architecture
193362306a36Sopenharmony_ci#
193462306a36Sopenharmony_ciconfig CPU_MIPSR1
193562306a36Sopenharmony_ci	bool
193662306a36Sopenharmony_ci	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
193762306a36Sopenharmony_ci
193862306a36Sopenharmony_ciconfig CPU_MIPSR2
193962306a36Sopenharmony_ci	bool
194062306a36Sopenharmony_ci	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
194162306a36Sopenharmony_ci	select CPU_HAS_RIXI
194262306a36Sopenharmony_ci	select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
194362306a36Sopenharmony_ci	select MIPS_SPRAM
194462306a36Sopenharmony_ci
194562306a36Sopenharmony_ciconfig CPU_MIPSR5
194662306a36Sopenharmony_ci	bool
194762306a36Sopenharmony_ci	default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
194862306a36Sopenharmony_ci	select CPU_HAS_RIXI
194962306a36Sopenharmony_ci	select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
195062306a36Sopenharmony_ci	select MIPS_SPRAM
195162306a36Sopenharmony_ci
195262306a36Sopenharmony_ciconfig CPU_MIPSR6
195362306a36Sopenharmony_ci	bool
195462306a36Sopenharmony_ci	default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
195562306a36Sopenharmony_ci	select CPU_HAS_RIXI
195662306a36Sopenharmony_ci	select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
195762306a36Sopenharmony_ci	select HAVE_ARCH_BITREVERSE
195862306a36Sopenharmony_ci	select MIPS_ASID_BITS_VARIABLE
195962306a36Sopenharmony_ci	select MIPS_CRC_SUPPORT
196062306a36Sopenharmony_ci	select MIPS_SPRAM
196162306a36Sopenharmony_ci
196262306a36Sopenharmony_ciconfig TARGET_ISA_REV
196362306a36Sopenharmony_ci	int
196462306a36Sopenharmony_ci	default 1 if CPU_MIPSR1
196562306a36Sopenharmony_ci	default 2 if CPU_MIPSR2
196662306a36Sopenharmony_ci	default 5 if CPU_MIPSR5
196762306a36Sopenharmony_ci	default 6 if CPU_MIPSR6
196862306a36Sopenharmony_ci	default 0
196962306a36Sopenharmony_ci	help
197062306a36Sopenharmony_ci	  Reflects the ISA revision being targeted by the kernel build. This
197162306a36Sopenharmony_ci	  is effectively the Kconfig equivalent of MIPS_ISA_REV.
197262306a36Sopenharmony_ci
197362306a36Sopenharmony_ciconfig EVA
197462306a36Sopenharmony_ci	bool
197562306a36Sopenharmony_ci
197662306a36Sopenharmony_ciconfig XPA
197762306a36Sopenharmony_ci	bool
197862306a36Sopenharmony_ci
197962306a36Sopenharmony_ciconfig SYS_SUPPORTS_32BIT_KERNEL
198062306a36Sopenharmony_ci	bool
198162306a36Sopenharmony_ciconfig SYS_SUPPORTS_64BIT_KERNEL
198262306a36Sopenharmony_ci	bool
198362306a36Sopenharmony_ciconfig CPU_SUPPORTS_32BIT_KERNEL
198462306a36Sopenharmony_ci	bool
198562306a36Sopenharmony_ciconfig CPU_SUPPORTS_64BIT_KERNEL
198662306a36Sopenharmony_ci	bool
198762306a36Sopenharmony_ciconfig CPU_SUPPORTS_CPUFREQ
198862306a36Sopenharmony_ci	bool
198962306a36Sopenharmony_ciconfig CPU_SUPPORTS_ADDRWINCFG
199062306a36Sopenharmony_ci	bool
199162306a36Sopenharmony_ciconfig CPU_SUPPORTS_HUGEPAGES
199262306a36Sopenharmony_ci	bool
199362306a36Sopenharmony_ci	depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
199462306a36Sopenharmony_ciconfig MIPS_PGD_C0_CONTEXT
199562306a36Sopenharmony_ci	bool
199662306a36Sopenharmony_ci	depends on 64BIT
199762306a36Sopenharmony_ci	default y if (CPU_MIPSR2 || CPU_MIPSR6)
199862306a36Sopenharmony_ci
199962306a36Sopenharmony_ci#
200062306a36Sopenharmony_ci# Set to y for ptrace access to watch registers.
200162306a36Sopenharmony_ci#
200262306a36Sopenharmony_ciconfig HARDWARE_WATCHPOINTS
200362306a36Sopenharmony_ci	bool
200462306a36Sopenharmony_ci	default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
200562306a36Sopenharmony_ci
200662306a36Sopenharmony_cimenu "Kernel type"
200762306a36Sopenharmony_ci
200862306a36Sopenharmony_cichoice
200962306a36Sopenharmony_ci	prompt "Kernel code model"
201062306a36Sopenharmony_ci	help
201162306a36Sopenharmony_ci	  You should only select this option if you have a workload that
201262306a36Sopenharmony_ci	  actually benefits from 64-bit processing or if your machine has
201362306a36Sopenharmony_ci	  large memory.  You will only be presented a single option in this
201462306a36Sopenharmony_ci	  menu if your system does not support both 32-bit and 64-bit kernels.
201562306a36Sopenharmony_ci
201662306a36Sopenharmony_ciconfig 32BIT
201762306a36Sopenharmony_ci	bool "32-bit kernel"
201862306a36Sopenharmony_ci	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
201962306a36Sopenharmony_ci	select TRAD_SIGNALS
202062306a36Sopenharmony_ci	help
202162306a36Sopenharmony_ci	  Select this option if you want to build a 32-bit kernel.
202262306a36Sopenharmony_ci
202362306a36Sopenharmony_ciconfig 64BIT
202462306a36Sopenharmony_ci	bool "64-bit kernel"
202562306a36Sopenharmony_ci	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
202662306a36Sopenharmony_ci	help
202762306a36Sopenharmony_ci	  Select this option if you want to build a 64-bit kernel.
202862306a36Sopenharmony_ci
202962306a36Sopenharmony_ciendchoice
203062306a36Sopenharmony_ci
203162306a36Sopenharmony_ciconfig MIPS_VA_BITS_48
203262306a36Sopenharmony_ci	bool "48 bits virtual memory"
203362306a36Sopenharmony_ci	depends on 64BIT
203462306a36Sopenharmony_ci	help
203562306a36Sopenharmony_ci	  Support a maximum at least 48 bits of application virtual
203662306a36Sopenharmony_ci	  memory.  Default is 40 bits or less, depending on the CPU.
203762306a36Sopenharmony_ci	  For page sizes 16k and above, this option results in a small
203862306a36Sopenharmony_ci	  memory overhead for page tables.  For 4k page size, a fourth
203962306a36Sopenharmony_ci	  level of page tables is added which imposes both a memory
204062306a36Sopenharmony_ci	  overhead as well as slower TLB fault handling.
204162306a36Sopenharmony_ci
204262306a36Sopenharmony_ci	  If unsure, say N.
204362306a36Sopenharmony_ci
204462306a36Sopenharmony_ciconfig ZBOOT_LOAD_ADDRESS
204562306a36Sopenharmony_ci	hex "Compressed kernel load address"
204662306a36Sopenharmony_ci	default 0xffffffff80400000 if BCM47XX
204762306a36Sopenharmony_ci	default 0x0
204862306a36Sopenharmony_ci	depends on SYS_SUPPORTS_ZBOOT
204962306a36Sopenharmony_ci	help
205062306a36Sopenharmony_ci	  The address to load compressed kernel, aka vmlinuz.
205162306a36Sopenharmony_ci
205262306a36Sopenharmony_ci	  This is only used if non-zero.
205362306a36Sopenharmony_ci
205462306a36Sopenharmony_cichoice
205562306a36Sopenharmony_ci	prompt "Kernel page size"
205662306a36Sopenharmony_ci	default PAGE_SIZE_4KB
205762306a36Sopenharmony_ci
205862306a36Sopenharmony_ciconfig PAGE_SIZE_4KB
205962306a36Sopenharmony_ci	bool "4kB"
206062306a36Sopenharmony_ci	depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
206162306a36Sopenharmony_ci	help
206262306a36Sopenharmony_ci	  This option select the standard 4kB Linux page size.  On some
206362306a36Sopenharmony_ci	  R3000-family processors this is the only available page size.  Using
206462306a36Sopenharmony_ci	  4kB page size will minimize memory consumption and is therefore
206562306a36Sopenharmony_ci	  recommended for low memory systems.
206662306a36Sopenharmony_ci
206762306a36Sopenharmony_ciconfig PAGE_SIZE_8KB
206862306a36Sopenharmony_ci	bool "8kB"
206962306a36Sopenharmony_ci	depends on CPU_CAVIUM_OCTEON
207062306a36Sopenharmony_ci	depends on !MIPS_VA_BITS_48
207162306a36Sopenharmony_ci	help
207262306a36Sopenharmony_ci	  Using 8kB page size will result in higher performance kernel at
207362306a36Sopenharmony_ci	  the price of higher memory consumption.  This option is available
207462306a36Sopenharmony_ci	  only on cnMIPS processors.  Note that you will need a suitable Linux
207562306a36Sopenharmony_ci	  distribution to support this.
207662306a36Sopenharmony_ci
207762306a36Sopenharmony_ciconfig PAGE_SIZE_16KB
207862306a36Sopenharmony_ci	bool "16kB"
207962306a36Sopenharmony_ci	depends on !CPU_R3000
208062306a36Sopenharmony_ci	help
208162306a36Sopenharmony_ci	  Using 16kB page size will result in higher performance kernel at
208262306a36Sopenharmony_ci	  the price of higher memory consumption.  This option is available on
208362306a36Sopenharmony_ci	  all non-R3000 family processors.  Note that you will need a suitable
208462306a36Sopenharmony_ci	  Linux distribution to support this.
208562306a36Sopenharmony_ci
208662306a36Sopenharmony_ciconfig PAGE_SIZE_32KB
208762306a36Sopenharmony_ci	bool "32kB"
208862306a36Sopenharmony_ci	depends on CPU_CAVIUM_OCTEON
208962306a36Sopenharmony_ci	depends on !MIPS_VA_BITS_48
209062306a36Sopenharmony_ci	help
209162306a36Sopenharmony_ci	  Using 32kB page size will result in higher performance kernel at
209262306a36Sopenharmony_ci	  the price of higher memory consumption.  This option is available
209362306a36Sopenharmony_ci	  only on cnMIPS cores.  Note that you will need a suitable Linux
209462306a36Sopenharmony_ci	  distribution to support this.
209562306a36Sopenharmony_ci
209662306a36Sopenharmony_ciconfig PAGE_SIZE_64KB
209762306a36Sopenharmony_ci	bool "64kB"
209862306a36Sopenharmony_ci	depends on !CPU_R3000
209962306a36Sopenharmony_ci	help
210062306a36Sopenharmony_ci	  Using 64kB page size will result in higher performance kernel at
210162306a36Sopenharmony_ci	  the price of higher memory consumption.  This option is available on
210262306a36Sopenharmony_ci	  all non-R3000 family processor.  Not that at the time of this
210362306a36Sopenharmony_ci	  writing this option is still high experimental.
210462306a36Sopenharmony_ci
210562306a36Sopenharmony_ciendchoice
210662306a36Sopenharmony_ci
210762306a36Sopenharmony_ciconfig ARCH_FORCE_MAX_ORDER
210862306a36Sopenharmony_ci	int "Maximum zone order"
210962306a36Sopenharmony_ci	default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
211062306a36Sopenharmony_ci	default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
211162306a36Sopenharmony_ci	default "11" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
211262306a36Sopenharmony_ci	default "10"
211362306a36Sopenharmony_ci	help
211462306a36Sopenharmony_ci	  The kernel memory allocator divides physically contiguous memory
211562306a36Sopenharmony_ci	  blocks into "zones", where each zone is a power of two number of
211662306a36Sopenharmony_ci	  pages.  This option selects the largest power of two that the kernel
211762306a36Sopenharmony_ci	  keeps in the memory allocator.  If you need to allocate very large
211862306a36Sopenharmony_ci	  blocks of physically contiguous memory, then you may need to
211962306a36Sopenharmony_ci	  increase this value.
212062306a36Sopenharmony_ci
212162306a36Sopenharmony_ci	  The page size is not necessarily 4KB.  Keep this in mind
212262306a36Sopenharmony_ci	  when choosing a value for this option.
212362306a36Sopenharmony_ci
212462306a36Sopenharmony_ciconfig BOARD_SCACHE
212562306a36Sopenharmony_ci	bool
212662306a36Sopenharmony_ci
212762306a36Sopenharmony_ciconfig IP22_CPU_SCACHE
212862306a36Sopenharmony_ci	bool
212962306a36Sopenharmony_ci	select BOARD_SCACHE
213062306a36Sopenharmony_ci
213162306a36Sopenharmony_ci#
213262306a36Sopenharmony_ci# Support for a MIPS32 / MIPS64 style S-caches
213362306a36Sopenharmony_ci#
213462306a36Sopenharmony_ciconfig MIPS_CPU_SCACHE
213562306a36Sopenharmony_ci	bool
213662306a36Sopenharmony_ci	select BOARD_SCACHE
213762306a36Sopenharmony_ci
213862306a36Sopenharmony_ciconfig R5000_CPU_SCACHE
213962306a36Sopenharmony_ci	bool
214062306a36Sopenharmony_ci	select BOARD_SCACHE
214162306a36Sopenharmony_ci
214262306a36Sopenharmony_ciconfig RM7000_CPU_SCACHE
214362306a36Sopenharmony_ci	bool
214462306a36Sopenharmony_ci	select BOARD_SCACHE
214562306a36Sopenharmony_ci
214662306a36Sopenharmony_ciconfig SIBYTE_DMA_PAGEOPS
214762306a36Sopenharmony_ci	bool "Use DMA to clear/copy pages"
214862306a36Sopenharmony_ci	depends on CPU_SB1
214962306a36Sopenharmony_ci	help
215062306a36Sopenharmony_ci	  Instead of using the CPU to zero and copy pages, use a Data Mover
215162306a36Sopenharmony_ci	  channel.  These DMA channels are otherwise unused by the standard
215262306a36Sopenharmony_ci	  SiByte Linux port.  Seems to give a small performance benefit.
215362306a36Sopenharmony_ci
215462306a36Sopenharmony_ciconfig CPU_HAS_PREFETCH
215562306a36Sopenharmony_ci	bool
215662306a36Sopenharmony_ci
215762306a36Sopenharmony_ciconfig CPU_GENERIC_DUMP_TLB
215862306a36Sopenharmony_ci	bool
215962306a36Sopenharmony_ci	default y if !CPU_R3000
216062306a36Sopenharmony_ci
216162306a36Sopenharmony_ciconfig MIPS_FP_SUPPORT
216262306a36Sopenharmony_ci	bool "Floating Point support" if EXPERT
216362306a36Sopenharmony_ci	default y
216462306a36Sopenharmony_ci	help
216562306a36Sopenharmony_ci	  Select y to include support for floating point in the kernel
216662306a36Sopenharmony_ci	  including initialization of FPU hardware, FP context save & restore
216762306a36Sopenharmony_ci	  and emulation of an FPU where necessary. Without this support any
216862306a36Sopenharmony_ci	  userland program attempting to use floating point instructions will
216962306a36Sopenharmony_ci	  receive a SIGILL.
217062306a36Sopenharmony_ci
217162306a36Sopenharmony_ci	  If you know that your userland will not attempt to use floating point
217262306a36Sopenharmony_ci	  instructions then you can say n here to shrink the kernel a little.
217362306a36Sopenharmony_ci
217462306a36Sopenharmony_ci	  If unsure, say y.
217562306a36Sopenharmony_ci
217662306a36Sopenharmony_ciconfig CPU_R2300_FPU
217762306a36Sopenharmony_ci	bool
217862306a36Sopenharmony_ci	depends on MIPS_FP_SUPPORT
217962306a36Sopenharmony_ci	default y if CPU_R3000
218062306a36Sopenharmony_ci
218162306a36Sopenharmony_ciconfig CPU_R3K_TLB
218262306a36Sopenharmony_ci	bool
218362306a36Sopenharmony_ci
218462306a36Sopenharmony_ciconfig CPU_R4K_FPU
218562306a36Sopenharmony_ci	bool
218662306a36Sopenharmony_ci	depends on MIPS_FP_SUPPORT
218762306a36Sopenharmony_ci	default y if !CPU_R2300_FPU
218862306a36Sopenharmony_ci
218962306a36Sopenharmony_ciconfig CPU_R4K_CACHE_TLB
219062306a36Sopenharmony_ci	bool
219162306a36Sopenharmony_ci	default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
219262306a36Sopenharmony_ci
219362306a36Sopenharmony_ciconfig MIPS_MT_SMP
219462306a36Sopenharmony_ci	bool "MIPS MT SMP support (1 TC on each available VPE)"
219562306a36Sopenharmony_ci	default y
219662306a36Sopenharmony_ci	depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
219762306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_VI
219862306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_EI
219962306a36Sopenharmony_ci	select SYNC_R4K
220062306a36Sopenharmony_ci	select MIPS_MT
220162306a36Sopenharmony_ci	select SMP
220262306a36Sopenharmony_ci	select SMP_UP
220362306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
220462306a36Sopenharmony_ci	select SYS_SUPPORTS_SCHED_SMT
220562306a36Sopenharmony_ci	select MIPS_PERF_SHARED_TC_COUNTERS
220662306a36Sopenharmony_ci	help
220762306a36Sopenharmony_ci	  This is a kernel model which is known as SMVP. This is supported
220862306a36Sopenharmony_ci	  on cores with the MT ASE and uses the available VPEs to implement
220962306a36Sopenharmony_ci	  virtual processors which supports SMP. This is equivalent to the
221062306a36Sopenharmony_ci	  Intel Hyperthreading feature. For further information go to
221162306a36Sopenharmony_ci	  <http://www.imgtec.com/mips/mips-multithreading.asp>.
221262306a36Sopenharmony_ci
221362306a36Sopenharmony_ciconfig MIPS_MT
221462306a36Sopenharmony_ci	bool
221562306a36Sopenharmony_ci
221662306a36Sopenharmony_ciconfig SCHED_SMT
221762306a36Sopenharmony_ci	bool "SMT (multithreading) scheduler support"
221862306a36Sopenharmony_ci	depends on SYS_SUPPORTS_SCHED_SMT
221962306a36Sopenharmony_ci	default n
222062306a36Sopenharmony_ci	help
222162306a36Sopenharmony_ci	  SMT scheduler support improves the CPU scheduler's decision making
222262306a36Sopenharmony_ci	  when dealing with MIPS MT enabled cores at a cost of slightly
222362306a36Sopenharmony_ci	  increased overhead in some places. If unsure say N here.
222462306a36Sopenharmony_ci
222562306a36Sopenharmony_ciconfig SYS_SUPPORTS_SCHED_SMT
222662306a36Sopenharmony_ci	bool
222762306a36Sopenharmony_ci
222862306a36Sopenharmony_ciconfig SYS_SUPPORTS_MULTITHREADING
222962306a36Sopenharmony_ci	bool
223062306a36Sopenharmony_ci
223162306a36Sopenharmony_ciconfig MIPS_MT_FPAFF
223262306a36Sopenharmony_ci	bool "Dynamic FPU affinity for FP-intensive threads"
223362306a36Sopenharmony_ci	default y
223462306a36Sopenharmony_ci	depends on MIPS_MT_SMP
223562306a36Sopenharmony_ci
223662306a36Sopenharmony_ciconfig MIPSR2_TO_R6_EMULATOR
223762306a36Sopenharmony_ci	bool "MIPS R2-to-R6 emulator"
223862306a36Sopenharmony_ci	depends on CPU_MIPSR6
223962306a36Sopenharmony_ci	depends on MIPS_FP_SUPPORT
224062306a36Sopenharmony_ci	default y
224162306a36Sopenharmony_ci	help
224262306a36Sopenharmony_ci	  Choose this option if you want to run non-R6 MIPS userland code.
224362306a36Sopenharmony_ci	  Even if you say 'Y' here, the emulator will still be disabled by
224462306a36Sopenharmony_ci	  default. You can enable it using the 'mipsr2emu' kernel option.
224562306a36Sopenharmony_ci	  The only reason this is a build-time option is to save ~14K from the
224662306a36Sopenharmony_ci	  final kernel image.
224762306a36Sopenharmony_ci
224862306a36Sopenharmony_ciconfig SYS_SUPPORTS_VPE_LOADER
224962306a36Sopenharmony_ci	bool
225062306a36Sopenharmony_ci	depends on SYS_SUPPORTS_MULTITHREADING
225162306a36Sopenharmony_ci	help
225262306a36Sopenharmony_ci	  Indicates that the platform supports the VPE loader, and provides
225362306a36Sopenharmony_ci	  physical_memsize.
225462306a36Sopenharmony_ci
225562306a36Sopenharmony_ciconfig MIPS_VPE_LOADER
225662306a36Sopenharmony_ci	bool "VPE loader support."
225762306a36Sopenharmony_ci	depends on SYS_SUPPORTS_VPE_LOADER && MODULES
225862306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_VI
225962306a36Sopenharmony_ci	select CPU_MIPSR2_IRQ_EI
226062306a36Sopenharmony_ci	select MIPS_MT
226162306a36Sopenharmony_ci	help
226262306a36Sopenharmony_ci	  Includes a loader for loading an elf relocatable object
226362306a36Sopenharmony_ci	  onto another VPE and running it.
226462306a36Sopenharmony_ci
226562306a36Sopenharmony_ciconfig MIPS_VPE_LOADER_MT
226662306a36Sopenharmony_ci	bool
226762306a36Sopenharmony_ci	default "y"
226862306a36Sopenharmony_ci	depends on MIPS_VPE_LOADER
226962306a36Sopenharmony_ci
227062306a36Sopenharmony_ciconfig MIPS_VPE_LOADER_TOM
227162306a36Sopenharmony_ci	bool "Load VPE program into memory hidden from linux"
227262306a36Sopenharmony_ci	depends on MIPS_VPE_LOADER
227362306a36Sopenharmony_ci	default y
227462306a36Sopenharmony_ci	help
227562306a36Sopenharmony_ci	  The loader can use memory that is present but has been hidden from
227662306a36Sopenharmony_ci	  Linux using the kernel command line option "mem=xxMB". It's up to
227762306a36Sopenharmony_ci	  you to ensure the amount you put in the option and the space your
227862306a36Sopenharmony_ci	  program requires is less or equal to the amount physically present.
227962306a36Sopenharmony_ci
228062306a36Sopenharmony_ciconfig MIPS_VPE_APSP_API
228162306a36Sopenharmony_ci	bool "Enable support for AP/SP API (RTLX)"
228262306a36Sopenharmony_ci	depends on MIPS_VPE_LOADER
228362306a36Sopenharmony_ci
228462306a36Sopenharmony_ciconfig MIPS_VPE_APSP_API_MT
228562306a36Sopenharmony_ci	bool
228662306a36Sopenharmony_ci	default "y"
228762306a36Sopenharmony_ci	depends on MIPS_VPE_APSP_API
228862306a36Sopenharmony_ci
228962306a36Sopenharmony_ciconfig MIPS_CPS
229062306a36Sopenharmony_ci	bool "MIPS Coherent Processing System support"
229162306a36Sopenharmony_ci	depends on SYS_SUPPORTS_MIPS_CPS
229262306a36Sopenharmony_ci	select MIPS_CM
229362306a36Sopenharmony_ci	select MIPS_CPS_PM if HOTPLUG_CPU
229462306a36Sopenharmony_ci	select SMP
229562306a36Sopenharmony_ci	select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU
229662306a36Sopenharmony_ci	select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
229762306a36Sopenharmony_ci	select SYS_SUPPORTS_HOTPLUG_CPU
229862306a36Sopenharmony_ci	select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
229962306a36Sopenharmony_ci	select SYS_SUPPORTS_SMP
230062306a36Sopenharmony_ci	select WEAK_ORDERING
230162306a36Sopenharmony_ci	select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
230262306a36Sopenharmony_ci	help
230362306a36Sopenharmony_ci	  Select this if you wish to run an SMP kernel across multiple cores
230462306a36Sopenharmony_ci	  within a MIPS Coherent Processing System. When this option is
230562306a36Sopenharmony_ci	  enabled the kernel will probe for other cores and boot them with
230662306a36Sopenharmony_ci	  no external assistance. It is safe to enable this when hardware
230762306a36Sopenharmony_ci	  support is unavailable.
230862306a36Sopenharmony_ci
230962306a36Sopenharmony_ciconfig MIPS_CPS_PM
231062306a36Sopenharmony_ci	depends on MIPS_CPS
231162306a36Sopenharmony_ci	bool
231262306a36Sopenharmony_ci
231362306a36Sopenharmony_ciconfig MIPS_CM
231462306a36Sopenharmony_ci	bool
231562306a36Sopenharmony_ci	select MIPS_CPC
231662306a36Sopenharmony_ci
231762306a36Sopenharmony_ciconfig MIPS_CPC
231862306a36Sopenharmony_ci	bool
231962306a36Sopenharmony_ci
232062306a36Sopenharmony_ciconfig SB1_PASS_2_WORKAROUNDS
232162306a36Sopenharmony_ci	bool
232262306a36Sopenharmony_ci	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
232362306a36Sopenharmony_ci	default y
232462306a36Sopenharmony_ci
232562306a36Sopenharmony_ciconfig SB1_PASS_2_1_WORKAROUNDS
232662306a36Sopenharmony_ci	bool
232762306a36Sopenharmony_ci	depends on CPU_SB1 && CPU_SB1_PASS_2
232862306a36Sopenharmony_ci	default y
232962306a36Sopenharmony_ci
233062306a36Sopenharmony_cichoice
233162306a36Sopenharmony_ci	prompt "SmartMIPS or microMIPS ASE support"
233262306a36Sopenharmony_ci
233362306a36Sopenharmony_ciconfig CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
233462306a36Sopenharmony_ci	bool "None"
233562306a36Sopenharmony_ci	help
233662306a36Sopenharmony_ci	  Select this if you want neither microMIPS nor SmartMIPS support
233762306a36Sopenharmony_ci
233862306a36Sopenharmony_ciconfig CPU_HAS_SMARTMIPS
233962306a36Sopenharmony_ci	depends on SYS_SUPPORTS_SMARTMIPS
234062306a36Sopenharmony_ci	bool "SmartMIPS"
234162306a36Sopenharmony_ci	help
234262306a36Sopenharmony_ci	  SmartMIPS is a extension of the MIPS32 architecture aimed at
234362306a36Sopenharmony_ci	  increased security at both hardware and software level for
234462306a36Sopenharmony_ci	  smartcards.  Enabling this option will allow proper use of the
234562306a36Sopenharmony_ci	  SmartMIPS instructions by Linux applications.  However a kernel with
234662306a36Sopenharmony_ci	  this option will not work on a MIPS core without SmartMIPS core.  If
234762306a36Sopenharmony_ci	  you don't know you probably don't have SmartMIPS and should say N
234862306a36Sopenharmony_ci	  here.
234962306a36Sopenharmony_ci
235062306a36Sopenharmony_ciconfig CPU_MICROMIPS
235162306a36Sopenharmony_ci	depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
235262306a36Sopenharmony_ci	bool "microMIPS"
235362306a36Sopenharmony_ci	help
235462306a36Sopenharmony_ci	  When this option is enabled the kernel will be built using the
235562306a36Sopenharmony_ci	  microMIPS ISA
235662306a36Sopenharmony_ci
235762306a36Sopenharmony_ciendchoice
235862306a36Sopenharmony_ci
235962306a36Sopenharmony_ciconfig CPU_HAS_MSA
236062306a36Sopenharmony_ci	bool "Support for the MIPS SIMD Architecture"
236162306a36Sopenharmony_ci	depends on CPU_SUPPORTS_MSA
236262306a36Sopenharmony_ci	depends on MIPS_FP_SUPPORT
236362306a36Sopenharmony_ci	depends on 64BIT || MIPS_O32_FP64_SUPPORT
236462306a36Sopenharmony_ci	help
236562306a36Sopenharmony_ci	  MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
236662306a36Sopenharmony_ci	  and a set of SIMD instructions to operate on them. When this option
236762306a36Sopenharmony_ci	  is enabled the kernel will support allocating & switching MSA
236862306a36Sopenharmony_ci	  vector register contexts. If you know that your kernel will only be
236962306a36Sopenharmony_ci	  running on CPUs which do not support MSA or that your userland will
237062306a36Sopenharmony_ci	  not be making use of it then you may wish to say N here to reduce
237162306a36Sopenharmony_ci	  the size & complexity of your kernel.
237262306a36Sopenharmony_ci
237362306a36Sopenharmony_ci	  If unsure, say Y.
237462306a36Sopenharmony_ci
237562306a36Sopenharmony_ciconfig CPU_HAS_WB
237662306a36Sopenharmony_ci	bool
237762306a36Sopenharmony_ci
237862306a36Sopenharmony_ciconfig XKS01
237962306a36Sopenharmony_ci	bool
238062306a36Sopenharmony_ci
238162306a36Sopenharmony_ciconfig CPU_HAS_DIEI
238262306a36Sopenharmony_ci	depends on !CPU_DIEI_BROKEN
238362306a36Sopenharmony_ci	bool
238462306a36Sopenharmony_ci
238562306a36Sopenharmony_ciconfig CPU_DIEI_BROKEN
238662306a36Sopenharmony_ci	bool
238762306a36Sopenharmony_ci
238862306a36Sopenharmony_ciconfig CPU_HAS_RIXI
238962306a36Sopenharmony_ci	bool
239062306a36Sopenharmony_ci
239162306a36Sopenharmony_ciconfig CPU_NO_LOAD_STORE_LR
239262306a36Sopenharmony_ci	bool
239362306a36Sopenharmony_ci	help
239462306a36Sopenharmony_ci	  CPU lacks support for unaligned load and store instructions:
239562306a36Sopenharmony_ci	  LWL, LWR, SWL, SWR (Load/store word left/right).
239662306a36Sopenharmony_ci	  LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
239762306a36Sopenharmony_ci	  systems).
239862306a36Sopenharmony_ci
239962306a36Sopenharmony_ci#
240062306a36Sopenharmony_ci# Vectored interrupt mode is an R2 feature
240162306a36Sopenharmony_ci#
240262306a36Sopenharmony_ciconfig CPU_MIPSR2_IRQ_VI
240362306a36Sopenharmony_ci	bool
240462306a36Sopenharmony_ci
240562306a36Sopenharmony_ci#
240662306a36Sopenharmony_ci# Extended interrupt mode is an R2 feature
240762306a36Sopenharmony_ci#
240862306a36Sopenharmony_ciconfig CPU_MIPSR2_IRQ_EI
240962306a36Sopenharmony_ci	bool
241062306a36Sopenharmony_ci
241162306a36Sopenharmony_ciconfig CPU_HAS_SYNC
241262306a36Sopenharmony_ci	bool
241362306a36Sopenharmony_ci	depends on !CPU_R3000
241462306a36Sopenharmony_ci	default y
241562306a36Sopenharmony_ci
241662306a36Sopenharmony_ci#
241762306a36Sopenharmony_ci# CPU non-features
241862306a36Sopenharmony_ci#
241962306a36Sopenharmony_ci
242062306a36Sopenharmony_ci# Work around the "daddi" and "daddiu" CPU errata:
242162306a36Sopenharmony_ci#
242262306a36Sopenharmony_ci# - The `daddi' instruction fails to trap on overflow.
242362306a36Sopenharmony_ci#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
242462306a36Sopenharmony_ci#   erratum #23
242562306a36Sopenharmony_ci#
242662306a36Sopenharmony_ci# - The `daddiu' instruction can produce an incorrect result.
242762306a36Sopenharmony_ci#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
242862306a36Sopenharmony_ci#   erratum #41
242962306a36Sopenharmony_ci#   "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
243062306a36Sopenharmony_ci#   #15
243162306a36Sopenharmony_ci#   "MIPS R4400PC/SC Errata, Processor Revision 1.0", erratum #7
243262306a36Sopenharmony_ci#   "MIPS R4400MC Errata, Processor Revision 1.0", erratum #5
243362306a36Sopenharmony_ciconfig CPU_DADDI_WORKAROUNDS
243462306a36Sopenharmony_ci	bool
243562306a36Sopenharmony_ci
243662306a36Sopenharmony_ci# Work around certain R4000 CPU errata (as implemented by GCC):
243762306a36Sopenharmony_ci#
243862306a36Sopenharmony_ci# - A double-word or a variable shift may give an incorrect result
243962306a36Sopenharmony_ci#   if executed immediately after starting an integer division:
244062306a36Sopenharmony_ci#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
244162306a36Sopenharmony_ci#   erratum #28
244262306a36Sopenharmony_ci#   "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
244362306a36Sopenharmony_ci#   #19
244462306a36Sopenharmony_ci#
244562306a36Sopenharmony_ci# - A double-word or a variable shift may give an incorrect result
244662306a36Sopenharmony_ci#   if executed while an integer multiplication is in progress:
244762306a36Sopenharmony_ci#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
244862306a36Sopenharmony_ci#   errata #16 & #28
244962306a36Sopenharmony_ci#
245062306a36Sopenharmony_ci# - An integer division may give an incorrect result if started in
245162306a36Sopenharmony_ci#   a delay slot of a taken branch or a jump:
245262306a36Sopenharmony_ci#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
245362306a36Sopenharmony_ci#   erratum #52
245462306a36Sopenharmony_ciconfig CPU_R4000_WORKAROUNDS
245562306a36Sopenharmony_ci	bool
245662306a36Sopenharmony_ci	select CPU_R4400_WORKAROUNDS
245762306a36Sopenharmony_ci
245862306a36Sopenharmony_ci# Work around certain R4400 CPU errata (as implemented by GCC):
245962306a36Sopenharmony_ci#
246062306a36Sopenharmony_ci# - A double-word or a variable shift may give an incorrect result
246162306a36Sopenharmony_ci#   if executed immediately after starting an integer division:
246262306a36Sopenharmony_ci#   "MIPS R4400MC Errata, Processor Revision 1.0", erratum #10
246362306a36Sopenharmony_ci#   "MIPS R4400MC Errata, Processor Revision 2.0 & 3.0", erratum #4
246462306a36Sopenharmony_ciconfig CPU_R4400_WORKAROUNDS
246562306a36Sopenharmony_ci	bool
246662306a36Sopenharmony_ci
246762306a36Sopenharmony_ciconfig CPU_R4X00_BUGS64
246862306a36Sopenharmony_ci	bool
246962306a36Sopenharmony_ci	default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
247062306a36Sopenharmony_ci
247162306a36Sopenharmony_ciconfig MIPS_ASID_SHIFT
247262306a36Sopenharmony_ci	int
247362306a36Sopenharmony_ci	default 6 if CPU_R3000
247462306a36Sopenharmony_ci	default 0
247562306a36Sopenharmony_ci
247662306a36Sopenharmony_ciconfig MIPS_ASID_BITS
247762306a36Sopenharmony_ci	int
247862306a36Sopenharmony_ci	default 0 if MIPS_ASID_BITS_VARIABLE
247962306a36Sopenharmony_ci	default 6 if CPU_R3000
248062306a36Sopenharmony_ci	default 8
248162306a36Sopenharmony_ci
248262306a36Sopenharmony_ciconfig MIPS_ASID_BITS_VARIABLE
248362306a36Sopenharmony_ci	bool
248462306a36Sopenharmony_ci
248562306a36Sopenharmony_ciconfig MIPS_CRC_SUPPORT
248662306a36Sopenharmony_ci	bool
248762306a36Sopenharmony_ci
248862306a36Sopenharmony_ci# R4600 erratum.  Due to the lack of errata information the exact
248962306a36Sopenharmony_ci# technical details aren't known.  I've experimentally found that disabling
249062306a36Sopenharmony_ci# interrupts during indexed I-cache flushes seems to be sufficient to deal
249162306a36Sopenharmony_ci# with the issue.
249262306a36Sopenharmony_ciconfig WAR_R4600_V1_INDEX_ICACHEOP
249362306a36Sopenharmony_ci	bool
249462306a36Sopenharmony_ci
249562306a36Sopenharmony_ci# Pleasures of the R4600 V1.x.  Cite from the IDT R4600 V1.7 errata:
249662306a36Sopenharmony_ci#
249762306a36Sopenharmony_ci#  18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
249862306a36Sopenharmony_ci#      Hit_Invalidate_D and Create_Dirty_Excl_D should only be
249962306a36Sopenharmony_ci#      executed if there is no other dcache activity. If the dcache is
250062306a36Sopenharmony_ci#      accessed for another instruction immediately preceding when these
250162306a36Sopenharmony_ci#      cache instructions are executing, it is possible that the dcache
250262306a36Sopenharmony_ci#      tag match outputs used by these cache instructions will be
250362306a36Sopenharmony_ci#      incorrect. These cache instructions should be preceded by at least
250462306a36Sopenharmony_ci#      four instructions that are not any kind of load or store
250562306a36Sopenharmony_ci#      instruction.
250662306a36Sopenharmony_ci#
250762306a36Sopenharmony_ci#      This is not allowed:    lw
250862306a36Sopenharmony_ci#                              nop
250962306a36Sopenharmony_ci#                              nop
251062306a36Sopenharmony_ci#                              nop
251162306a36Sopenharmony_ci#                              cache       Hit_Writeback_Invalidate_D
251262306a36Sopenharmony_ci#
251362306a36Sopenharmony_ci#      This is allowed:        lw
251462306a36Sopenharmony_ci#                              nop
251562306a36Sopenharmony_ci#                              nop
251662306a36Sopenharmony_ci#                              nop
251762306a36Sopenharmony_ci#                              nop
251862306a36Sopenharmony_ci#                              cache       Hit_Writeback_Invalidate_D
251962306a36Sopenharmony_ciconfig WAR_R4600_V1_HIT_CACHEOP
252062306a36Sopenharmony_ci	bool
252162306a36Sopenharmony_ci
252262306a36Sopenharmony_ci# Writeback and invalidate the primary cache dcache before DMA.
252362306a36Sopenharmony_ci#
252462306a36Sopenharmony_ci# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
252562306a36Sopenharmony_ci# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
252662306a36Sopenharmony_ci# operate correctly if the internal data cache refill buffer is empty.  These
252762306a36Sopenharmony_ci# CACHE instructions should be separated from any potential data cache miss
252862306a36Sopenharmony_ci# by a load instruction to an uncached address to empty the response buffer."
252962306a36Sopenharmony_ci# (Revision 2.0 device errata from IDT available on https://www.idt.com/
253062306a36Sopenharmony_ci# in .pdf format.)
253162306a36Sopenharmony_ciconfig WAR_R4600_V2_HIT_CACHEOP
253262306a36Sopenharmony_ci	bool
253362306a36Sopenharmony_ci
253462306a36Sopenharmony_ci# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
253562306a36Sopenharmony_ci# the line which this instruction itself exists, the following
253662306a36Sopenharmony_ci# operation is not guaranteed."
253762306a36Sopenharmony_ci#
253862306a36Sopenharmony_ci# Workaround: do two phase flushing for Index_Invalidate_I
253962306a36Sopenharmony_ciconfig WAR_TX49XX_ICACHE_INDEX_INV
254062306a36Sopenharmony_ci	bool
254162306a36Sopenharmony_ci
254262306a36Sopenharmony_ci# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
254362306a36Sopenharmony_ci# opposes it being called that) where invalid instructions in the same
254462306a36Sopenharmony_ci# I-cache line worth of instructions being fetched may case spurious
254562306a36Sopenharmony_ci# exceptions.
254662306a36Sopenharmony_ciconfig WAR_ICACHE_REFILLS
254762306a36Sopenharmony_ci	bool
254862306a36Sopenharmony_ci
254962306a36Sopenharmony_ci# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
255062306a36Sopenharmony_ci# may cause ll / sc and lld / scd sequences to execute non-atomically.
255162306a36Sopenharmony_ciconfig WAR_R10000_LLSC
255262306a36Sopenharmony_ci	bool
255362306a36Sopenharmony_ci
255462306a36Sopenharmony_ci# 34K core erratum: "Problems Executing the TLBR Instruction"
255562306a36Sopenharmony_ciconfig WAR_MIPS34K_MISSED_ITLB
255662306a36Sopenharmony_ci	bool
255762306a36Sopenharmony_ci
255862306a36Sopenharmony_ci#
255962306a36Sopenharmony_ci# - Highmem only makes sense for the 32-bit kernel.
256062306a36Sopenharmony_ci# - The current highmem code will only work properly on physically indexed
256162306a36Sopenharmony_ci#   caches such as R3000, SB1, R7000 or those that look like they're virtually
256262306a36Sopenharmony_ci#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
256362306a36Sopenharmony_ci#   moment we protect the user and offer the highmem option only on machines
256462306a36Sopenharmony_ci#   where it's known to be safe.  This will not offer highmem on a few systems
256562306a36Sopenharmony_ci#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
256662306a36Sopenharmony_ci#   indexed CPUs but we're playing safe.
256762306a36Sopenharmony_ci# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
256862306a36Sopenharmony_ci#   know they might have memory configurations that could make use of highmem
256962306a36Sopenharmony_ci#   support.
257062306a36Sopenharmony_ci#
257162306a36Sopenharmony_ciconfig HIGHMEM
257262306a36Sopenharmony_ci	bool "High Memory Support"
257362306a36Sopenharmony_ci	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
257462306a36Sopenharmony_ci	select KMAP_LOCAL
257562306a36Sopenharmony_ci
257662306a36Sopenharmony_ciconfig CPU_SUPPORTS_HIGHMEM
257762306a36Sopenharmony_ci	bool
257862306a36Sopenharmony_ci
257962306a36Sopenharmony_ciconfig SYS_SUPPORTS_HIGHMEM
258062306a36Sopenharmony_ci	bool
258162306a36Sopenharmony_ci
258262306a36Sopenharmony_ciconfig SYS_SUPPORTS_SMARTMIPS
258362306a36Sopenharmony_ci	bool
258462306a36Sopenharmony_ci
258562306a36Sopenharmony_ciconfig SYS_SUPPORTS_MICROMIPS
258662306a36Sopenharmony_ci	bool
258762306a36Sopenharmony_ci
258862306a36Sopenharmony_ciconfig SYS_SUPPORTS_MIPS16
258962306a36Sopenharmony_ci	bool
259062306a36Sopenharmony_ci	help
259162306a36Sopenharmony_ci	  This option must be set if a kernel might be executed on a MIPS16-
259262306a36Sopenharmony_ci	  enabled CPU even if MIPS16 is not actually being used.  In other
259362306a36Sopenharmony_ci	  words, it makes the kernel MIPS16-tolerant.
259462306a36Sopenharmony_ci
259562306a36Sopenharmony_ciconfig CPU_SUPPORTS_MSA
259662306a36Sopenharmony_ci	bool
259762306a36Sopenharmony_ci
259862306a36Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE
259962306a36Sopenharmony_ci	def_bool y
260062306a36Sopenharmony_ci	depends on !NUMA && !CPU_LOONGSON2EF
260162306a36Sopenharmony_ci
260262306a36Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE
260362306a36Sopenharmony_ci	bool
260462306a36Sopenharmony_ci
260562306a36Sopenharmony_ciconfig NUMA
260662306a36Sopenharmony_ci	bool "NUMA Support"
260762306a36Sopenharmony_ci	depends on SYS_SUPPORTS_NUMA
260862306a36Sopenharmony_ci	select SMP
260962306a36Sopenharmony_ci	select HAVE_SETUP_PER_CPU_AREA
261062306a36Sopenharmony_ci	select NEED_PER_CPU_EMBED_FIRST_CHUNK
261162306a36Sopenharmony_ci	help
261262306a36Sopenharmony_ci	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
261362306a36Sopenharmony_ci	  Access).  This option improves performance on systems with more
261462306a36Sopenharmony_ci	  than two nodes; on two node systems it is generally better to
261562306a36Sopenharmony_ci	  leave it disabled; on single node systems leave this option
261662306a36Sopenharmony_ci	  disabled.
261762306a36Sopenharmony_ci
261862306a36Sopenharmony_ciconfig SYS_SUPPORTS_NUMA
261962306a36Sopenharmony_ci	bool
262062306a36Sopenharmony_ci
262162306a36Sopenharmony_ciconfig HAVE_ARCH_NODEDATA_EXTENSION
262262306a36Sopenharmony_ci	bool
262362306a36Sopenharmony_ci
262462306a36Sopenharmony_ciconfig RELOCATABLE
262562306a36Sopenharmony_ci	bool "Relocatable kernel"
262662306a36Sopenharmony_ci	depends on SYS_SUPPORTS_RELOCATABLE
262762306a36Sopenharmony_ci	depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
262862306a36Sopenharmony_ci		   CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
262962306a36Sopenharmony_ci		   CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
263062306a36Sopenharmony_ci		   CPU_P5600 || CAVIUM_OCTEON_SOC || \
263162306a36Sopenharmony_ci		   CPU_LOONGSON64
263262306a36Sopenharmony_ci	help
263362306a36Sopenharmony_ci	  This builds a kernel image that retains relocation information
263462306a36Sopenharmony_ci	  so it can be loaded someplace besides the default 1MB.
263562306a36Sopenharmony_ci	  The relocations make the kernel binary about 15% larger,
263662306a36Sopenharmony_ci	  but are discarded at runtime
263762306a36Sopenharmony_ci
263862306a36Sopenharmony_ciconfig RELOCATION_TABLE_SIZE
263962306a36Sopenharmony_ci	hex "Relocation table size"
264062306a36Sopenharmony_ci	depends on RELOCATABLE
264162306a36Sopenharmony_ci	range 0x0 0x01000000
264262306a36Sopenharmony_ci	default "0x00200000" if CPU_LOONGSON64
264362306a36Sopenharmony_ci	default "0x00100000"
264462306a36Sopenharmony_ci	help
264562306a36Sopenharmony_ci	  A table of relocation data will be appended to the kernel binary
264662306a36Sopenharmony_ci	  and parsed at boot to fix up the relocated kernel.
264762306a36Sopenharmony_ci
264862306a36Sopenharmony_ci	  This option allows the amount of space reserved for the table to be
264962306a36Sopenharmony_ci	  adjusted, although the default of 1Mb should be ok in most cases.
265062306a36Sopenharmony_ci
265162306a36Sopenharmony_ci	  The build will fail and a valid size suggested if this is too small.
265262306a36Sopenharmony_ci
265362306a36Sopenharmony_ci	  If unsure, leave at the default value.
265462306a36Sopenharmony_ci
265562306a36Sopenharmony_ciconfig RANDOMIZE_BASE
265662306a36Sopenharmony_ci	bool "Randomize the address of the kernel image"
265762306a36Sopenharmony_ci	depends on RELOCATABLE
265862306a36Sopenharmony_ci	help
265962306a36Sopenharmony_ci	  Randomizes the physical and virtual address at which the
266062306a36Sopenharmony_ci	  kernel image is loaded, as a security feature that
266162306a36Sopenharmony_ci	  deters exploit attempts relying on knowledge of the location
266262306a36Sopenharmony_ci	  of kernel internals.
266362306a36Sopenharmony_ci
266462306a36Sopenharmony_ci	  Entropy is generated using any coprocessor 0 registers available.
266562306a36Sopenharmony_ci
266662306a36Sopenharmony_ci	  The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
266762306a36Sopenharmony_ci
266862306a36Sopenharmony_ci	  If unsure, say N.
266962306a36Sopenharmony_ci
267062306a36Sopenharmony_ciconfig RANDOMIZE_BASE_MAX_OFFSET
267162306a36Sopenharmony_ci	hex "Maximum kASLR offset" if EXPERT
267262306a36Sopenharmony_ci	depends on RANDOMIZE_BASE
267362306a36Sopenharmony_ci	range 0x0 0x40000000 if EVA || 64BIT
267462306a36Sopenharmony_ci	range 0x0 0x08000000
267562306a36Sopenharmony_ci	default "0x01000000"
267662306a36Sopenharmony_ci	help
267762306a36Sopenharmony_ci	  When kASLR is active, this provides the maximum offset that will
267862306a36Sopenharmony_ci	  be applied to the kernel image. It should be set according to the
267962306a36Sopenharmony_ci	  amount of physical RAM available in the target system minus
268062306a36Sopenharmony_ci	  PHYSICAL_START and must be a power of 2.
268162306a36Sopenharmony_ci
268262306a36Sopenharmony_ci	  This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
268362306a36Sopenharmony_ci	  EVA or 64-bit. The default is 16Mb.
268462306a36Sopenharmony_ci
268562306a36Sopenharmony_ciconfig NODES_SHIFT
268662306a36Sopenharmony_ci	int
268762306a36Sopenharmony_ci	default "6"
268862306a36Sopenharmony_ci	depends on NUMA
268962306a36Sopenharmony_ci
269062306a36Sopenharmony_ciconfig HW_PERF_EVENTS
269162306a36Sopenharmony_ci	bool "Enable hardware performance counter support for perf events"
269262306a36Sopenharmony_ci	depends on PERF_EVENTS && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_LOONGSON64)
269362306a36Sopenharmony_ci	default y
269462306a36Sopenharmony_ci	help
269562306a36Sopenharmony_ci	  Enable hardware performance counter support for perf events. If
269662306a36Sopenharmony_ci	  disabled, perf events will use software events only.
269762306a36Sopenharmony_ci
269862306a36Sopenharmony_ciconfig DMI
269962306a36Sopenharmony_ci	bool "Enable DMI scanning"
270062306a36Sopenharmony_ci	depends on MACH_LOONGSON64
270162306a36Sopenharmony_ci	select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
270262306a36Sopenharmony_ci	default y
270362306a36Sopenharmony_ci	help
270462306a36Sopenharmony_ci	  Enabled scanning of DMI to identify machine quirks. Say Y
270562306a36Sopenharmony_ci	  here unless you have verified that your setup is not
270662306a36Sopenharmony_ci	  affected by entries in the DMI blacklist. Required by PNP
270762306a36Sopenharmony_ci	  BIOS code.
270862306a36Sopenharmony_ci
270962306a36Sopenharmony_ciconfig SMP
271062306a36Sopenharmony_ci	bool "Multi-Processing support"
271162306a36Sopenharmony_ci	depends on SYS_SUPPORTS_SMP
271262306a36Sopenharmony_ci	help
271362306a36Sopenharmony_ci	  This enables support for systems with more than one CPU. If you have
271462306a36Sopenharmony_ci	  a system with only one CPU, say N. If you have a system with more
271562306a36Sopenharmony_ci	  than one CPU, say Y.
271662306a36Sopenharmony_ci
271762306a36Sopenharmony_ci	  If you say N here, the kernel will run on uni- and multiprocessor
271862306a36Sopenharmony_ci	  machines, but will use only one CPU of a multiprocessor machine. If
271962306a36Sopenharmony_ci	  you say Y here, the kernel will run on many, but not all,
272062306a36Sopenharmony_ci	  uniprocessor machines. On a uniprocessor machine, the kernel
272162306a36Sopenharmony_ci	  will run faster if you say N here.
272262306a36Sopenharmony_ci
272362306a36Sopenharmony_ci	  People using multiprocessor machines who say Y here should also say
272462306a36Sopenharmony_ci	  Y to "Enhanced Real Time Clock Support", below.
272562306a36Sopenharmony_ci
272662306a36Sopenharmony_ci	  See also the SMP-HOWTO available at
272762306a36Sopenharmony_ci	  <https://www.tldp.org/docs.html#howto>.
272862306a36Sopenharmony_ci
272962306a36Sopenharmony_ci	  If you don't know what to do here, say N.
273062306a36Sopenharmony_ci
273162306a36Sopenharmony_ciconfig HOTPLUG_CPU
273262306a36Sopenharmony_ci	bool "Support for hot-pluggable CPUs"
273362306a36Sopenharmony_ci	depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
273462306a36Sopenharmony_ci	help
273562306a36Sopenharmony_ci	  Say Y here to allow turning CPUs off and on. CPUs can be
273662306a36Sopenharmony_ci	  controlled through /sys/devices/system/cpu.
273762306a36Sopenharmony_ci	  (Note: power management support will enable this option
273862306a36Sopenharmony_ci	    automatically on SMP systems. )
273962306a36Sopenharmony_ci	  Say N if you want to disable CPU hotplug.
274062306a36Sopenharmony_ci
274162306a36Sopenharmony_ciconfig SMP_UP
274262306a36Sopenharmony_ci	bool
274362306a36Sopenharmony_ci
274462306a36Sopenharmony_ciconfig SYS_SUPPORTS_MIPS_CPS
274562306a36Sopenharmony_ci	bool
274662306a36Sopenharmony_ci
274762306a36Sopenharmony_ciconfig SYS_SUPPORTS_SMP
274862306a36Sopenharmony_ci	bool
274962306a36Sopenharmony_ci
275062306a36Sopenharmony_ciconfig NR_CPUS_DEFAULT_4
275162306a36Sopenharmony_ci	bool
275262306a36Sopenharmony_ci
275362306a36Sopenharmony_ciconfig NR_CPUS_DEFAULT_8
275462306a36Sopenharmony_ci	bool
275562306a36Sopenharmony_ci
275662306a36Sopenharmony_ciconfig NR_CPUS_DEFAULT_16
275762306a36Sopenharmony_ci	bool
275862306a36Sopenharmony_ci
275962306a36Sopenharmony_ciconfig NR_CPUS_DEFAULT_32
276062306a36Sopenharmony_ci	bool
276162306a36Sopenharmony_ci
276262306a36Sopenharmony_ciconfig NR_CPUS_DEFAULT_64
276362306a36Sopenharmony_ci	bool
276462306a36Sopenharmony_ci
276562306a36Sopenharmony_ciconfig NR_CPUS
276662306a36Sopenharmony_ci	int "Maximum number of CPUs (2-256)"
276762306a36Sopenharmony_ci	range 2 256
276862306a36Sopenharmony_ci	depends on SMP
276962306a36Sopenharmony_ci	default "4" if NR_CPUS_DEFAULT_4
277062306a36Sopenharmony_ci	default "8" if NR_CPUS_DEFAULT_8
277162306a36Sopenharmony_ci	default "16" if NR_CPUS_DEFAULT_16
277262306a36Sopenharmony_ci	default "32" if NR_CPUS_DEFAULT_32
277362306a36Sopenharmony_ci	default "64" if NR_CPUS_DEFAULT_64
277462306a36Sopenharmony_ci	help
277562306a36Sopenharmony_ci	  This allows you to specify the maximum number of CPUs which this
277662306a36Sopenharmony_ci	  kernel will support.  The maximum supported value is 32 for 32-bit
277762306a36Sopenharmony_ci	  kernel and 64 for 64-bit kernels; the minimum value which makes
277862306a36Sopenharmony_ci	  sense is 1 for Qemu (useful only for kernel debugging purposes)
277962306a36Sopenharmony_ci	  and 2 for all others.
278062306a36Sopenharmony_ci
278162306a36Sopenharmony_ci	  This is purely to save memory - each supported CPU adds
278262306a36Sopenharmony_ci	  approximately eight kilobytes to the kernel image.  For best
278362306a36Sopenharmony_ci	  performance should round up your number of processors to the next
278462306a36Sopenharmony_ci	  power of two.
278562306a36Sopenharmony_ci
278662306a36Sopenharmony_ciconfig MIPS_PERF_SHARED_TC_COUNTERS
278762306a36Sopenharmony_ci	bool
278862306a36Sopenharmony_ci
278962306a36Sopenharmony_ciconfig MIPS_NR_CPU_NR_MAP_1024
279062306a36Sopenharmony_ci	bool
279162306a36Sopenharmony_ci
279262306a36Sopenharmony_ciconfig MIPS_NR_CPU_NR_MAP
279362306a36Sopenharmony_ci	int
279462306a36Sopenharmony_ci	depends on SMP
279562306a36Sopenharmony_ci	default 1024 if MIPS_NR_CPU_NR_MAP_1024
279662306a36Sopenharmony_ci	default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
279762306a36Sopenharmony_ci
279862306a36Sopenharmony_ci#
279962306a36Sopenharmony_ci# Timer Interrupt Frequency Configuration
280062306a36Sopenharmony_ci#
280162306a36Sopenharmony_ci
280262306a36Sopenharmony_cichoice
280362306a36Sopenharmony_ci	prompt "Timer frequency"
280462306a36Sopenharmony_ci	default HZ_250
280562306a36Sopenharmony_ci	help
280662306a36Sopenharmony_ci	  Allows the configuration of the timer frequency.
280762306a36Sopenharmony_ci
280862306a36Sopenharmony_ci	config HZ_24
280962306a36Sopenharmony_ci		bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
281062306a36Sopenharmony_ci
281162306a36Sopenharmony_ci	config HZ_48
281262306a36Sopenharmony_ci		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
281362306a36Sopenharmony_ci
281462306a36Sopenharmony_ci	config HZ_100
281562306a36Sopenharmony_ci		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
281662306a36Sopenharmony_ci
281762306a36Sopenharmony_ci	config HZ_128
281862306a36Sopenharmony_ci		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
281962306a36Sopenharmony_ci
282062306a36Sopenharmony_ci	config HZ_250
282162306a36Sopenharmony_ci		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
282262306a36Sopenharmony_ci
282362306a36Sopenharmony_ci	config HZ_256
282462306a36Sopenharmony_ci		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
282562306a36Sopenharmony_ci
282662306a36Sopenharmony_ci	config HZ_1000
282762306a36Sopenharmony_ci		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
282862306a36Sopenharmony_ci
282962306a36Sopenharmony_ci	config HZ_1024
283062306a36Sopenharmony_ci		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
283162306a36Sopenharmony_ci
283262306a36Sopenharmony_ciendchoice
283362306a36Sopenharmony_ci
283462306a36Sopenharmony_ciconfig SYS_SUPPORTS_24HZ
283562306a36Sopenharmony_ci	bool
283662306a36Sopenharmony_ci
283762306a36Sopenharmony_ciconfig SYS_SUPPORTS_48HZ
283862306a36Sopenharmony_ci	bool
283962306a36Sopenharmony_ci
284062306a36Sopenharmony_ciconfig SYS_SUPPORTS_100HZ
284162306a36Sopenharmony_ci	bool
284262306a36Sopenharmony_ci
284362306a36Sopenharmony_ciconfig SYS_SUPPORTS_128HZ
284462306a36Sopenharmony_ci	bool
284562306a36Sopenharmony_ci
284662306a36Sopenharmony_ciconfig SYS_SUPPORTS_250HZ
284762306a36Sopenharmony_ci	bool
284862306a36Sopenharmony_ci
284962306a36Sopenharmony_ciconfig SYS_SUPPORTS_256HZ
285062306a36Sopenharmony_ci	bool
285162306a36Sopenharmony_ci
285262306a36Sopenharmony_ciconfig SYS_SUPPORTS_1000HZ
285362306a36Sopenharmony_ci	bool
285462306a36Sopenharmony_ci
285562306a36Sopenharmony_ciconfig SYS_SUPPORTS_1024HZ
285662306a36Sopenharmony_ci	bool
285762306a36Sopenharmony_ci
285862306a36Sopenharmony_ciconfig SYS_SUPPORTS_ARBIT_HZ
285962306a36Sopenharmony_ci	bool
286062306a36Sopenharmony_ci	default y if !SYS_SUPPORTS_24HZ && \
286162306a36Sopenharmony_ci		     !SYS_SUPPORTS_48HZ && \
286262306a36Sopenharmony_ci		     !SYS_SUPPORTS_100HZ && \
286362306a36Sopenharmony_ci		     !SYS_SUPPORTS_128HZ && \
286462306a36Sopenharmony_ci		     !SYS_SUPPORTS_250HZ && \
286562306a36Sopenharmony_ci		     !SYS_SUPPORTS_256HZ && \
286662306a36Sopenharmony_ci		     !SYS_SUPPORTS_1000HZ && \
286762306a36Sopenharmony_ci		     !SYS_SUPPORTS_1024HZ
286862306a36Sopenharmony_ci
286962306a36Sopenharmony_ciconfig HZ
287062306a36Sopenharmony_ci	int
287162306a36Sopenharmony_ci	default 24 if HZ_24
287262306a36Sopenharmony_ci	default 48 if HZ_48
287362306a36Sopenharmony_ci	default 100 if HZ_100
287462306a36Sopenharmony_ci	default 128 if HZ_128
287562306a36Sopenharmony_ci	default 250 if HZ_250
287662306a36Sopenharmony_ci	default 256 if HZ_256
287762306a36Sopenharmony_ci	default 1000 if HZ_1000
287862306a36Sopenharmony_ci	default 1024 if HZ_1024
287962306a36Sopenharmony_ci
288062306a36Sopenharmony_ciconfig SCHED_HRTICK
288162306a36Sopenharmony_ci	def_bool HIGH_RES_TIMERS
288262306a36Sopenharmony_ci
288362306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC
288462306a36Sopenharmony_ci	def_bool y
288562306a36Sopenharmony_ci
288662306a36Sopenharmony_ciconfig ARCH_SUPPORTS_CRASH_DUMP
288762306a36Sopenharmony_ci	def_bool y
288862306a36Sopenharmony_ci
288962306a36Sopenharmony_ciconfig PHYSICAL_START
289062306a36Sopenharmony_ci	hex "Physical address where the kernel is loaded"
289162306a36Sopenharmony_ci	default "0xffffffff84000000"
289262306a36Sopenharmony_ci	depends on CRASH_DUMP
289362306a36Sopenharmony_ci	help
289462306a36Sopenharmony_ci	  This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
289562306a36Sopenharmony_ci	  If you plan to use kernel for capturing the crash dump change
289662306a36Sopenharmony_ci	  this value to start of the reserved region (the "X" value as
289762306a36Sopenharmony_ci	  specified in the "crashkernel=YM@XM" command line boot parameter
289862306a36Sopenharmony_ci	  passed to the panic-ed kernel).
289962306a36Sopenharmony_ci
290062306a36Sopenharmony_ciconfig MIPS_O32_FP64_SUPPORT
290162306a36Sopenharmony_ci	bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
290262306a36Sopenharmony_ci	depends on 32BIT || MIPS32_O32
290362306a36Sopenharmony_ci	help
290462306a36Sopenharmony_ci	  When this is enabled, the kernel will support use of 64-bit floating
290562306a36Sopenharmony_ci	  point registers with binaries using the O32 ABI along with the
290662306a36Sopenharmony_ci	  EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
290762306a36Sopenharmony_ci	  32-bit MIPS systems this support is at the cost of increasing the
290862306a36Sopenharmony_ci	  size and complexity of the compiled FPU emulator. Thus if you are
290962306a36Sopenharmony_ci	  running a MIPS32 system and know that none of your userland binaries
291062306a36Sopenharmony_ci	  will require 64-bit floating point, you may wish to reduce the size
291162306a36Sopenharmony_ci	  of your kernel & potentially improve FP emulation performance by
291262306a36Sopenharmony_ci	  saying N here.
291362306a36Sopenharmony_ci
291462306a36Sopenharmony_ci	  Although binutils currently supports use of this flag the details
291562306a36Sopenharmony_ci	  concerning its effect upon the O32 ABI in userland are still being
291662306a36Sopenharmony_ci	  worked on. In order to avoid userland becoming dependent upon current
291762306a36Sopenharmony_ci	  behaviour before the details have been finalised, this option should
291862306a36Sopenharmony_ci	  be considered experimental and only enabled by those working upon
291962306a36Sopenharmony_ci	  said details.
292062306a36Sopenharmony_ci
292162306a36Sopenharmony_ci	  If unsure, say N.
292262306a36Sopenharmony_ci
292362306a36Sopenharmony_ciconfig USE_OF
292462306a36Sopenharmony_ci	bool
292562306a36Sopenharmony_ci	select OF
292662306a36Sopenharmony_ci	select OF_EARLY_FLATTREE
292762306a36Sopenharmony_ci	select IRQ_DOMAIN
292862306a36Sopenharmony_ci
292962306a36Sopenharmony_ciconfig UHI_BOOT
293062306a36Sopenharmony_ci	bool
293162306a36Sopenharmony_ci
293262306a36Sopenharmony_ciconfig BUILTIN_DTB
293362306a36Sopenharmony_ci	bool
293462306a36Sopenharmony_ci
293562306a36Sopenharmony_cichoice
293662306a36Sopenharmony_ci	prompt "Kernel appended dtb support" if USE_OF
293762306a36Sopenharmony_ci	default MIPS_NO_APPENDED_DTB
293862306a36Sopenharmony_ci
293962306a36Sopenharmony_ci	config MIPS_NO_APPENDED_DTB
294062306a36Sopenharmony_ci		bool "None"
294162306a36Sopenharmony_ci		help
294262306a36Sopenharmony_ci		  Do not enable appended dtb support.
294362306a36Sopenharmony_ci
294462306a36Sopenharmony_ci	config MIPS_ELF_APPENDED_DTB
294562306a36Sopenharmony_ci		bool "vmlinux"
294662306a36Sopenharmony_ci		help
294762306a36Sopenharmony_ci		  With this option, the boot code will look for a device tree binary
294862306a36Sopenharmony_ci		  DTB) included in the vmlinux ELF section .appended_dtb. By default
294962306a36Sopenharmony_ci		  it is empty and the DTB can be appended using binutils command
295062306a36Sopenharmony_ci		  objcopy:
295162306a36Sopenharmony_ci
295262306a36Sopenharmony_ci		    objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
295362306a36Sopenharmony_ci
295462306a36Sopenharmony_ci		  This is meant as a backward compatibility convenience for those
295562306a36Sopenharmony_ci		  systems with a bootloader that can't be upgraded to accommodate
295662306a36Sopenharmony_ci		  the documented boot protocol using a device tree.
295762306a36Sopenharmony_ci
295862306a36Sopenharmony_ci	config MIPS_RAW_APPENDED_DTB
295962306a36Sopenharmony_ci		bool "vmlinux.bin or vmlinuz.bin"
296062306a36Sopenharmony_ci		help
296162306a36Sopenharmony_ci		  With this option, the boot code will look for a device tree binary
296262306a36Sopenharmony_ci		  DTB) appended to raw vmlinux.bin or vmlinuz.bin.
296362306a36Sopenharmony_ci		  (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
296462306a36Sopenharmony_ci
296562306a36Sopenharmony_ci		  This is meant as a backward compatibility convenience for those
296662306a36Sopenharmony_ci		  systems with a bootloader that can't be upgraded to accommodate
296762306a36Sopenharmony_ci		  the documented boot protocol using a device tree.
296862306a36Sopenharmony_ci
296962306a36Sopenharmony_ci		  Beware that there is very little in terms of protection against
297062306a36Sopenharmony_ci		  this option being confused by leftover garbage in memory that might
297162306a36Sopenharmony_ci		  look like a DTB header after a reboot if no actual DTB is appended
297262306a36Sopenharmony_ci		  to vmlinux.bin.  Do not leave this option active in a production kernel
297362306a36Sopenharmony_ci		  if you don't intend to always append a DTB.
297462306a36Sopenharmony_ciendchoice
297562306a36Sopenharmony_ci
297662306a36Sopenharmony_cichoice
297762306a36Sopenharmony_ci	prompt "Kernel command line type" if !CMDLINE_OVERRIDE
297862306a36Sopenharmony_ci	default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
297962306a36Sopenharmony_ci					 !MACH_LOONGSON64 && !MIPS_MALTA && \
298062306a36Sopenharmony_ci					 !CAVIUM_OCTEON_SOC
298162306a36Sopenharmony_ci	default MIPS_CMDLINE_FROM_BOOTLOADER
298262306a36Sopenharmony_ci
298362306a36Sopenharmony_ci	config MIPS_CMDLINE_FROM_DTB
298462306a36Sopenharmony_ci		depends on USE_OF
298562306a36Sopenharmony_ci		bool "Dtb kernel arguments if available"
298662306a36Sopenharmony_ci
298762306a36Sopenharmony_ci	config MIPS_CMDLINE_DTB_EXTEND
298862306a36Sopenharmony_ci		depends on USE_OF
298962306a36Sopenharmony_ci		bool "Extend dtb kernel arguments with bootloader arguments"
299062306a36Sopenharmony_ci
299162306a36Sopenharmony_ci	config MIPS_CMDLINE_FROM_BOOTLOADER
299262306a36Sopenharmony_ci		bool "Bootloader kernel arguments if available"
299362306a36Sopenharmony_ci
299462306a36Sopenharmony_ci	config MIPS_CMDLINE_BUILTIN_EXTEND
299562306a36Sopenharmony_ci		depends on CMDLINE_BOOL
299662306a36Sopenharmony_ci		bool "Extend builtin kernel arguments with bootloader arguments"
299762306a36Sopenharmony_ciendchoice
299862306a36Sopenharmony_ci
299962306a36Sopenharmony_ciendmenu
300062306a36Sopenharmony_ci
300162306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT
300262306a36Sopenharmony_ci	bool
300362306a36Sopenharmony_ci	default y
300462306a36Sopenharmony_ci
300562306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT
300662306a36Sopenharmony_ci	bool
300762306a36Sopenharmony_ci	default y
300862306a36Sopenharmony_ci
300962306a36Sopenharmony_ciconfig PGTABLE_LEVELS
301062306a36Sopenharmony_ci	int
301162306a36Sopenharmony_ci	default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
301262306a36Sopenharmony_ci	default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48)
301362306a36Sopenharmony_ci	default 2
301462306a36Sopenharmony_ci
301562306a36Sopenharmony_ciconfig MIPS_AUTO_PFN_OFFSET
301662306a36Sopenharmony_ci	bool
301762306a36Sopenharmony_ci
301862306a36Sopenharmony_cimenu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
301962306a36Sopenharmony_ci
302062306a36Sopenharmony_ciconfig PCI_DRIVERS_GENERIC
302162306a36Sopenharmony_ci	select PCI_DOMAINS_GENERIC if PCI
302262306a36Sopenharmony_ci	bool
302362306a36Sopenharmony_ci
302462306a36Sopenharmony_ciconfig PCI_DRIVERS_LEGACY
302562306a36Sopenharmony_ci	def_bool !PCI_DRIVERS_GENERIC
302662306a36Sopenharmony_ci	select NO_GENERIC_PCI_IOPORT_MAP
302762306a36Sopenharmony_ci	select PCI_DOMAINS if PCI
302862306a36Sopenharmony_ci
302962306a36Sopenharmony_ci#
303062306a36Sopenharmony_ci# ISA support is now enabled via select.  Too many systems still have the one
303162306a36Sopenharmony_ci# or other ISA chip on the board that users don't know about so don't expect
303262306a36Sopenharmony_ci# users to choose the right thing ...
303362306a36Sopenharmony_ci#
303462306a36Sopenharmony_ciconfig ISA
303562306a36Sopenharmony_ci	bool
303662306a36Sopenharmony_ci
303762306a36Sopenharmony_ciconfig TC
303862306a36Sopenharmony_ci	bool "TURBOchannel support"
303962306a36Sopenharmony_ci	depends on MACH_DECSTATION
304062306a36Sopenharmony_ci	help
304162306a36Sopenharmony_ci	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
304262306a36Sopenharmony_ci	  processors.  TURBOchannel programming specifications are available
304362306a36Sopenharmony_ci	  at:
304462306a36Sopenharmony_ci	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
304562306a36Sopenharmony_ci	  and:
304662306a36Sopenharmony_ci	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
304762306a36Sopenharmony_ci	  Linux driver support status is documented at:
304862306a36Sopenharmony_ci	  <http://www.linux-mips.org/wiki/DECstation>
304962306a36Sopenharmony_ci
305062306a36Sopenharmony_ciconfig MMU
305162306a36Sopenharmony_ci	bool
305262306a36Sopenharmony_ci	default y
305362306a36Sopenharmony_ci
305462306a36Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN
305562306a36Sopenharmony_ci	default 12 if 64BIT
305662306a36Sopenharmony_ci	default 8
305762306a36Sopenharmony_ci
305862306a36Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX
305962306a36Sopenharmony_ci	default 18 if 64BIT
306062306a36Sopenharmony_ci	default 15
306162306a36Sopenharmony_ci
306262306a36Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MIN
306362306a36Sopenharmony_ci	default 8
306462306a36Sopenharmony_ci
306562306a36Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MAX
306662306a36Sopenharmony_ci	default 15
306762306a36Sopenharmony_ci
306862306a36Sopenharmony_ciconfig I8253
306962306a36Sopenharmony_ci	bool
307062306a36Sopenharmony_ci	select CLKSRC_I8253
307162306a36Sopenharmony_ci	select CLKEVT_I8253
307262306a36Sopenharmony_ci	select MIPS_EXTERNAL_TIMER
307362306a36Sopenharmony_ciendmenu
307462306a36Sopenharmony_ci
307562306a36Sopenharmony_ciconfig TRAD_SIGNALS
307662306a36Sopenharmony_ci	bool
307762306a36Sopenharmony_ci
307862306a36Sopenharmony_ciconfig MIPS32_COMPAT
307962306a36Sopenharmony_ci	bool
308062306a36Sopenharmony_ci
308162306a36Sopenharmony_ciconfig COMPAT
308262306a36Sopenharmony_ci	bool
308362306a36Sopenharmony_ci
308462306a36Sopenharmony_ciconfig MIPS32_O32
308562306a36Sopenharmony_ci	bool "Kernel support for o32 binaries"
308662306a36Sopenharmony_ci	depends on 64BIT
308762306a36Sopenharmony_ci	select ARCH_WANT_OLD_COMPAT_IPC
308862306a36Sopenharmony_ci	select COMPAT
308962306a36Sopenharmony_ci	select MIPS32_COMPAT
309062306a36Sopenharmony_ci	help
309162306a36Sopenharmony_ci	  Select this option if you want to run o32 binaries.  These are pure
309262306a36Sopenharmony_ci	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
309362306a36Sopenharmony_ci	  existing binaries are in this format.
309462306a36Sopenharmony_ci
309562306a36Sopenharmony_ci	  If unsure, say Y.
309662306a36Sopenharmony_ci
309762306a36Sopenharmony_ciconfig MIPS32_N32
309862306a36Sopenharmony_ci	bool "Kernel support for n32 binaries"
309962306a36Sopenharmony_ci	depends on 64BIT
310062306a36Sopenharmony_ci	select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
310162306a36Sopenharmony_ci	select COMPAT
310262306a36Sopenharmony_ci	select MIPS32_COMPAT
310362306a36Sopenharmony_ci	help
310462306a36Sopenharmony_ci	  Select this option if you want to run n32 binaries.  These are
310562306a36Sopenharmony_ci	  64-bit binaries using 32-bit quantities for addressing and certain
310662306a36Sopenharmony_ci	  data that would normally be 64-bit.  They are used in special
310762306a36Sopenharmony_ci	  cases.
310862306a36Sopenharmony_ci
310962306a36Sopenharmony_ci	  If unsure, say N.
311062306a36Sopenharmony_ci
311162306a36Sopenharmony_ciconfig CC_HAS_MNO_BRANCH_LIKELY
311262306a36Sopenharmony_ci	def_bool y
311362306a36Sopenharmony_ci	depends on $(cc-option,-mno-branch-likely)
311462306a36Sopenharmony_ci
311562306a36Sopenharmony_ci# https://github.com/llvm/llvm-project/issues/61045
311662306a36Sopenharmony_ciconfig CC_HAS_BROKEN_INLINE_COMPAT_BRANCH
311762306a36Sopenharmony_ci	def_bool y if CC_IS_CLANG
311862306a36Sopenharmony_ci
311962306a36Sopenharmony_cimenu "Power management options"
312062306a36Sopenharmony_ci
312162306a36Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE
312262306a36Sopenharmony_ci	def_bool y
312362306a36Sopenharmony_ci	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
312462306a36Sopenharmony_ci
312562306a36Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE
312662306a36Sopenharmony_ci	def_bool y
312762306a36Sopenharmony_ci	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
312862306a36Sopenharmony_ci
312962306a36Sopenharmony_cisource "kernel/power/Kconfig"
313062306a36Sopenharmony_ci
313162306a36Sopenharmony_ciendmenu
313262306a36Sopenharmony_ci
313362306a36Sopenharmony_ciconfig MIPS_EXTERNAL_TIMER
313462306a36Sopenharmony_ci	bool
313562306a36Sopenharmony_ci
313662306a36Sopenharmony_cimenu "CPU Power Management"
313762306a36Sopenharmony_ci
313862306a36Sopenharmony_ciif CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
313962306a36Sopenharmony_cisource "drivers/cpufreq/Kconfig"
314062306a36Sopenharmony_ciendif # CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
314162306a36Sopenharmony_ci
314262306a36Sopenharmony_cisource "drivers/cpuidle/Kconfig"
314362306a36Sopenharmony_ci
314462306a36Sopenharmony_ciendmenu
314562306a36Sopenharmony_ci
314662306a36Sopenharmony_cisource "arch/mips/kvm/Kconfig"
314762306a36Sopenharmony_ci
314862306a36Sopenharmony_cisource "arch/mips/vdso/Kconfig"
3149