3238 lines
84 KiB
Plaintext
3238 lines
84 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
config MIPS
|
|
bool
|
|
default y
|
|
select ARCH_32BIT_OFF_T if !64BIT
|
|
select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
|
|
select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
|
|
select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
|
|
select ARCH_HAS_FORTIFY_SOURCE
|
|
select ARCH_HAS_KCOV
|
|
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
|
|
select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
|
|
select ARCH_HAS_STRNCPY_FROM_USER
|
|
select ARCH_HAS_STRNLEN_USER
|
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
|
select ARCH_KEEP_MEMBLOCK
|
|
select ARCH_SUPPORTS_UPROBES
|
|
select ARCH_USE_BUILTIN_BSWAP
|
|
select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
|
|
select ARCH_USE_MEMTEST
|
|
select ARCH_USE_QUEUED_RWLOCKS
|
|
select ARCH_USE_QUEUED_SPINLOCKS
|
|
select ARCH_SUPPORTS_HUGETLBFS if CPU_SUPPORTS_HUGEPAGES
|
|
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select ARCH_WANT_LD_ORPHAN_WARN
|
|
select BUILDTIME_TABLE_SORT
|
|
select CLONE_BACKWARDS
|
|
select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
|
|
select CPU_PM if CPU_IDLE
|
|
select GENERIC_ATOMIC64 if !64BIT
|
|
select GENERIC_CMOS_UPDATE
|
|
select GENERIC_CPU_AUTOPROBE
|
|
select GENERIC_GETTIMEOFDAY
|
|
select GENERIC_IOMAP
|
|
select GENERIC_IRQ_PROBE
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_ISA_DMA if EISA
|
|
select GENERIC_LIB_ASHLDI3
|
|
select GENERIC_LIB_ASHRDI3
|
|
select GENERIC_LIB_CMPDI2
|
|
select GENERIC_LIB_LSHRDI3
|
|
select GENERIC_LIB_UCMPDI2
|
|
select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_TIME_VSYSCALL
|
|
select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
|
|
select HAVE_ARCH_COMPILER_H
|
|
select HAVE_ARCH_JUMP_LABEL
|
|
select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
|
|
select HAVE_ARCH_MMAP_RND_BITS if MMU
|
|
select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
|
|
select HAVE_ARCH_SECCOMP_FILTER
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
|
|
select HAVE_ASM_MODVERSIONS
|
|
select HAVE_CONTEXT_TRACKING_USER
|
|
select HAVE_TIF_NOHZ
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select HAVE_DEBUG_STACKOVERFLOW
|
|
select HAVE_DMA_CONTIGUOUS
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_EBPF_JIT if !CPU_MICROMIPS && \
|
|
!CPU_DADDI_WORKAROUNDS && \
|
|
!CPU_R4000_WORKAROUNDS && \
|
|
!CPU_R4400_WORKAROUNDS
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_FAST_GUP
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_GCC_PLUGINS
|
|
select HAVE_GENERIC_VDSO
|
|
select HAVE_IOREMAP_PROT
|
|
select HAVE_IRQ_EXIT_ON_IRQ_STACK
|
|
select HAVE_IRQ_TIME_ACCOUNTING
|
|
select HAVE_KPROBES
|
|
select HAVE_KRETPROBES
|
|
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
select HAVE_NMI
|
|
select HAVE_PATA_PLATFORM
|
|
select HAVE_PERF_EVENTS
|
|
select HAVE_PERF_REGS
|
|
select HAVE_PERF_USER_STACK_DUMP
|
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
|
select HAVE_RSEQ
|
|
select HAVE_SPARSE_SYSCALL_NR
|
|
select HAVE_STACKPROTECTOR
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
|
|
select IRQ_FORCED_THREADING
|
|
select ISA if EISA
|
|
select MODULES_USE_ELF_REL if MODULES
|
|
select MODULES_USE_ELF_RELA if MODULES && 64BIT
|
|
select PERF_USE_VMALLOC
|
|
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
|
select RTC_LIB
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select TRACE_IRQFLAGS_SUPPORT
|
|
select ARCH_HAS_ELFCORE_COMPAT
|
|
select HAVE_ARCH_KCSAN if 64BIT
|
|
|
|
config MIPS_FIXUP_BIGPHYS_ADDR
|
|
bool
|
|
|
|
config MIPS_GENERIC
|
|
bool
|
|
|
|
config MACH_INGENIC
|
|
bool
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select DMA_NONCOHERENT
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
|
select IRQ_MIPS_CPU
|
|
select PINCTRL
|
|
select GPIOLIB
|
|
select COMMON_CLK
|
|
select GENERIC_IRQ_CHIP
|
|
select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
|
|
select USE_OF
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select MIPS_EXTERNAL_TIMER
|
|
|
|
menu "Machine selection"
|
|
|
|
choice
|
|
prompt "System type"
|
|
default MIPS_GENERIC_KERNEL
|
|
|
|
config MIPS_GENERIC_KERNEL
|
|
bool "Generic board-agnostic MIPS kernel"
|
|
select ARCH_HAS_SETUP_DMA_OPS
|
|
select MIPS_GENERIC
|
|
select BOOT_RAW
|
|
select BUILTIN_DTB
|
|
select CEVT_R4K
|
|
select CLKSRC_MIPS_GIC
|
|
select COMMON_CLK
|
|
select CPU_MIPSR2_IRQ_EI
|
|
select CPU_MIPSR2_IRQ_VI
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select MIPS_AUTO_PFN_OFFSET
|
|
select MIPS_CPU_SCACHE
|
|
select MIPS_GIC
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
select NO_EXCEPT_FILL
|
|
select PCI_DRIVERS_GENERIC
|
|
select SMP_UP if SMP
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_HAS_CPU_MIPS32_R6
|
|
select SYS_HAS_CPU_MIPS64_R1
|
|
select SYS_HAS_CPU_MIPS64_R2
|
|
select SYS_HAS_CPU_MIPS64_R6
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_MICROMIPS
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_MIPS_CPS
|
|
select SYS_SUPPORTS_MULTITHREADING
|
|
select SYS_SUPPORTS_RELOCATABLE
|
|
select SYS_SUPPORTS_SMARTMIPS
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select UHI_BOOT
|
|
select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
|
|
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
|
|
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
|
|
select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select USE_OF
|
|
help
|
|
Select this to build a kernel which aims to support multiple boards,
|
|
generally using a flattened device tree passed from the bootloader
|
|
using the boot protocol defined in the UHI (Unified Hosting
|
|
Interface) specification.
|
|
|
|
config MIPS_ALCHEMY
|
|
bool "Alchemy processor based machines"
|
|
select PHYS_ADDR_T_64BIT
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select IRQ_MIPS_CPU
|
|
select DMA_NONCOHERENT # Au1000,1500,1100 aren't, rest is
|
|
select MIPS_FIXUP_BIGPHYS_ADDR if PCI
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_APM_EMULATION
|
|
select GPIOLIB
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select COMMON_CLK
|
|
|
|
config AR7
|
|
bool "Texas Instruments AR7"
|
|
select BOOT_ELF32
|
|
select COMMON_CLK
|
|
select DMA_NONCOHERENT
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select IRQ_MIPS_CPU
|
|
select NO_EXCEPT_FILL
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_ZBOOT_UART16550
|
|
select GPIOLIB
|
|
select VLYNQ
|
|
help
|
|
Support for the Texas Instruments AR7 System-on-a-Chip
|
|
family: TNETD7100, 7200 and 7300.
|
|
|
|
config ATH25
|
|
bool "Atheros AR231x/AR531x SoC support"
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select IRQ_DOMAIN
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_HAS_EARLY_PRINTK
|
|
help
|
|
Support for Atheros AR231x and Atheros AR531x based boards
|
|
|
|
config ATH79
|
|
bool "Atheros AR71XX/AR724X/AR913X based boards"
|
|
select ARCH_HAS_RESET_CONTROLLER
|
|
select BOOT_RAW
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select GPIOLIB
|
|
select PINCTRL
|
|
select COMMON_CLK
|
|
select IRQ_MIPS_CPU
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_ZBOOT_UART_PROM
|
|
select USE_OF
|
|
select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
|
|
help
|
|
Support for the Atheros AR71XX/AR724X/AR913X SoCs.
|
|
|
|
config BMIPS_GENERIC
|
|
bool "Broadcom Generic BMIPS kernel"
|
|
select ARCH_HAS_RESET_CONTROLLER
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
|
|
select BOOT_RAW
|
|
select NO_EXCEPT_FILL
|
|
select USE_OF
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select SYNC_R4K
|
|
select COMMON_CLK
|
|
select BCM6345_L1_IRQ
|
|
select BCM7038_L1_IRQ
|
|
select BCM7120_L2_IRQ
|
|
select BRCMSTB_L2_IRQ
|
|
select IRQ_MIPS_CPU
|
|
select DMA_NONCOHERENT
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_HAS_CPU_BMIPS32_3300
|
|
select SYS_HAS_CPU_BMIPS4350
|
|
select SYS_HAS_CPU_BMIPS4380
|
|
select SYS_HAS_CPU_BMIPS5000
|
|
select SWAP_IO_SPACE
|
|
select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
|
|
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
|
|
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select HARDIRQS_SW_RESEND
|
|
select HAVE_PCI
|
|
select PCI_DRIVERS_GENERIC
|
|
select FW_CFE
|
|
help
|
|
Build a generic DT-based kernel image that boots on select
|
|
BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
|
|
box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
|
|
must be set appropriately for your board.
|
|
|
|
config BCM47XX
|
|
bool "Broadcom BCM47XX based boards"
|
|
select BOOT_RAW
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select NO_EXCEPT_FILL
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select USE_GENERIC_EARLY_PRINTK_8250
|
|
select GPIOLIB
|
|
select LEDS_GPIO_REGISTER
|
|
select BCM47XX_NVRAM
|
|
select BCM47XX_SPROM
|
|
select BCM47XX_SSB if !BCM47XX_BCMA
|
|
help
|
|
Support for BCM47XX based boards
|
|
|
|
config BCM63XX
|
|
bool "Broadcom BCM63XX based boards"
|
|
select BOOT_RAW
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select SYNC_R4K
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_HAS_CPU_BMIPS32_3300
|
|
select SYS_HAS_CPU_BMIPS4350
|
|
select SYS_HAS_CPU_BMIPS4380
|
|
select SWAP_IO_SPACE
|
|
select GPIOLIB
|
|
select MIPS_L1_CACHE_SHIFT_4
|
|
select HAVE_LEGACY_CLK
|
|
help
|
|
Support for BCM63XX based boards
|
|
|
|
config MIPS_COBALT
|
|
bool "Cobalt Server"
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select CEVT_GT641XX
|
|
select DMA_NONCOHERENT
|
|
select FORCE_PCI
|
|
select I8253
|
|
select I8259
|
|
select IRQ_MIPS_CPU
|
|
select IRQ_GT641XX
|
|
select PCI_GT64XXX_PCI0
|
|
select SYS_HAS_CPU_NEVADA
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select USE_GENERIC_EARLY_PRINTK_8250
|
|
|
|
config MACH_DECSTATION
|
|
bool "DECstations"
|
|
select BOOT_ELF32
|
|
select CEVT_DS1287
|
|
select CEVT_R4K if CPU_R4X00
|
|
select CSRC_IOASIC
|
|
select CSRC_R4K if CPU_R4X00
|
|
select CPU_DADDI_WORKAROUNDS if 64BIT
|
|
select CPU_R4000_WORKAROUNDS if 64BIT
|
|
select CPU_R4400_WORKAROUNDS if 64BIT
|
|
select DMA_NONCOHERENT
|
|
select NO_IOPORT_MAP
|
|
select IRQ_MIPS_CPU
|
|
select SYS_HAS_CPU_R3000
|
|
select SYS_HAS_CPU_R4X00
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_128HZ
|
|
select SYS_SUPPORTS_256HZ
|
|
select SYS_SUPPORTS_1024HZ
|
|
select MIPS_L1_CACHE_SHIFT_4
|
|
help
|
|
This enables support for DEC's MIPS based workstations. For details
|
|
see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
|
|
DECstation porting pages on <http://decstation.unix-ag.org/>.
|
|
|
|
If you have one of the following DECstation Models you definitely
|
|
want to choose R4xx0 for the CPU Type:
|
|
|
|
DECstation 5000/50
|
|
DECstation 5000/150
|
|
DECstation 5000/260
|
|
DECsystem 5900/260
|
|
|
|
otherwise choose R3000.
|
|
|
|
config MACH_JAZZ
|
|
bool "Jazz family of machines"
|
|
select ARC_MEMORY
|
|
select ARC_PROMLIB
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select DMA_OPS
|
|
select FW_ARC
|
|
select FW_ARC32
|
|
select ARCH_MAY_HAVE_PC_FDC
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
|
|
select GENERIC_ISA_DMA
|
|
select HAVE_PCSPKR_PLATFORM
|
|
select IRQ_MIPS_CPU
|
|
select I8253
|
|
select I8259
|
|
select ISA
|
|
select SYS_HAS_CPU_R4X00
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_100HZ
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
help
|
|
This a family of machines based on the MIPS R4030 chipset which was
|
|
used by several vendors to build RISC/os and Windows NT workstations.
|
|
Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
|
|
Olivetti M700-10 workstations.
|
|
|
|
config MACH_INGENIC_SOC
|
|
bool "Ingenic SoC based machines"
|
|
select MIPS_GENERIC
|
|
select MACH_INGENIC
|
|
select SYS_SUPPORTS_ZBOOT_UART16550
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select MIPS_EXTERNAL_TIMER
|
|
|
|
config LANTIQ
|
|
bool "Lantiq based platforms"
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select NO_EXCEPT_FILL
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_MULTITHREADING
|
|
select SYS_SUPPORTS_VPE_LOADER
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select GPIOLIB
|
|
select SWAP_IO_SPACE
|
|
select BOOT_RAW
|
|
select HAVE_LEGACY_CLK
|
|
select USE_OF
|
|
select PINCTRL
|
|
select PINCTRL_LANTIQ
|
|
select ARCH_HAS_RESET_CONTROLLER
|
|
select RESET_CONTROLLER
|
|
|
|
config MACH_LOONGSON32
|
|
bool "Loongson 32-bit family of machines"
|
|
select SYS_SUPPORTS_ZBOOT
|
|
help
|
|
This enables support for the Loongson-1 family of machines.
|
|
|
|
Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
|
|
the Institute of Computing Technology (ICT), Chinese Academy of
|
|
Sciences (CAS).
|
|
|
|
config MACH_LOONGSON2EF
|
|
bool "Loongson-2E/F family of machines"
|
|
select SYS_SUPPORTS_ZBOOT
|
|
help
|
|
This enables the support of early Loongson-2E/F family of machines.
|
|
|
|
config MACH_LOONGSON64
|
|
bool "Loongson 64-bit family of machines"
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
select BOOT_ELF32
|
|
select BOARD_SCACHE
|
|
select CSRC_R4K
|
|
select CEVT_R4K
|
|
select CPU_HAS_WB
|
|
select FORCE_PCI
|
|
select ISA
|
|
select I8259
|
|
select IRQ_MIPS_CPU
|
|
select NO_EXCEPT_FILL
|
|
select NR_CPUS_DEFAULT_64
|
|
select USE_GENERIC_EARLY_PRINTK_8250
|
|
select PCI_DRIVERS_GENERIC
|
|
select SYS_HAS_CPU_LOONGSON64
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_SMP
|
|
select SYS_SUPPORTS_HOTPLUG_CPU
|
|
select SYS_SUPPORTS_NUMA
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select SYS_SUPPORTS_RELOCATABLE
|
|
select ZONE_DMA32
|
|
select COMMON_CLK
|
|
select USE_OF
|
|
select BUILTIN_DTB
|
|
select PCI_HOST_GENERIC
|
|
select HAVE_ARCH_NODEDATA_EXTENSION if NUMA
|
|
help
|
|
This enables the support of Loongson-2/3 family of machines.
|
|
|
|
Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
|
|
GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
|
|
and Loongson-2F which will be removed), developed by the Institute
|
|
of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
|
|
|
|
config MIPS_MALTA
|
|
bool "MIPS Malta board"
|
|
select ARCH_MAY_HAVE_PC_FDC
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select BOOT_ELF32
|
|
select BOOT_RAW
|
|
select BUILTIN_DTB
|
|
select CEVT_R4K
|
|
select CLKSRC_MIPS_GIC
|
|
select COMMON_CLK
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select GENERIC_ISA_DMA
|
|
select HAVE_PCSPKR_PLATFORM
|
|
select HAVE_PCI
|
|
select I8253
|
|
select I8259
|
|
select IRQ_MIPS_CPU
|
|
select MIPS_BONITO64
|
|
select MIPS_CPU_SCACHE
|
|
select MIPS_GIC
|
|
select MIPS_L1_CACHE_SHIFT_6
|
|
select MIPS_MSC
|
|
select PCI_GT64XXX_PCI0
|
|
select SMP_UP if SMP
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_HAS_CPU_MIPS32_R3_5
|
|
select SYS_HAS_CPU_MIPS32_R5
|
|
select SYS_HAS_CPU_MIPS32_R6
|
|
select SYS_HAS_CPU_MIPS64_R1
|
|
select SYS_HAS_CPU_MIPS64_R2
|
|
select SYS_HAS_CPU_MIPS64_R6
|
|
select SYS_HAS_CPU_NEVADA
|
|
select SYS_HAS_CPU_RM7000
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_MICROMIPS
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_MIPS_CMP
|
|
select SYS_SUPPORTS_MIPS_CPS
|
|
select SYS_SUPPORTS_MULTITHREADING
|
|
select SYS_SUPPORTS_RELOCATABLE
|
|
select SYS_SUPPORTS_SMARTMIPS
|
|
select SYS_SUPPORTS_VPE_LOADER
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select USE_OF
|
|
select WAR_ICACHE_REFILLS
|
|
select ZONE_DMA32 if 64BIT
|
|
help
|
|
This enables support for the MIPS Technologies Malta evaluation
|
|
board.
|
|
|
|
config MACH_PIC32
|
|
bool "Microchip PIC32 Family"
|
|
help
|
|
This enables support for the Microchip PIC32 family of platforms.
|
|
|
|
Microchip PIC32 is a family of general-purpose 32 bit MIPS core
|
|
microcontrollers.
|
|
|
|
config MACH_NINTENDO64
|
|
bool "Nintendo 64 console"
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select SYS_HAS_CPU_R4300
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
|
|
config RALINK
|
|
bool "Ralink based machines"
|
|
select CEVT_R4K
|
|
select COMMON_CLK
|
|
select CSRC_R4K
|
|
select BOOT_RAW
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select USE_OF
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_ZBOOT
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select ARCH_HAS_RESET_CONTROLLER
|
|
select RESET_CONTROLLER
|
|
|
|
config MACH_REALTEK_RTL
|
|
bool "Realtek RTL838x/RTL839x based machines"
|
|
select MIPS_GENERIC
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select CSRC_R4K
|
|
select CEVT_R4K
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_HAS_CPU_MIPS32_R2
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_MIPS16
|
|
select SYS_SUPPORTS_MULTITHREADING
|
|
select SYS_SUPPORTS_VPE_LOADER
|
|
select BOOT_RAW
|
|
select PINCTRL
|
|
select USE_OF
|
|
|
|
config SGI_IP22
|
|
bool "SGI IP22 (Indy/Indigo2)"
|
|
select ARC_MEMORY
|
|
select ARC_PROMLIB
|
|
select FW_ARC
|
|
select FW_ARC32
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select BOOT_ELF32
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DEFAULT_SGI_PARTITION
|
|
select DMA_NONCOHERENT
|
|
select HAVE_EISA
|
|
select I8253
|
|
select I8259
|
|
select IP22_CPU_SCACHE
|
|
select IRQ_MIPS_CPU
|
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
select SGI_HAS_I8042
|
|
select SGI_HAS_INDYDOG
|
|
select SGI_HAS_HAL2
|
|
select SGI_HAS_SEEQ
|
|
select SGI_HAS_WD93
|
|
select SGI_HAS_ZILOG
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_R4X00
|
|
select SYS_HAS_CPU_R5000
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select WAR_R4600_V1_INDEX_ICACHEOP
|
|
select WAR_R4600_V1_HIT_CACHEOP
|
|
select WAR_R4600_V2_HIT_CACHEOP
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
help
|
|
This are the SGI Indy, Challenge S and Indigo2, as well as certain
|
|
OEM variants like the Tandem CMN B006S. To compile a Linux kernel
|
|
that runs on these, say Y here.
|
|
|
|
config SGI_IP27
|
|
bool "SGI IP27 (Origin200/2000)"
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
select FW_ARC
|
|
select FW_ARC64
|
|
select ARC_CMDLINE_ONLY
|
|
select BOOT_ELF64
|
|
select DEFAULT_SGI_PARTITION
|
|
select FORCE_PCI
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
select NR_CPUS_DEFAULT_64
|
|
select PCI_DRIVERS_GENERIC
|
|
select PCI_XTALK_BRIDGE
|
|
select SYS_HAS_CPU_R10000
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_NUMA
|
|
select SYS_SUPPORTS_SMP
|
|
select WAR_R10000_LLSC
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
select NUMA
|
|
select HAVE_ARCH_NODEDATA_EXTENSION
|
|
help
|
|
This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
|
|
workstations. To compile a Linux kernel that runs on these, say Y
|
|
here.
|
|
|
|
config SGI_IP28
|
|
bool "SGI IP28 (Indigo2 R10k)"
|
|
select ARC_MEMORY
|
|
select ARC_PROMLIB
|
|
select FW_ARC
|
|
select FW_ARC64
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select BOOT_ELF64
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DEFAULT_SGI_PARTITION
|
|
select DMA_NONCOHERENT
|
|
select GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
select IRQ_MIPS_CPU
|
|
select HAVE_EISA
|
|
select I8253
|
|
select I8259
|
|
select SGI_HAS_I8042
|
|
select SGI_HAS_INDYDOG
|
|
select SGI_HAS_HAL2
|
|
select SGI_HAS_SEEQ
|
|
select SGI_HAS_WD93
|
|
select SGI_HAS_ZILOG
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_R10000
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select WAR_R10000_LLSC
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
help
|
|
This is the SGI Indigo2 with R10000 processor. To compile a Linux
|
|
kernel that runs on these, say Y here.
|
|
|
|
config SGI_IP30
|
|
bool "SGI IP30 (Octane/Octane2)"
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
select FW_ARC
|
|
select FW_ARC64
|
|
select BOOT_ELF64
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select FORCE_PCI
|
|
select SYNC_R4K if SMP
|
|
select ZONE_DMA32
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
select PCI_DRIVERS_GENERIC
|
|
select PCI_XTALK_BRIDGE
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_HAS_CPU_R10000
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_SMP
|
|
select WAR_R10000_LLSC
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
select ARC_MEMORY
|
|
help
|
|
These are the SGI Octane and Octane2 graphics workstations. To
|
|
compile a Linux kernel that runs on these, say Y here.
|
|
|
|
config SGI_IP32
|
|
bool "SGI IP32 (O2)"
|
|
select ARC_MEMORY
|
|
select ARC_PROMLIB
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
select FW_ARC
|
|
select FW_ARC32
|
|
select BOOT_ELF32
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select R5000_CPU_SCACHE
|
|
select RM7000_CPU_SCACHE
|
|
select SYS_HAS_CPU_R5000
|
|
select SYS_HAS_CPU_R10000 if BROKEN
|
|
select SYS_HAS_CPU_RM7000
|
|
select SYS_HAS_CPU_NEVADA
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select WAR_ICACHE_REFILLS
|
|
help
|
|
If you want this kernel to run on SGI O2 workstation, say Y here.
|
|
|
|
config SIBYTE_CRHINE
|
|
bool "Sibyte BCM91120C-CRhine"
|
|
select BOOT_ELF32
|
|
select SIBYTE_BCM1120
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
|
|
config SIBYTE_CARMEL
|
|
bool "Sibyte BCM91120x-Carmel"
|
|
select BOOT_ELF32
|
|
select SIBYTE_BCM1120
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
|
|
config SIBYTE_CRHONE
|
|
bool "Sibyte BCM91125C-CRhone"
|
|
select BOOT_ELF32
|
|
select SIBYTE_BCM1125
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
|
|
config SIBYTE_RHONE
|
|
bool "Sibyte BCM91125E-Rhone"
|
|
select BOOT_ELF32
|
|
select SIBYTE_BCM1125H
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
|
|
config SIBYTE_SWARM
|
|
bool "Sibyte BCM91250A-SWARM"
|
|
select BOOT_ELF32
|
|
select HAVE_PATA_PLATFORM
|
|
select SIBYTE_SB1250
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select ZONE_DMA32 if 64BIT
|
|
select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
|
|
|
|
config SIBYTE_LITTLESUR
|
|
bool "Sibyte BCM91250C2-LittleSur"
|
|
select BOOT_ELF32
|
|
select HAVE_PATA_PLATFORM
|
|
select SIBYTE_SB1250
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select ZONE_DMA32 if 64BIT
|
|
|
|
config SIBYTE_SENTOSA
|
|
bool "Sibyte BCM91250E-Sentosa"
|
|
select BOOT_ELF32
|
|
select SIBYTE_SB1250
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
|
|
|
|
config SIBYTE_BIGSUR
|
|
bool "Sibyte BCM91480B-BigSur"
|
|
select BOOT_ELF32
|
|
select NR_CPUS_DEFAULT_4
|
|
select SIBYTE_BCM1x80
|
|
select SWAP_IO_SPACE
|
|
select SYS_HAS_CPU_SB1
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select ZONE_DMA32 if 64BIT
|
|
select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
|
|
|
|
config SNI_RM
|
|
bool "SNI RM200/300/400"
|
|
select ARC_MEMORY
|
|
select ARC_PROMLIB
|
|
select FW_ARC if CPU_LITTLE_ENDIAN
|
|
select FW_ARC32 if CPU_LITTLE_ENDIAN
|
|
select FW_SNIPROM if CPU_BIG_ENDIAN
|
|
select ARCH_MAY_HAVE_PC_FDC
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select BOOT_ELF32
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
|
|
select DMA_NONCOHERENT
|
|
select GENERIC_ISA_DMA
|
|
select HAVE_EISA
|
|
select HAVE_PCSPKR_PLATFORM
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select I8253
|
|
select I8259
|
|
select ISA
|
|
select MIPS_L1_CACHE_SHIFT_6
|
|
select SWAP_IO_SPACE if CPU_BIG_ENDIAN
|
|
select SYS_HAS_CPU_R4X00
|
|
select SYS_HAS_CPU_R5000
|
|
select SYS_HAS_CPU_R10000
|
|
select R5000_CPU_SCACHE
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_HIGHMEM
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select WAR_R4600_V2_HIT_CACHEOP
|
|
help
|
|
The SNI RM200/300/400 are MIPS-based machines manufactured by
|
|
Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
|
|
Technology and now in turn merged with Fujitsu. Say Y here to
|
|
support this machine type.
|
|
|
|
config MACH_TX49XX
|
|
bool "Toshiba TX49 series based machines"
|
|
select WAR_TX49XX_ICACHE_INDEX_INV
|
|
|
|
config MIKROTIK_RB532
|
|
bool "Mikrotik RB532 boards"
|
|
select CEVT_R4K
|
|
select CSRC_R4K
|
|
select DMA_NONCOHERENT
|
|
select HAVE_PCI
|
|
select IRQ_MIPS_CPU
|
|
select SYS_HAS_CPU_MIPS32_R1
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SWAP_IO_SPACE
|
|
select BOOT_RAW
|
|
select GPIOLIB
|
|
select MIPS_L1_CACHE_SHIFT_4
|
|
help
|
|
Support the Mikrotik(tm) RouterBoard 532 series,
|
|
based on the IDT RC32434 SoC.
|
|
|
|
config CAVIUM_OCTEON_SOC
|
|
bool "Cavium Networks Octeon SoC based boards"
|
|
select CEVT_R4K
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
select HAVE_RAPIDIO
|
|
select PHYS_ADDR_T_64BIT
|
|
select SYS_SUPPORTS_64BIT_KERNEL
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select EDAC_SUPPORT
|
|
select EDAC_ATOMIC_SCRUB
|
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
|
select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
|
|
select SYS_HAS_EARLY_PRINTK
|
|
select SYS_HAS_CPU_CAVIUM_OCTEON
|
|
select HAVE_PCI
|
|
select HAVE_PLAT_DELAY
|
|
select HAVE_PLAT_FW_INIT_CMDLINE
|
|
select HAVE_PLAT_MEMCPY
|
|
select ZONE_DMA32
|
|
select GPIOLIB
|
|
select USE_OF
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
select SYS_SUPPORTS_SMP
|
|
select NR_CPUS_DEFAULT_64
|
|
select MIPS_NR_CPU_NR_MAP_1024
|
|
select BUILTIN_DTB
|
|
select MTD
|
|
select MTD_COMPLEX_MAPPINGS
|
|
select SWIOTLB
|
|
select SYS_SUPPORTS_RELOCATABLE
|
|
help
|
|
This option supports all of the Octeon reference boards from Cavium
|
|
Networks. It builds a kernel that dynamically determines the Octeon
|
|
CPU type and supports all known board reference implementations.
|
|
Some of the supported boards are:
|
|
EBT3000
|
|
EBH3000
|
|
EBH3100
|
|
Thunder
|
|
Kodama
|
|
Hikari
|
|
Say Y here for most Octeon reference boards.
|
|
|
|
endchoice
|
|
|
|
source "arch/mips/alchemy/Kconfig"
|
|
source "arch/mips/ath25/Kconfig"
|
|
source "arch/mips/ath79/Kconfig"
|
|
source "arch/mips/bcm47xx/Kconfig"
|
|
source "arch/mips/bcm63xx/Kconfig"
|
|
source "arch/mips/bmips/Kconfig"
|
|
source "arch/mips/generic/Kconfig"
|
|
source "arch/mips/ingenic/Kconfig"
|
|
source "arch/mips/jazz/Kconfig"
|
|
source "arch/mips/lantiq/Kconfig"
|
|
source "arch/mips/pic32/Kconfig"
|
|
source "arch/mips/ralink/Kconfig"
|
|
source "arch/mips/sgi-ip27/Kconfig"
|
|
source "arch/mips/sibyte/Kconfig"
|
|
source "arch/mips/txx9/Kconfig"
|
|
source "arch/mips/cavium-octeon/Kconfig"
|
|
source "arch/mips/loongson2ef/Kconfig"
|
|
source "arch/mips/loongson32/Kconfig"
|
|
source "arch/mips/loongson64/Kconfig"
|
|
|
|
endmenu
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config SCHED_OMIT_FRAME_POINTER
|
|
bool
|
|
default y
|
|
|
|
#
|
|
# Select some configuration options automatically based on user selections.
|
|
#
|
|
config FW_ARC
|
|
bool
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
bool
|
|
|
|
config BOOT_RAW
|
|
bool
|
|
|
|
config CEVT_BCM1480
|
|
bool
|
|
|
|
config CEVT_DS1287
|
|
bool
|
|
|
|
config CEVT_GT641XX
|
|
bool
|
|
|
|
config CEVT_R4K
|
|
bool
|
|
|
|
config CEVT_SB1250
|
|
bool
|
|
|
|
config CEVT_TXX9
|
|
bool
|
|
|
|
config CSRC_BCM1480
|
|
bool
|
|
|
|
config CSRC_IOASIC
|
|
bool
|
|
|
|
config CSRC_R4K
|
|
select CLOCKSOURCE_WATCHDOG if CPU_FREQ
|
|
bool
|
|
|
|
config CSRC_SB1250
|
|
bool
|
|
|
|
config MIPS_CLOCK_VSYSCALL
|
|
def_bool CSRC_R4K || CLKSRC_MIPS_GIC
|
|
|
|
config GPIO_TXX9
|
|
select GPIOLIB
|
|
bool
|
|
|
|
config FW_CFE
|
|
bool
|
|
|
|
config ARCH_SUPPORTS_UPROBES
|
|
bool
|
|
|
|
config DMA_NONCOHERENT
|
|
bool
|
|
#
|
|
# MIPS allows mixing "slightly different" Cacheability and Coherency
|
|
# Attribute bits. It is believed that the uncached access through
|
|
# KSEG1 and the implementation specific "uncached accelerated" used
|
|
# by pgprot_writcombine can be mixed, and the latter sometimes provides
|
|
# significant advantages.
|
|
#
|
|
select ARCH_HAS_DMA_WRITE_COMBINE
|
|
select ARCH_HAS_DMA_PREP_COHERENT
|
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
|
select ARCH_HAS_DMA_SET_UNCACHED
|
|
select DMA_NONCOHERENT_MMAP
|
|
select NEED_DMA_MAP_STATE
|
|
|
|
config SYS_HAS_EARLY_PRINTK
|
|
bool
|
|
|
|
config SYS_SUPPORTS_HOTPLUG_CPU
|
|
bool
|
|
|
|
config MIPS_BONITO64
|
|
bool
|
|
|
|
config MIPS_MSC
|
|
bool
|
|
|
|
config SYNC_R4K
|
|
bool
|
|
|
|
config NO_IOPORT_MAP
|
|
def_bool n
|
|
|
|
config GENERIC_CSUM
|
|
def_bool CPU_NO_LOAD_STORE_LR
|
|
|
|
config GENERIC_ISA_DMA
|
|
bool
|
|
select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
|
|
select ISA_DMA_API
|
|
|
|
config GENERIC_ISA_DMA_SUPPORT_BROKEN
|
|
bool
|
|
select GENERIC_ISA_DMA
|
|
|
|
config HAVE_PLAT_DELAY
|
|
bool
|
|
|
|
config HAVE_PLAT_FW_INIT_CMDLINE
|
|
bool
|
|
|
|
config HAVE_PLAT_MEMCPY
|
|
bool
|
|
|
|
config ISA_DMA_API
|
|
bool
|
|
|
|
config SYS_SUPPORTS_RELOCATABLE
|
|
bool
|
|
help
|
|
Selected if the platform supports relocating the kernel.
|
|
The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
|
|
to allow access to command line and entropy sources.
|
|
|
|
#
|
|
# Endianness selection. Sufficiently obscure so many users don't know what to
|
|
# answer,so we try hard to limit the available choices. Also the use of a
|
|
# choice statement should be more obvious to the user.
|
|
#
|
|
choice
|
|
prompt "Endianness selection"
|
|
help
|
|
Some MIPS machines can be configured for either little or big endian
|
|
byte order. These modes require different kernels and a different
|
|
Linux distribution. In general there is one preferred byteorder for a
|
|
particular system but some systems are just as commonly used in the
|
|
one or the other endianness.
|
|
|
|
config CPU_BIG_ENDIAN
|
|
bool "Big endian"
|
|
depends on SYS_SUPPORTS_BIG_ENDIAN
|
|
|
|
config CPU_LITTLE_ENDIAN
|
|
bool "Little endian"
|
|
depends on SYS_SUPPORTS_LITTLE_ENDIAN
|
|
|
|
endchoice
|
|
|
|
config EXPORT_UASM
|
|
bool
|
|
|
|
config SYS_SUPPORTS_APM_EMULATION
|
|
bool
|
|
|
|
config SYS_SUPPORTS_BIG_ENDIAN
|
|
bool
|
|
|
|
config SYS_SUPPORTS_LITTLE_ENDIAN
|
|
bool
|
|
|
|
config MIPS_HUGE_TLB_SUPPORT
|
|
def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
|
|
|
|
config IRQ_MSP_SLP
|
|
bool
|
|
|
|
config IRQ_MSP_CIC
|
|
bool
|
|
|
|
config IRQ_TXX9
|
|
bool
|
|
|
|
config IRQ_GT641XX
|
|
bool
|
|
|
|
config PCI_GT64XXX_PCI0
|
|
bool
|
|
|
|
config PCI_XTALK_BRIDGE
|
|
bool
|
|
|
|
config NO_EXCEPT_FILL
|
|
bool
|
|
|
|
config MIPS_SPRAM
|
|
bool
|
|
|
|
config SWAP_IO_SPACE
|
|
bool
|
|
|
|
config SGI_HAS_INDYDOG
|
|
bool
|
|
|
|
config SGI_HAS_HAL2
|
|
bool
|
|
|
|
config SGI_HAS_SEEQ
|
|
bool
|
|
|
|
config SGI_HAS_WD93
|
|
bool
|
|
|
|
config SGI_HAS_ZILOG
|
|
bool
|
|
|
|
config SGI_HAS_I8042
|
|
bool
|
|
|
|
config DEFAULT_SGI_PARTITION
|
|
bool
|
|
|
|
config FW_ARC32
|
|
bool
|
|
|
|
config FW_SNIPROM
|
|
bool
|
|
|
|
config BOOT_ELF32
|
|
bool
|
|
|
|
config MIPS_L1_CACHE_SHIFT_4
|
|
bool
|
|
|
|
config MIPS_L1_CACHE_SHIFT_5
|
|
bool
|
|
|
|
config MIPS_L1_CACHE_SHIFT_6
|
|
bool
|
|
|
|
config MIPS_L1_CACHE_SHIFT_7
|
|
bool
|
|
|
|
config MIPS_L1_CACHE_SHIFT
|
|
int
|
|
default "7" if MIPS_L1_CACHE_SHIFT_7
|
|
default "6" if MIPS_L1_CACHE_SHIFT_6
|
|
default "5" if MIPS_L1_CACHE_SHIFT_5
|
|
default "4" if MIPS_L1_CACHE_SHIFT_4
|
|
default "5"
|
|
|
|
config ARC_CMDLINE_ONLY
|
|
bool
|
|
|
|
config ARC_CONSOLE
|
|
bool "ARC console support"
|
|
depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
|
|
|
|
config ARC_MEMORY
|
|
bool
|
|
|
|
config ARC_PROMLIB
|
|
bool
|
|
|
|
config FW_ARC64
|
|
bool
|
|
|
|
config BOOT_ELF64
|
|
bool
|
|
|
|
menu "CPU selection"
|
|
|
|
choice
|
|
prompt "CPU type"
|
|
default CPU_R4X00
|
|
|
|
config CPU_LOONGSON64
|
|
bool "Loongson 64-bit CPU"
|
|
depends on SYS_HAS_CPU_LOONGSON64
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
select CPU_MIPSR2
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select CPU_SUPPORTS_MSA
|
|
select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
|
|
select CPU_MIPSR2_IRQ_VI
|
|
select WEAK_ORDERING
|
|
select WEAK_REORDERING_BEYOND_LLSC
|
|
select MIPS_ASID_BITS_VARIABLE
|
|
select MIPS_PGD_C0_CONTEXT
|
|
select MIPS_L1_CACHE_SHIFT_6
|
|
select MIPS_FP_SUPPORT
|
|
select GPIOLIB
|
|
select SWIOTLB
|
|
select HAVE_KVM
|
|
help
|
|
The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
|
|
cores implements the MIPS64R2 instruction set with many extensions,
|
|
including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
|
|
3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
|
|
Loongson-2E/2F is not covered here and will be removed in future.
|
|
|
|
config LOONGSON3_ENHANCEMENT
|
|
bool "New Loongson-3 CPU Enhancements"
|
|
default n
|
|
depends on CPU_LOONGSON64
|
|
help
|
|
New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
|
|
R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
|
|
FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
|
|
Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
|
|
Fast TLB refill support, etc.
|
|
|
|
This option enable those enhancements which are not probed at run
|
|
time. If you want a generic kernel to run on all Loongson 3 machines,
|
|
please say 'N' here. If you want a high-performance kernel to run on
|
|
new Loongson-3 machines only, please say 'Y' here.
|
|
|
|
config CPU_LOONGSON3_WORKAROUNDS
|
|
bool "Loongson-3 LLSC Workarounds"
|
|
default y if SMP
|
|
depends on CPU_LOONGSON64
|
|
help
|
|
Loongson-3 processors have the llsc issues which require workarounds.
|
|
Without workarounds the system may hang unexpectedly.
|
|
|
|
Say Y, unless you know what you are doing.
|
|
|
|
config CPU_LOONGSON3_CPUCFG_EMULATION
|
|
bool "Emulate the CPUCFG instruction on older Loongson cores"
|
|
default y
|
|
depends on CPU_LOONGSON64
|
|
help
|
|
Loongson-3A R4 and newer have the CPUCFG instruction available for
|
|
userland to query CPU capabilities, much like CPUID on x86. This
|
|
option provides emulation of the instruction on older Loongson
|
|
cores, back to Loongson-3A1000.
|
|
|
|
If unsure, please say Y.
|
|
|
|
config CPU_LOONGSON2E
|
|
bool "Loongson 2E"
|
|
depends on SYS_HAS_CPU_LOONGSON2E
|
|
select CPU_LOONGSON2EF
|
|
help
|
|
The Loongson 2E processor implements the MIPS III instruction set
|
|
with many extensions.
|
|
|
|
It has an internal FPGA northbridge, which is compatible to
|
|
bonito64.
|
|
|
|
config CPU_LOONGSON2F
|
|
bool "Loongson 2F"
|
|
depends on SYS_HAS_CPU_LOONGSON2F
|
|
select CPU_LOONGSON2EF
|
|
select GPIOLIB
|
|
help
|
|
The Loongson 2F processor implements the MIPS III instruction set
|
|
with many extensions.
|
|
|
|
Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
|
|
have a similar programming interface with FPGA northbridge used in
|
|
Loongson2E.
|
|
|
|
config CPU_LOONGSON1B
|
|
bool "Loongson 1B"
|
|
depends on SYS_HAS_CPU_LOONGSON1B
|
|
select CPU_LOONGSON32
|
|
select LEDS_GPIO_REGISTER
|
|
help
|
|
The Loongson 1B is a 32-bit SoC, which implements the MIPS32
|
|
Release 1 instruction set and part of the MIPS32 Release 2
|
|
instruction set.
|
|
|
|
config CPU_LOONGSON1C
|
|
bool "Loongson 1C"
|
|
depends on SYS_HAS_CPU_LOONGSON1C
|
|
select CPU_LOONGSON32
|
|
select LEDS_GPIO_REGISTER
|
|
help
|
|
The Loongson 1C is a 32-bit SoC, which implements the MIPS32
|
|
Release 1 instruction set and part of the MIPS32 Release 2
|
|
instruction set.
|
|
|
|
config CPU_MIPS32_R1
|
|
bool "MIPS32 Release 1"
|
|
depends on SYS_HAS_CPU_MIPS32_R1
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
help
|
|
Choose this option to build a kernel for release 1 or later of the
|
|
MIPS32 architecture. Most modern embedded systems with a 32-bit
|
|
MIPS processor are based on a MIPS32 processor. If you know the
|
|
specific type of processor in your system, choose those that one
|
|
otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
|
|
Release 2 of the MIPS32 architecture is available since several
|
|
years so chances are you even have a MIPS32 Release 2 processor
|
|
in which case you should choose CPU_MIPS32_R2 instead for better
|
|
performance.
|
|
|
|
config CPU_MIPS32_R2
|
|
bool "MIPS32 Release 2"
|
|
depends on SYS_HAS_CPU_MIPS32_R2
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_MSA
|
|
select HAVE_KVM
|
|
help
|
|
Choose this option to build a kernel for release 2 or later of the
|
|
MIPS32 architecture. Most modern embedded systems with a 32-bit
|
|
MIPS processor are based on a MIPS32 processor. If you know the
|
|
specific type of processor in your system, choose those that one
|
|
otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
|
|
|
|
config CPU_MIPS32_R5
|
|
bool "MIPS32 Release 5"
|
|
depends on SYS_HAS_CPU_MIPS32_R5
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_MSA
|
|
select HAVE_KVM
|
|
select MIPS_O32_FP64_SUPPORT
|
|
help
|
|
Choose this option to build a kernel for release 5 or later of the
|
|
MIPS32 architecture. New MIPS processors, starting with the Warrior
|
|
family, are based on a MIPS32r5 processor. If you own an older
|
|
processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
|
|
|
|
config CPU_MIPS32_R6
|
|
bool "MIPS32 Release 6"
|
|
depends on SYS_HAS_CPU_MIPS32_R6
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_NO_LOAD_STORE_LR
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_MSA
|
|
select HAVE_KVM
|
|
select MIPS_O32_FP64_SUPPORT
|
|
help
|
|
Choose this option to build a kernel for release 6 or later of the
|
|
MIPS32 architecture. New MIPS processors, starting with the Warrior
|
|
family, are based on a MIPS32r6 processor. If you own an older
|
|
processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
|
|
|
|
config CPU_MIPS64_R1
|
|
bool "MIPS64 Release 1"
|
|
depends on SYS_HAS_CPU_MIPS64_R1
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
Choose this option to build a kernel for release 1 or later of the
|
|
MIPS64 architecture. Many modern embedded systems with a 64-bit
|
|
MIPS processor are based on a MIPS64 processor. If you know the
|
|
specific type of processor in your system, choose those that one
|
|
otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
|
|
Release 2 of the MIPS64 architecture is available since several
|
|
years so chances are you even have a MIPS64 Release 2 processor
|
|
in which case you should choose CPU_MIPS64_R2 instead for better
|
|
performance.
|
|
|
|
config CPU_MIPS64_R2
|
|
bool "MIPS64 Release 2"
|
|
depends on SYS_HAS_CPU_MIPS64_R2
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select CPU_SUPPORTS_MSA
|
|
select HAVE_KVM
|
|
help
|
|
Choose this option to build a kernel for release 2 or later of the
|
|
MIPS64 architecture. Many modern embedded systems with a 64-bit
|
|
MIPS processor are based on a MIPS64 processor. If you know the
|
|
specific type of processor in your system, choose those that one
|
|
otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
|
|
|
|
config CPU_MIPS64_R5
|
|
bool "MIPS64 Release 5"
|
|
depends on SYS_HAS_CPU_MIPS64_R5
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select CPU_SUPPORTS_MSA
|
|
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
|
|
select HAVE_KVM
|
|
help
|
|
Choose this option to build a kernel for release 5 or later of the
|
|
MIPS64 architecture. This is a intermediate MIPS architecture
|
|
release partly implementing release 6 features. Though there is no
|
|
any hardware known to be based on this release.
|
|
|
|
config CPU_MIPS64_R6
|
|
bool "MIPS64 Release 6"
|
|
depends on SYS_HAS_CPU_MIPS64_R6
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_NO_LOAD_STORE_LR
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select CPU_SUPPORTS_MSA
|
|
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
|
|
select HAVE_KVM
|
|
help
|
|
Choose this option to build a kernel for release 6 or later of the
|
|
MIPS64 architecture. New MIPS processors, starting with the Warrior
|
|
family, are based on a MIPS64r6 processor. If you own an older
|
|
processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
|
|
|
|
config CPU_P5600
|
|
bool "MIPS Warrior P5600"
|
|
depends on SYS_HAS_CPU_P5600
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_MSA
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select CPU_MIPSR2_IRQ_VI
|
|
select CPU_MIPSR2_IRQ_EI
|
|
select HAVE_KVM
|
|
select MIPS_O32_FP64_SUPPORT
|
|
help
|
|
Choose this option to build a kernel for MIPS Warrior P5600 CPU.
|
|
It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
|
|
MMU with two-levels TLB, UCA, MSA, MDU core level features and system
|
|
level features like up to six P5600 calculation cores, CM2 with L2
|
|
cache, IOCU/IOMMU (though might be unused depending on the system-
|
|
specific IP core configuration), GIC, CPC, virtualisation module,
|
|
eJTAG and PDtrace.
|
|
|
|
config CPU_R3000
|
|
bool "R3000"
|
|
depends on SYS_HAS_CPU_R3000
|
|
select CPU_HAS_WB
|
|
select CPU_R3K_TLB
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
help
|
|
Please make sure to pick the right CPU type. Linux/MIPS is not
|
|
designed to be generic, i.e. Kernels compiled for R3000 CPUs will
|
|
*not* work on R4000 machines and vice versa. However, since most
|
|
of the supported machines have an R4000 (or similar) CPU, R4x00
|
|
might be a safe bet. If the resulting kernel does not work,
|
|
try to recompile with R3000.
|
|
|
|
config CPU_R4300
|
|
bool "R4300"
|
|
depends on SYS_HAS_CPU_R4300
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
help
|
|
MIPS Technologies R4300-series processors.
|
|
|
|
config CPU_R4X00
|
|
bool "R4x00"
|
|
depends on SYS_HAS_CPU_R4X00
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
MIPS Technologies R4000-series processors other than 4300, including
|
|
the R4000, R4400, R4600, and 4700.
|
|
|
|
config CPU_TX49XX
|
|
bool "R49XX"
|
|
depends on SYS_HAS_CPU_TX49XX
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
|
|
config CPU_R5000
|
|
bool "R5000"
|
|
depends on SYS_HAS_CPU_R5000
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
MIPS Technologies R5000-series processors other than the Nevada.
|
|
|
|
config CPU_R5500
|
|
bool "R5500"
|
|
depends on SYS_HAS_CPU_R5500
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
|
|
instruction set.
|
|
|
|
config CPU_NEVADA
|
|
bool "RM52xx"
|
|
depends on SYS_HAS_CPU_NEVADA
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
QED / PMC-Sierra RM52xx-series ("Nevada") processors.
|
|
|
|
config CPU_R10000
|
|
bool "R10000"
|
|
depends on SYS_HAS_CPU_R10000
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
help
|
|
MIPS Technologies R10000-series processors.
|
|
|
|
config CPU_RM7000
|
|
bool "RM7000"
|
|
depends on SYS_HAS_CPU_RM7000
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
|
|
config CPU_SB1
|
|
bool "SB1"
|
|
depends on SYS_HAS_CPU_SB1
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select WEAK_ORDERING
|
|
|
|
config CPU_CAVIUM_OCTEON
|
|
bool "Cavium Octeon processor"
|
|
depends on SYS_HAS_CPU_CAVIUM_OCTEON
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select WEAK_ORDERING
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
select HAVE_KVM
|
|
help
|
|
The Cavium Octeon processor is a highly integrated chip containing
|
|
many ethernet hardware widgets for networking tasks. The processor
|
|
can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
|
|
Full details can be found at http://www.caviumnetworks.com.
|
|
|
|
config CPU_BMIPS
|
|
bool "Broadcom BMIPS"
|
|
depends on SYS_HAS_CPU_BMIPS
|
|
select CPU_MIPS32
|
|
select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
|
|
select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
|
|
select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
|
|
select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select DMA_NONCOHERENT
|
|
select IRQ_MIPS_CPU
|
|
select SWAP_IO_SPACE
|
|
select WEAK_ORDERING
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select MIPS_EXTERNAL_TIMER
|
|
select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
|
|
help
|
|
Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
|
|
|
|
endchoice
|
|
|
|
config CPU_MIPS32_3_5_FEATURES
|
|
bool "MIPS32 Release 3.5 Features"
|
|
depends on SYS_HAS_CPU_MIPS32_R3_5
|
|
depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
|
|
CPU_P5600
|
|
help
|
|
Choose this option to build a kernel for release 2 or later of the
|
|
MIPS32 architecture including features from the 3.5 release such as
|
|
support for Enhanced Virtual Addressing (EVA).
|
|
|
|
config CPU_MIPS32_3_5_EVA
|
|
bool "Enhanced Virtual Addressing (EVA)"
|
|
depends on CPU_MIPS32_3_5_FEATURES
|
|
select EVA
|
|
default y
|
|
help
|
|
Choose this option if you want to enable the Enhanced Virtual
|
|
Addressing (EVA) on your MIPS32 core (such as proAptiv).
|
|
One of its primary benefits is an increase in the maximum size
|
|
of lowmem (up to 3GB). If unsure, say 'N' here.
|
|
|
|
config CPU_MIPS32_R5_FEATURES
|
|
bool "MIPS32 Release 5 Features"
|
|
depends on SYS_HAS_CPU_MIPS32_R5
|
|
depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
|
|
help
|
|
Choose this option to build a kernel for release 2 or later of the
|
|
MIPS32 architecture including features from release 5 such as
|
|
support for Extended Physical Addressing (XPA).
|
|
|
|
config CPU_MIPS32_R5_XPA
|
|
bool "Extended Physical Addressing (XPA)"
|
|
depends on CPU_MIPS32_R5_FEATURES
|
|
depends on !EVA
|
|
depends on !PAGE_SIZE_4KB
|
|
depends on SYS_SUPPORTS_HIGHMEM
|
|
select XPA
|
|
select HIGHMEM
|
|
select PHYS_ADDR_T_64BIT
|
|
default n
|
|
help
|
|
Choose this option if you want to enable the Extended Physical
|
|
Addressing (XPA) on your MIPS32 core (such as P5600 series). The
|
|
benefit is to increase physical addressing equal to or greater
|
|
than 40 bits. Note that this has the side effect of turning on
|
|
64-bit addressing which in turn makes the PTEs 64-bit in size.
|
|
If unsure, say 'N' here.
|
|
|
|
if CPU_LOONGSON2F
|
|
config CPU_NOP_WORKAROUNDS
|
|
bool
|
|
|
|
config CPU_JUMP_WORKAROUNDS
|
|
bool
|
|
|
|
config CPU_LOONGSON2F_WORKAROUNDS
|
|
bool "Loongson 2F Workarounds"
|
|
default y
|
|
select CPU_NOP_WORKAROUNDS
|
|
select CPU_JUMP_WORKAROUNDS
|
|
help
|
|
Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
|
|
require workarounds. Without workarounds the system may hang
|
|
unexpectedly. For more information please refer to the gas
|
|
-mfix-loongson2f-nop and -mfix-loongson2f-jump options.
|
|
|
|
Loongson 2F03 and later have fixed these issues and no workarounds
|
|
are needed. The workarounds have no significant side effect on them
|
|
but may decrease the performance of the system so this option should
|
|
be disabled unless the kernel is intended to be run on 2F01 or 2F02
|
|
systems.
|
|
|
|
If unsure, please say Y.
|
|
endif # CPU_LOONGSON2F
|
|
|
|
config SYS_SUPPORTS_ZBOOT
|
|
bool
|
|
select HAVE_KERNEL_GZIP
|
|
select HAVE_KERNEL_BZIP2
|
|
select HAVE_KERNEL_LZ4
|
|
select HAVE_KERNEL_LZMA
|
|
select HAVE_KERNEL_LZO
|
|
select HAVE_KERNEL_XZ
|
|
select HAVE_KERNEL_ZSTD
|
|
|
|
config SYS_SUPPORTS_ZBOOT_UART16550
|
|
bool
|
|
select SYS_SUPPORTS_ZBOOT
|
|
|
|
config SYS_SUPPORTS_ZBOOT_UART_PROM
|
|
bool
|
|
select SYS_SUPPORTS_ZBOOT
|
|
|
|
config CPU_LOONGSON2EF
|
|
bool
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_HUGEPAGES
|
|
select ARCH_HAS_PHYS_TO_DMA
|
|
|
|
config CPU_LOONGSON32
|
|
bool
|
|
select CPU_MIPS32
|
|
select CPU_MIPSR2
|
|
select CPU_HAS_PREFETCH
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select CPU_SUPPORTS_HIGHMEM
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
|
|
config CPU_BMIPS32_3300
|
|
select SMP_UP if SMP
|
|
bool
|
|
|
|
config CPU_BMIPS4350
|
|
bool
|
|
select SYS_SUPPORTS_SMP
|
|
select SYS_SUPPORTS_HOTPLUG_CPU
|
|
|
|
config CPU_BMIPS4380
|
|
bool
|
|
select MIPS_L1_CACHE_SHIFT_6
|
|
select SYS_SUPPORTS_SMP
|
|
select SYS_SUPPORTS_HOTPLUG_CPU
|
|
select CPU_HAS_RIXI
|
|
|
|
config CPU_BMIPS5000
|
|
bool
|
|
select MIPS_CPU_SCACHE
|
|
select MIPS_L1_CACHE_SHIFT_7
|
|
select SYS_SUPPORTS_SMP
|
|
select SYS_SUPPORTS_HOTPLUG_CPU
|
|
select CPU_HAS_RIXI
|
|
|
|
config SYS_HAS_CPU_LOONGSON64
|
|
bool
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select CPU_HAS_RIXI
|
|
|
|
config SYS_HAS_CPU_LOONGSON2E
|
|
bool
|
|
|
|
config SYS_HAS_CPU_LOONGSON2F
|
|
bool
|
|
select CPU_SUPPORTS_CPUFREQ
|
|
select CPU_SUPPORTS_ADDRWINCFG if 64BIT
|
|
|
|
config SYS_HAS_CPU_LOONGSON1B
|
|
bool
|
|
|
|
config SYS_HAS_CPU_LOONGSON1C
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS32_R1
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS32_R2
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS32_R3_5
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS32_R5
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_MIPS32_R6
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_MIPS64_R1
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS64_R2
|
|
bool
|
|
|
|
config SYS_HAS_CPU_MIPS64_R5
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_MIPS64_R6
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_P5600
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_R3000
|
|
bool
|
|
|
|
config SYS_HAS_CPU_R4300
|
|
bool
|
|
|
|
config SYS_HAS_CPU_R4X00
|
|
bool
|
|
|
|
config SYS_HAS_CPU_TX49XX
|
|
bool
|
|
|
|
config SYS_HAS_CPU_R5000
|
|
bool
|
|
|
|
config SYS_HAS_CPU_R5500
|
|
bool
|
|
|
|
config SYS_HAS_CPU_NEVADA
|
|
bool
|
|
|
|
config SYS_HAS_CPU_R10000
|
|
bool
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
|
|
|
|
config SYS_HAS_CPU_RM7000
|
|
bool
|
|
|
|
config SYS_HAS_CPU_SB1
|
|
bool
|
|
|
|
config SYS_HAS_CPU_CAVIUM_OCTEON
|
|
bool
|
|
|
|
config SYS_HAS_CPU_BMIPS
|
|
bool
|
|
|
|
config SYS_HAS_CPU_BMIPS32_3300
|
|
bool
|
|
select SYS_HAS_CPU_BMIPS
|
|
|
|
config SYS_HAS_CPU_BMIPS4350
|
|
bool
|
|
select SYS_HAS_CPU_BMIPS
|
|
|
|
config SYS_HAS_CPU_BMIPS4380
|
|
bool
|
|
select SYS_HAS_CPU_BMIPS
|
|
|
|
config SYS_HAS_CPU_BMIPS5000
|
|
bool
|
|
select SYS_HAS_CPU_BMIPS
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
|
|
|
#
|
|
# CPU may reorder R->R, R->W, W->R, W->W
|
|
# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
|
|
#
|
|
config WEAK_ORDERING
|
|
bool
|
|
|
|
#
|
|
# CPU may reorder reads and writes beyond LL/SC
|
|
# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
|
|
#
|
|
config WEAK_REORDERING_BEYOND_LLSC
|
|
bool
|
|
endmenu
|
|
|
|
#
|
|
# These two indicate any level of the MIPS32 and MIPS64 architecture
|
|
#
|
|
config CPU_MIPS32
|
|
bool
|
|
default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
|
|
CPU_MIPS32_R6 || CPU_P5600
|
|
|
|
config CPU_MIPS64
|
|
bool
|
|
default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
|
|
CPU_MIPS64_R6 || CPU_LOONGSON64 || CPU_CAVIUM_OCTEON
|
|
|
|
#
|
|
# These indicate the revision of the architecture
|
|
#
|
|
config CPU_MIPSR1
|
|
bool
|
|
default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
|
|
|
|
config CPU_MIPSR2
|
|
bool
|
|
default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
|
|
select CPU_HAS_RIXI
|
|
select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
|
|
select MIPS_SPRAM
|
|
|
|
config CPU_MIPSR5
|
|
bool
|
|
default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
|
|
select CPU_HAS_RIXI
|
|
select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
|
|
select MIPS_SPRAM
|
|
|
|
config CPU_MIPSR6
|
|
bool
|
|
default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
|
|
select CPU_HAS_RIXI
|
|
select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
|
|
select HAVE_ARCH_BITREVERSE
|
|
select MIPS_ASID_BITS_VARIABLE
|
|
select MIPS_CRC_SUPPORT
|
|
select MIPS_SPRAM
|
|
|
|
config TARGET_ISA_REV
|
|
int
|
|
default 1 if CPU_MIPSR1
|
|
default 2 if CPU_MIPSR2
|
|
default 5 if CPU_MIPSR5
|
|
default 6 if CPU_MIPSR6
|
|
default 0
|
|
help
|
|
Reflects the ISA revision being targeted by the kernel build. This
|
|
is effectively the Kconfig equivalent of MIPS_ISA_REV.
|
|
|
|
config EVA
|
|
bool
|
|
|
|
config XPA
|
|
bool
|
|
|
|
config SYS_SUPPORTS_32BIT_KERNEL
|
|
bool
|
|
config SYS_SUPPORTS_64BIT_KERNEL
|
|
bool
|
|
config CPU_SUPPORTS_32BIT_KERNEL
|
|
bool
|
|
config CPU_SUPPORTS_64BIT_KERNEL
|
|
bool
|
|
config CPU_SUPPORTS_CPUFREQ
|
|
bool
|
|
config CPU_SUPPORTS_ADDRWINCFG
|
|
bool
|
|
config CPU_SUPPORTS_HUGEPAGES
|
|
bool
|
|
depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
|
|
config MIPS_PGD_C0_CONTEXT
|
|
bool
|
|
depends on 64BIT
|
|
default y if (CPU_MIPSR2 || CPU_MIPSR6)
|
|
|
|
#
|
|
# Set to y for ptrace access to watch registers.
|
|
#
|
|
config HARDWARE_WATCHPOINTS
|
|
bool
|
|
default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
|
|
|
|
menu "Kernel type"
|
|
|
|
choice
|
|
prompt "Kernel code model"
|
|
help
|
|
You should only select this option if you have a workload that
|
|
actually benefits from 64-bit processing or if your machine has
|
|
large memory. You will only be presented a single option in this
|
|
menu if your system does not support both 32-bit and 64-bit kernels.
|
|
|
|
config 32BIT
|
|
bool "32-bit kernel"
|
|
depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
|
|
select TRAD_SIGNALS
|
|
help
|
|
Select this option if you want to build a 32-bit kernel.
|
|
|
|
config 64BIT
|
|
bool "64-bit kernel"
|
|
depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
|
|
help
|
|
Select this option if you want to build a 64-bit kernel.
|
|
|
|
endchoice
|
|
|
|
config MIPS_VA_BITS_48
|
|
bool "48 bits virtual memory"
|
|
depends on 64BIT
|
|
help
|
|
Support a maximum at least 48 bits of application virtual
|
|
memory. Default is 40 bits or less, depending on the CPU.
|
|
For page sizes 16k and above, this option results in a small
|
|
memory overhead for page tables. For 4k page size, a fourth
|
|
level of page tables is added which imposes both a memory
|
|
overhead as well as slower TLB fault handling.
|
|
|
|
If unsure, say N.
|
|
|
|
config ZBOOT_LOAD_ADDRESS
|
|
hex "Compressed kernel load address"
|
|
default 0xffffffff80400000 if BCM47XX
|
|
default 0x0
|
|
depends on SYS_SUPPORTS_ZBOOT
|
|
help
|
|
The address to load compressed kernel, aka vmlinuz.
|
|
|
|
This is only used if non-zero.
|
|
|
|
choice
|
|
prompt "Kernel page size"
|
|
default PAGE_SIZE_4KB
|
|
|
|
config PAGE_SIZE_4KB
|
|
bool "4kB"
|
|
depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
|
|
help
|
|
This option select the standard 4kB Linux page size. On some
|
|
R3000-family processors this is the only available page size. Using
|
|
4kB page size will minimize memory consumption and is therefore
|
|
recommended for low memory systems.
|
|
|
|
config PAGE_SIZE_8KB
|
|
bool "8kB"
|
|
depends on CPU_CAVIUM_OCTEON
|
|
depends on !MIPS_VA_BITS_48
|
|
help
|
|
Using 8kB page size will result in higher performance kernel at
|
|
the price of higher memory consumption. This option is available
|
|
only on cnMIPS processors. Note that you will need a suitable Linux
|
|
distribution to support this.
|
|
|
|
config PAGE_SIZE_16KB
|
|
bool "16kB"
|
|
depends on !CPU_R3000
|
|
help
|
|
Using 16kB page size will result in higher performance kernel at
|
|
the price of higher memory consumption. This option is available on
|
|
all non-R3000 family processors. Note that you will need a suitable
|
|
Linux distribution to support this.
|
|
|
|
config PAGE_SIZE_32KB
|
|
bool "32kB"
|
|
depends on CPU_CAVIUM_OCTEON
|
|
depends on !MIPS_VA_BITS_48
|
|
help
|
|
Using 32kB page size will result in higher performance kernel at
|
|
the price of higher memory consumption. This option is available
|
|
only on cnMIPS cores. Note that you will need a suitable Linux
|
|
distribution to support this.
|
|
|
|
config PAGE_SIZE_64KB
|
|
bool "64kB"
|
|
depends on !CPU_R3000
|
|
help
|
|
Using 64kB page size will result in higher performance kernel at
|
|
the price of higher memory consumption. This option is available on
|
|
all non-R3000 family processor. Not that at the time of this
|
|
writing this option is still high experimental.
|
|
|
|
endchoice
|
|
|
|
config ARCH_FORCE_MAX_ORDER
|
|
int "Maximum zone order"
|
|
range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
|
|
default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
|
|
range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
|
|
default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
|
|
range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
|
|
default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
|
|
range 0 64
|
|
default "11"
|
|
help
|
|
The kernel memory allocator divides physically contiguous memory
|
|
blocks into "zones", where each zone is a power of two number of
|
|
pages. This option selects the largest power of two that the kernel
|
|
keeps in the memory allocator. If you need to allocate very large
|
|
blocks of physically contiguous memory, then you may need to
|
|
increase this value.
|
|
|
|
This config option is actually maximum order plus one. For example,
|
|
a value of 11 means that the largest free memory block is 2^10 pages.
|
|
|
|
The page size is not necessarily 4KB. Keep this in mind
|
|
when choosing a value for this option.
|
|
|
|
config BOARD_SCACHE
|
|
bool
|
|
|
|
config IP22_CPU_SCACHE
|
|
bool
|
|
select BOARD_SCACHE
|
|
|
|
#
|
|
# Support for a MIPS32 / MIPS64 style S-caches
|
|
#
|
|
config MIPS_CPU_SCACHE
|
|
bool
|
|
select BOARD_SCACHE
|
|
|
|
config R5000_CPU_SCACHE
|
|
bool
|
|
select BOARD_SCACHE
|
|
|
|
config RM7000_CPU_SCACHE
|
|
bool
|
|
select BOARD_SCACHE
|
|
|
|
config SIBYTE_DMA_PAGEOPS
|
|
bool "Use DMA to clear/copy pages"
|
|
depends on CPU_SB1
|
|
help
|
|
Instead of using the CPU to zero and copy pages, use a Data Mover
|
|
channel. These DMA channels are otherwise unused by the standard
|
|
SiByte Linux port. Seems to give a small performance benefit.
|
|
|
|
config CPU_HAS_PREFETCH
|
|
bool
|
|
|
|
config CPU_GENERIC_DUMP_TLB
|
|
bool
|
|
default y if !CPU_R3000
|
|
|
|
config MIPS_FP_SUPPORT
|
|
bool "Floating Point support" if EXPERT
|
|
default y
|
|
help
|
|
Select y to include support for floating point in the kernel
|
|
including initialization of FPU hardware, FP context save & restore
|
|
and emulation of an FPU where necessary. Without this support any
|
|
userland program attempting to use floating point instructions will
|
|
receive a SIGILL.
|
|
|
|
If you know that your userland will not attempt to use floating point
|
|
instructions then you can say n here to shrink the kernel a little.
|
|
|
|
If unsure, say y.
|
|
|
|
config CPU_R2300_FPU
|
|
bool
|
|
depends on MIPS_FP_SUPPORT
|
|
default y if CPU_R3000
|
|
|
|
config CPU_R3K_TLB
|
|
bool
|
|
|
|
config CPU_R4K_FPU
|
|
bool
|
|
depends on MIPS_FP_SUPPORT
|
|
default y if !CPU_R2300_FPU
|
|
|
|
config CPU_R4K_CACHE_TLB
|
|
bool
|
|
default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
|
|
|
|
config MIPS_MT_SMP
|
|
bool "MIPS MT SMP support (1 TC on each available VPE)"
|
|
default y
|
|
depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
|
|
select CPU_MIPSR2_IRQ_VI
|
|
select CPU_MIPSR2_IRQ_EI
|
|
select SYNC_R4K
|
|
select MIPS_MT
|
|
select SMP
|
|
select SMP_UP
|
|
select SYS_SUPPORTS_SMP
|
|
select SYS_SUPPORTS_SCHED_SMT
|
|
select MIPS_PERF_SHARED_TC_COUNTERS
|
|
help
|
|
This is a kernel model which is known as SMVP. This is supported
|
|
on cores with the MT ASE and uses the available VPEs to implement
|
|
virtual processors which supports SMP. This is equivalent to the
|
|
Intel Hyperthreading feature. For further information go to
|
|
<http://www.imgtec.com/mips/mips-multithreading.asp>.
|
|
|
|
config MIPS_MT
|
|
bool
|
|
|
|
config SCHED_SMT
|
|
bool "SMT (multithreading) scheduler support"
|
|
depends on SYS_SUPPORTS_SCHED_SMT
|
|
default n
|
|
help
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
when dealing with MIPS MT enabled cores at a cost of slightly
|
|
increased overhead in some places. If unsure say N here.
|
|
|
|
config SYS_SUPPORTS_SCHED_SMT
|
|
bool
|
|
|
|
config SYS_SUPPORTS_MULTITHREADING
|
|
bool
|
|
|
|
config MIPS_MT_FPAFF
|
|
bool "Dynamic FPU affinity for FP-intensive threads"
|
|
default y
|
|
depends on MIPS_MT_SMP
|
|
|
|
config MIPSR2_TO_R6_EMULATOR
|
|
bool "MIPS R2-to-R6 emulator"
|
|
depends on CPU_MIPSR6
|
|
depends on MIPS_FP_SUPPORT
|
|
default y
|
|
help
|
|
Choose this option if you want to run non-R6 MIPS userland code.
|
|
Even if you say 'Y' here, the emulator will still be disabled by
|
|
default. You can enable it using the 'mipsr2emu' kernel option.
|
|
The only reason this is a build-time option is to save ~14K from the
|
|
final kernel image.
|
|
|
|
config SYS_SUPPORTS_VPE_LOADER
|
|
bool
|
|
depends on SYS_SUPPORTS_MULTITHREADING
|
|
help
|
|
Indicates that the platform supports the VPE loader, and provides
|
|
physical_memsize.
|
|
|
|
config MIPS_VPE_LOADER
|
|
bool "VPE loader support."
|
|
depends on SYS_SUPPORTS_VPE_LOADER && MODULES
|
|
select CPU_MIPSR2_IRQ_VI
|
|
select CPU_MIPSR2_IRQ_EI
|
|
select MIPS_MT
|
|
help
|
|
Includes a loader for loading an elf relocatable object
|
|
onto another VPE and running it.
|
|
|
|
config MIPS_VPE_LOADER_CMP
|
|
bool
|
|
default "y"
|
|
depends on MIPS_VPE_LOADER && MIPS_CMP
|
|
|
|
config MIPS_VPE_LOADER_MT
|
|
bool
|
|
default "y"
|
|
depends on MIPS_VPE_LOADER && !MIPS_CMP
|
|
|
|
config MIPS_VPE_LOADER_TOM
|
|
bool "Load VPE program into memory hidden from linux"
|
|
depends on MIPS_VPE_LOADER
|
|
default y
|
|
help
|
|
The loader can use memory that is present but has been hidden from
|
|
Linux using the kernel command line option "mem=xxMB". It's up to
|
|
you to ensure the amount you put in the option and the space your
|
|
program requires is less or equal to the amount physically present.
|
|
|
|
config MIPS_VPE_APSP_API
|
|
bool "Enable support for AP/SP API (RTLX)"
|
|
depends on MIPS_VPE_LOADER
|
|
|
|
config MIPS_VPE_APSP_API_CMP
|
|
bool
|
|
default "y"
|
|
depends on MIPS_VPE_APSP_API && MIPS_CMP
|
|
|
|
config MIPS_VPE_APSP_API_MT
|
|
bool
|
|
default "y"
|
|
depends on MIPS_VPE_APSP_API && !MIPS_CMP
|
|
|
|
config MIPS_CMP
|
|
bool "MIPS CMP framework support (DEPRECATED)"
|
|
depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
|
|
select SMP
|
|
select SYNC_R4K
|
|
select SYS_SUPPORTS_SMP
|
|
select WEAK_ORDERING
|
|
default n
|
|
help
|
|
Select this if you are using a bootloader which implements the "CMP
|
|
framework" protocol (ie. YAMON) and want your kernel to make use of
|
|
its ability to start secondary CPUs.
|
|
|
|
Unless you have a specific need, you should use CONFIG_MIPS_CPS
|
|
instead of this.
|
|
|
|
config MIPS_CPS
|
|
bool "MIPS Coherent Processing System support"
|
|
depends on SYS_SUPPORTS_MIPS_CPS
|
|
select MIPS_CM
|
|
select MIPS_CPS_PM if HOTPLUG_CPU
|
|
select SMP
|
|
select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
|
|
select SYS_SUPPORTS_HOTPLUG_CPU
|
|
select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
|
|
select SYS_SUPPORTS_SMP
|
|
select WEAK_ORDERING
|
|
select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
|
|
help
|
|
Select this if you wish to run an SMP kernel across multiple cores
|
|
within a MIPS Coherent Processing System. When this option is
|
|
enabled the kernel will probe for other cores and boot them with
|
|
no external assistance. It is safe to enable this when hardware
|
|
support is unavailable.
|
|
|
|
config MIPS_CPS_PM
|
|
depends on MIPS_CPS
|
|
bool
|
|
|
|
config MIPS_CM
|
|
bool
|
|
select MIPS_CPC
|
|
|
|
config MIPS_CPC
|
|
bool
|
|
|
|
config SB1_PASS_2_WORKAROUNDS
|
|
bool
|
|
depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
|
|
default y
|
|
|
|
config SB1_PASS_2_1_WORKAROUNDS
|
|
bool
|
|
depends on CPU_SB1 && CPU_SB1_PASS_2
|
|
default y
|
|
|
|
choice
|
|
prompt "SmartMIPS or microMIPS ASE support"
|
|
|
|
config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
|
|
bool "None"
|
|
help
|
|
Select this if you want neither microMIPS nor SmartMIPS support
|
|
|
|
config CPU_HAS_SMARTMIPS
|
|
depends on SYS_SUPPORTS_SMARTMIPS
|
|
bool "SmartMIPS"
|
|
help
|
|
SmartMIPS is a extension of the MIPS32 architecture aimed at
|
|
increased security at both hardware and software level for
|
|
smartcards. Enabling this option will allow proper use of the
|
|
SmartMIPS instructions by Linux applications. However a kernel with
|
|
this option will not work on a MIPS core without SmartMIPS core. If
|
|
you don't know you probably don't have SmartMIPS and should say N
|
|
here.
|
|
|
|
config CPU_MICROMIPS
|
|
depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
|
|
bool "microMIPS"
|
|
help
|
|
When this option is enabled the kernel will be built using the
|
|
microMIPS ISA
|
|
|
|
endchoice
|
|
|
|
config CPU_HAS_MSA
|
|
bool "Support for the MIPS SIMD Architecture"
|
|
depends on CPU_SUPPORTS_MSA
|
|
depends on MIPS_FP_SUPPORT
|
|
depends on 64BIT || MIPS_O32_FP64_SUPPORT
|
|
help
|
|
MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
|
|
and a set of SIMD instructions to operate on them. When this option
|
|
is enabled the kernel will support allocating & switching MSA
|
|
vector register contexts. If you know that your kernel will only be
|
|
running on CPUs which do not support MSA or that your userland will
|
|
not be making use of it then you may wish to say N here to reduce
|
|
the size & complexity of your kernel.
|
|
|
|
If unsure, say Y.
|
|
|
|
config CPU_HAS_WB
|
|
bool
|
|
|
|
config XKS01
|
|
bool
|
|
|
|
config CPU_HAS_DIEI
|
|
depends on !CPU_DIEI_BROKEN
|
|
bool
|
|
|
|
config CPU_DIEI_BROKEN
|
|
bool
|
|
|
|
config CPU_HAS_RIXI
|
|
bool
|
|
|
|
config CPU_NO_LOAD_STORE_LR
|
|
bool
|
|
help
|
|
CPU lacks support for unaligned load and store instructions:
|
|
LWL, LWR, SWL, SWR (Load/store word left/right).
|
|
LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
|
|
systems).
|
|
|
|
#
|
|
# Vectored interrupt mode is an R2 feature
|
|
#
|
|
config CPU_MIPSR2_IRQ_VI
|
|
bool
|
|
|
|
#
|
|
# Extended interrupt mode is an R2 feature
|
|
#
|
|
config CPU_MIPSR2_IRQ_EI
|
|
bool
|
|
|
|
config CPU_HAS_SYNC
|
|
bool
|
|
depends on !CPU_R3000
|
|
default y
|
|
|
|
#
|
|
# CPU non-features
|
|
#
|
|
|
|
# Work around the "daddi" and "daddiu" CPU errata:
|
|
#
|
|
# - The `daddi' instruction fails to trap on overflow.
|
|
# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
|
|
# erratum #23
|
|
#
|
|
# - The `daddiu' instruction can produce an incorrect result.
|
|
# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
|
|
# erratum #41
|
|
# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
|
|
# #15
|
|
# "MIPS R4400PC/SC Errata, Processor Revision 1.0", erratum #7
|
|
# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #5
|
|
config CPU_DADDI_WORKAROUNDS
|
|
bool
|
|
|
|
# Work around certain R4000 CPU errata (as implemented by GCC):
|
|
#
|
|
# - A double-word or a variable shift may give an incorrect result
|
|
# if executed immediately after starting an integer division:
|
|
# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
|
|
# erratum #28
|
|
# "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
|
|
# #19
|
|
#
|
|
# - A double-word or a variable shift may give an incorrect result
|
|
# if executed while an integer multiplication is in progress:
|
|
# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
|
|
# errata #16 & #28
|
|
#
|
|
# - An integer division may give an incorrect result if started in
|
|
# a delay slot of a taken branch or a jump:
|
|
# "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
|
|
# erratum #52
|
|
config CPU_R4000_WORKAROUNDS
|
|
bool
|
|
select CPU_R4400_WORKAROUNDS
|
|
|
|
# Work around certain R4400 CPU errata (as implemented by GCC):
|
|
#
|
|
# - A double-word or a variable shift may give an incorrect result
|
|
# if executed immediately after starting an integer division:
|
|
# "MIPS R4400MC Errata, Processor Revision 1.0", erratum #10
|
|
# "MIPS R4400MC Errata, Processor Revision 2.0 & 3.0", erratum #4
|
|
config CPU_R4400_WORKAROUNDS
|
|
bool
|
|
|
|
config CPU_R4X00_BUGS64
|
|
bool
|
|
default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
|
|
|
|
config MIPS_ASID_SHIFT
|
|
int
|
|
default 6 if CPU_R3000
|
|
default 0
|
|
|
|
config MIPS_ASID_BITS
|
|
int
|
|
default 0 if MIPS_ASID_BITS_VARIABLE
|
|
default 6 if CPU_R3000
|
|
default 8
|
|
|
|
config MIPS_ASID_BITS_VARIABLE
|
|
bool
|
|
|
|
config MIPS_CRC_SUPPORT
|
|
bool
|
|
|
|
# R4600 erratum. Due to the lack of errata information the exact
|
|
# technical details aren't known. I've experimentally found that disabling
|
|
# interrupts during indexed I-cache flushes seems to be sufficient to deal
|
|
# with the issue.
|
|
config WAR_R4600_V1_INDEX_ICACHEOP
|
|
bool
|
|
|
|
# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata:
|
|
#
|
|
# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
|
|
# Hit_Invalidate_D and Create_Dirty_Excl_D should only be
|
|
# executed if there is no other dcache activity. If the dcache is
|
|
# accessed for another instruction immediately preceding when these
|
|
# cache instructions are executing, it is possible that the dcache
|
|
# tag match outputs used by these cache instructions will be
|
|
# incorrect. These cache instructions should be preceded by at least
|
|
# four instructions that are not any kind of load or store
|
|
# instruction.
|
|
#
|
|
# This is not allowed: lw
|
|
# nop
|
|
# nop
|
|
# nop
|
|
# cache Hit_Writeback_Invalidate_D
|
|
#
|
|
# This is allowed: lw
|
|
# nop
|
|
# nop
|
|
# nop
|
|
# nop
|
|
# cache Hit_Writeback_Invalidate_D
|
|
config WAR_R4600_V1_HIT_CACHEOP
|
|
bool
|
|
|
|
# Writeback and invalidate the primary cache dcache before DMA.
|
|
#
|
|
# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
|
|
# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
|
|
# operate correctly if the internal data cache refill buffer is empty. These
|
|
# CACHE instructions should be separated from any potential data cache miss
|
|
# by a load instruction to an uncached address to empty the response buffer."
|
|
# (Revision 2.0 device errata from IDT available on https://www.idt.com/
|
|
# in .pdf format.)
|
|
config WAR_R4600_V2_HIT_CACHEOP
|
|
bool
|
|
|
|
# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
|
|
# the line which this instruction itself exists, the following
|
|
# operation is not guaranteed."
|
|
#
|
|
# Workaround: do two phase flushing for Index_Invalidate_I
|
|
config WAR_TX49XX_ICACHE_INDEX_INV
|
|
bool
|
|
|
|
# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
|
|
# opposes it being called that) where invalid instructions in the same
|
|
# I-cache line worth of instructions being fetched may case spurious
|
|
# exceptions.
|
|
config WAR_ICACHE_REFILLS
|
|
bool
|
|
|
|
# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
|
|
# may cause ll / sc and lld / scd sequences to execute non-atomically.
|
|
config WAR_R10000_LLSC
|
|
bool
|
|
|
|
# 34K core erratum: "Problems Executing the TLBR Instruction"
|
|
config WAR_MIPS34K_MISSED_ITLB
|
|
bool
|
|
|
|
#
|
|
# - Highmem only makes sense for the 32-bit kernel.
|
|
# - The current highmem code will only work properly on physically indexed
|
|
# caches such as R3000, SB1, R7000 or those that look like they're virtually
|
|
# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
|
|
# moment we protect the user and offer the highmem option only on machines
|
|
# where it's known to be safe. This will not offer highmem on a few systems
|
|
# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
|
|
# indexed CPUs but we're playing safe.
|
|
# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
|
|
# know they might have memory configurations that could make use of highmem
|
|
# support.
|
|
#
|
|
config HIGHMEM
|
|
bool "High Memory Support"
|
|
depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
|
|
select KMAP_LOCAL
|
|
|
|
config CPU_SUPPORTS_HIGHMEM
|
|
bool
|
|
|
|
config SYS_SUPPORTS_HIGHMEM
|
|
bool
|
|
|
|
config SYS_SUPPORTS_SMARTMIPS
|
|
bool
|
|
|
|
config SYS_SUPPORTS_MICROMIPS
|
|
bool
|
|
|
|
config SYS_SUPPORTS_MIPS16
|
|
bool
|
|
help
|
|
This option must be set if a kernel might be executed on a MIPS16-
|
|
enabled CPU even if MIPS16 is not actually being used. In other
|
|
words, it makes the kernel MIPS16-tolerant.
|
|
|
|
config CPU_SUPPORTS_MSA
|
|
bool
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
def_bool y
|
|
depends on !NUMA && !CPU_LOONGSON2EF
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
bool
|
|
|
|
config NUMA
|
|
bool "NUMA Support"
|
|
depends on SYS_SUPPORTS_NUMA
|
|
select SMP
|
|
select HAVE_SETUP_PER_CPU_AREA
|
|
select NEED_PER_CPU_EMBED_FIRST_CHUNK
|
|
help
|
|
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
|
|
Access). This option improves performance on systems with more
|
|
than two nodes; on two node systems it is generally better to
|
|
leave it disabled; on single node systems leave this option
|
|
disabled.
|
|
|
|
config SYS_SUPPORTS_NUMA
|
|
bool
|
|
|
|
config HAVE_ARCH_NODEDATA_EXTENSION
|
|
bool
|
|
|
|
config RELOCATABLE
|
|
bool "Relocatable kernel"
|
|
depends on SYS_SUPPORTS_RELOCATABLE
|
|
depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
|
|
CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
|
|
CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
|
|
CPU_P5600 || CAVIUM_OCTEON_SOC || \
|
|
CPU_LOONGSON64
|
|
help
|
|
This builds a kernel image that retains relocation information
|
|
so it can be loaded someplace besides the default 1MB.
|
|
The relocations make the kernel binary about 15% larger,
|
|
but are discarded at runtime
|
|
|
|
config RELOCATION_TABLE_SIZE
|
|
hex "Relocation table size"
|
|
depends on RELOCATABLE
|
|
range 0x0 0x01000000
|
|
default "0x00200000" if CPU_LOONGSON64
|
|
default "0x00100000"
|
|
help
|
|
A table of relocation data will be appended to the kernel binary
|
|
and parsed at boot to fix up the relocated kernel.
|
|
|
|
This option allows the amount of space reserved for the table to be
|
|
adjusted, although the default of 1Mb should be ok in most cases.
|
|
|
|
The build will fail and a valid size suggested if this is too small.
|
|
|
|
If unsure, leave at the default value.
|
|
|
|
config RANDOMIZE_BASE
|
|
bool "Randomize the address of the kernel image"
|
|
depends on RELOCATABLE
|
|
help
|
|
Randomizes the physical and virtual address at which the
|
|
kernel image is loaded, as a security feature that
|
|
deters exploit attempts relying on knowledge of the location
|
|
of kernel internals.
|
|
|
|
Entropy is generated using any coprocessor 0 registers available.
|
|
|
|
The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
|
|
|
|
If unsure, say N.
|
|
|
|
config RANDOMIZE_BASE_MAX_OFFSET
|
|
hex "Maximum kASLR offset" if EXPERT
|
|
depends on RANDOMIZE_BASE
|
|
range 0x0 0x40000000 if EVA || 64BIT
|
|
range 0x0 0x08000000
|
|
default "0x01000000"
|
|
help
|
|
When kASLR is active, this provides the maximum offset that will
|
|
be applied to the kernel image. It should be set according to the
|
|
amount of physical RAM available in the target system minus
|
|
PHYSICAL_START and must be a power of 2.
|
|
|
|
This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
|
|
EVA or 64-bit. The default is 16Mb.
|
|
|
|
config NODES_SHIFT
|
|
int
|
|
default "6"
|
|
depends on NUMA
|
|
|
|
config HW_PERF_EVENTS
|
|
bool "Enable hardware performance counter support for perf events"
|
|
depends on PERF_EVENTS && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_LOONGSON64)
|
|
default y
|
|
help
|
|
Enable hardware performance counter support for perf events. If
|
|
disabled, perf events will use software events only.
|
|
|
|
config DMI
|
|
bool "Enable DMI scanning"
|
|
depends on MACH_LOONGSON64
|
|
select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
|
|
default y
|
|
help
|
|
Enabled scanning of DMI to identify machine quirks. Say Y
|
|
here unless you have verified that your setup is not
|
|
affected by entries in the DMI blacklist. Required by PNP
|
|
BIOS code.
|
|
|
|
config SMP
|
|
bool "Multi-Processing support"
|
|
depends on SYS_SUPPORTS_SMP
|
|
help
|
|
This enables support for systems with more than one CPU. If you have
|
|
a system with only one CPU, say N. If you have a system with more
|
|
than one CPU, say Y.
|
|
|
|
If you say N here, the kernel will run on uni- and multiprocessor
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
you say Y here, the kernel will run on many, but not all,
|
|
uniprocessor machines. On a uniprocessor machine, the kernel
|
|
will run faster if you say N here.
|
|
|
|
People using multiprocessor machines who say Y here should also say
|
|
Y to "Enhanced Real Time Clock Support", below.
|
|
|
|
See also the SMP-HOWTO available at
|
|
<https://www.tldp.org/docs.html#howto>.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
|
|
help
|
|
Say Y here to allow turning CPUs off and on. CPUs can be
|
|
controlled through /sys/devices/system/cpu.
|
|
(Note: power management support will enable this option
|
|
automatically on SMP systems. )
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
config SMP_UP
|
|
bool
|
|
|
|
config SYS_SUPPORTS_MIPS_CMP
|
|
bool
|
|
|
|
config SYS_SUPPORTS_MIPS_CPS
|
|
bool
|
|
|
|
config SYS_SUPPORTS_SMP
|
|
bool
|
|
|
|
config NR_CPUS_DEFAULT_4
|
|
bool
|
|
|
|
config NR_CPUS_DEFAULT_8
|
|
bool
|
|
|
|
config NR_CPUS_DEFAULT_16
|
|
bool
|
|
|
|
config NR_CPUS_DEFAULT_32
|
|
bool
|
|
|
|
config NR_CPUS_DEFAULT_64
|
|
bool
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-256)"
|
|
range 2 256
|
|
depends on SMP
|
|
default "4" if NR_CPUS_DEFAULT_4
|
|
default "8" if NR_CPUS_DEFAULT_8
|
|
default "16" if NR_CPUS_DEFAULT_16
|
|
default "32" if NR_CPUS_DEFAULT_32
|
|
default "64" if NR_CPUS_DEFAULT_64
|
|
help
|
|
This allows you to specify the maximum number of CPUs which this
|
|
kernel will support. The maximum supported value is 32 for 32-bit
|
|
kernel and 64 for 64-bit kernels; the minimum value which makes
|
|
sense is 1 for Qemu (useful only for kernel debugging purposes)
|
|
and 2 for all others.
|
|
|
|
This is purely to save memory - each supported CPU adds
|
|
approximately eight kilobytes to the kernel image. For best
|
|
performance should round up your number of processors to the next
|
|
power of two.
|
|
|
|
config MIPS_PERF_SHARED_TC_COUNTERS
|
|
bool
|
|
|
|
config MIPS_NR_CPU_NR_MAP_1024
|
|
bool
|
|
|
|
config MIPS_NR_CPU_NR_MAP
|
|
int
|
|
depends on SMP
|
|
default 1024 if MIPS_NR_CPU_NR_MAP_1024
|
|
default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
|
|
|
|
#
|
|
# Timer Interrupt Frequency Configuration
|
|
#
|
|
|
|
choice
|
|
prompt "Timer frequency"
|
|
default HZ_250
|
|
help
|
|
Allows the configuration of the timer frequency.
|
|
|
|
config HZ_24
|
|
bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_48
|
|
bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_100
|
|
bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_128
|
|
bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_250
|
|
bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_256
|
|
bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_1000
|
|
bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
config HZ_1024
|
|
bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
|
|
|
|
endchoice
|
|
|
|
config SYS_SUPPORTS_24HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_48HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_100HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_128HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_250HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_256HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_1000HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_1024HZ
|
|
bool
|
|
|
|
config SYS_SUPPORTS_ARBIT_HZ
|
|
bool
|
|
default y if !SYS_SUPPORTS_24HZ && \
|
|
!SYS_SUPPORTS_48HZ && \
|
|
!SYS_SUPPORTS_100HZ && \
|
|
!SYS_SUPPORTS_128HZ && \
|
|
!SYS_SUPPORTS_250HZ && \
|
|
!SYS_SUPPORTS_256HZ && \
|
|
!SYS_SUPPORTS_1000HZ && \
|
|
!SYS_SUPPORTS_1024HZ
|
|
|
|
config HZ
|
|
int
|
|
default 24 if HZ_24
|
|
default 48 if HZ_48
|
|
default 100 if HZ_100
|
|
default 128 if HZ_128
|
|
default 250 if HZ_250
|
|
default 256 if HZ_256
|
|
default 1000 if HZ_1000
|
|
default 1024 if HZ_1024
|
|
|
|
config SCHED_HRTICK
|
|
def_bool HIGH_RES_TIMERS
|
|
|
|
config KEXEC
|
|
bool "Kexec system call"
|
|
select KEXEC_CORE
|
|
help
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is independent of the system firmware. And like a reboot
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
The name comes from the similarity to the exec system call.
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
initially work for you. As of this writing the exact hardware
|
|
interface is strongly in flux, so no good recommendation can be
|
|
made.
|
|
|
|
config CRASH_DUMP
|
|
bool "Kernel crash dumps"
|
|
help
|
|
Generate crash dump after being started by kexec.
|
|
This should be normally only set in special crash dump kernels
|
|
which are loaded in the main kernel with kexec-tools into
|
|
a specially reserved region and then later executed after
|
|
a crash by kdump/kexec. The crash dump kernel must be compiled
|
|
to a memory address not used by the main kernel or firmware using
|
|
PHYSICAL_START.
|
|
|
|
config PHYSICAL_START
|
|
hex "Physical address where the kernel is loaded"
|
|
default "0xffffffff84000000"
|
|
depends on CRASH_DUMP
|
|
help
|
|
This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
|
|
If you plan to use kernel for capturing the crash dump change
|
|
this value to start of the reserved region (the "X" value as
|
|
specified in the "crashkernel=YM@XM" command line boot parameter
|
|
passed to the panic-ed kernel).
|
|
|
|
config MIPS_O32_FP64_SUPPORT
|
|
bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
|
|
depends on 32BIT || MIPS32_O32
|
|
help
|
|
When this is enabled, the kernel will support use of 64-bit floating
|
|
point registers with binaries using the O32 ABI along with the
|
|
EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
|
|
32-bit MIPS systems this support is at the cost of increasing the
|
|
size and complexity of the compiled FPU emulator. Thus if you are
|
|
running a MIPS32 system and know that none of your userland binaries
|
|
will require 64-bit floating point, you may wish to reduce the size
|
|
of your kernel & potentially improve FP emulation performance by
|
|
saying N here.
|
|
|
|
Although binutils currently supports use of this flag the details
|
|
concerning its effect upon the O32 ABI in userland are still being
|
|
worked on. In order to avoid userland becoming dependent upon current
|
|
behaviour before the details have been finalised, this option should
|
|
be considered experimental and only enabled by those working upon
|
|
said details.
|
|
|
|
If unsure, say N.
|
|
|
|
config USE_OF
|
|
bool
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
select IRQ_DOMAIN
|
|
|
|
config UHI_BOOT
|
|
bool
|
|
|
|
config BUILTIN_DTB
|
|
bool
|
|
|
|
choice
|
|
prompt "Kernel appended dtb support" if USE_OF
|
|
default MIPS_NO_APPENDED_DTB
|
|
|
|
config MIPS_NO_APPENDED_DTB
|
|
bool "None"
|
|
help
|
|
Do not enable appended dtb support.
|
|
|
|
config MIPS_ELF_APPENDED_DTB
|
|
bool "vmlinux"
|
|
help
|
|
With this option, the boot code will look for a device tree binary
|
|
DTB) included in the vmlinux ELF section .appended_dtb. By default
|
|
it is empty and the DTB can be appended using binutils command
|
|
objcopy:
|
|
|
|
objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
|
|
|
|
This is meant as a backward compatibility convenience for those
|
|
systems with a bootloader that can't be upgraded to accommodate
|
|
the documented boot protocol using a device tree.
|
|
|
|
config MIPS_RAW_APPENDED_DTB
|
|
bool "vmlinux.bin or vmlinuz.bin"
|
|
help
|
|
With this option, the boot code will look for a device tree binary
|
|
DTB) appended to raw vmlinux.bin or vmlinuz.bin.
|
|
(e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
|
|
|
|
This is meant as a backward compatibility convenience for those
|
|
systems with a bootloader that can't be upgraded to accommodate
|
|
the documented boot protocol using a device tree.
|
|
|
|
Beware that there is very little in terms of protection against
|
|
this option being confused by leftover garbage in memory that might
|
|
look like a DTB header after a reboot if no actual DTB is appended
|
|
to vmlinux.bin. Do not leave this option active in a production kernel
|
|
if you don't intend to always append a DTB.
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Kernel command line type" if !CMDLINE_OVERRIDE
|
|
default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
|
|
!MACH_LOONGSON64 && !MIPS_MALTA && \
|
|
!CAVIUM_OCTEON_SOC
|
|
default MIPS_CMDLINE_FROM_BOOTLOADER
|
|
|
|
config MIPS_CMDLINE_FROM_DTB
|
|
depends on USE_OF
|
|
bool "Dtb kernel arguments if available"
|
|
|
|
config MIPS_CMDLINE_DTB_EXTEND
|
|
depends on USE_OF
|
|
bool "Extend dtb kernel arguments with bootloader arguments"
|
|
|
|
config MIPS_CMDLINE_FROM_BOOTLOADER
|
|
bool "Bootloader kernel arguments if available"
|
|
|
|
config MIPS_CMDLINE_BUILTIN_EXTEND
|
|
depends on CMDLINE_BOOL
|
|
bool "Extend builtin kernel arguments with bootloader arguments"
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
config LOCKDEP_SUPPORT
|
|
bool
|
|
default y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
bool
|
|
default y
|
|
|
|
config PGTABLE_LEVELS
|
|
int
|
|
default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
|
|
default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48)
|
|
default 2
|
|
|
|
config MIPS_AUTO_PFN_OFFSET
|
|
bool
|
|
|
|
menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
|
|
|
|
config PCI_DRIVERS_GENERIC
|
|
select PCI_DOMAINS_GENERIC if PCI
|
|
bool
|
|
|
|
config PCI_DRIVERS_LEGACY
|
|
def_bool !PCI_DRIVERS_GENERIC
|
|
select NO_GENERIC_PCI_IOPORT_MAP
|
|
select PCI_DOMAINS if PCI
|
|
|
|
#
|
|
# ISA support is now enabled via select. Too many systems still have the one
|
|
# or other ISA chip on the board that users don't know about so don't expect
|
|
# users to choose the right thing ...
|
|
#
|
|
config ISA
|
|
bool
|
|
|
|
config TC
|
|
bool "TURBOchannel support"
|
|
depends on MACH_DECSTATION
|
|
help
|
|
TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
|
|
processors. TURBOchannel programming specifications are available
|
|
at:
|
|
<ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
|
|
and:
|
|
<http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
|
|
Linux driver support status is documented at:
|
|
<http://www.linux-mips.org/wiki/DECstation>
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config ARCH_MMAP_RND_BITS_MIN
|
|
default 12 if 64BIT
|
|
default 8
|
|
|
|
config ARCH_MMAP_RND_BITS_MAX
|
|
default 18 if 64BIT
|
|
default 15
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MIN
|
|
default 8
|
|
|
|
config ARCH_MMAP_RND_COMPAT_BITS_MAX
|
|
default 15
|
|
|
|
config I8253
|
|
bool
|
|
select CLKSRC_I8253
|
|
select CLKEVT_I8253
|
|
select MIPS_EXTERNAL_TIMER
|
|
endmenu
|
|
|
|
config TRAD_SIGNALS
|
|
bool
|
|
|
|
config MIPS32_COMPAT
|
|
bool
|
|
|
|
config COMPAT
|
|
bool
|
|
|
|
config MIPS32_O32
|
|
bool "Kernel support for o32 binaries"
|
|
depends on 64BIT
|
|
select ARCH_WANT_OLD_COMPAT_IPC
|
|
select COMPAT
|
|
select MIPS32_COMPAT
|
|
help
|
|
Select this option if you want to run o32 binaries. These are pure
|
|
32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
|
|
existing binaries are in this format.
|
|
|
|
If unsure, say Y.
|
|
|
|
config MIPS32_N32
|
|
bool "Kernel support for n32 binaries"
|
|
depends on 64BIT
|
|
select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
|
select COMPAT
|
|
select MIPS32_COMPAT
|
|
help
|
|
Select this option if you want to run n32 binaries. These are
|
|
64-bit binaries using 32-bit quantities for addressing and certain
|
|
data that would normally be 64-bit. They are used in special
|
|
cases.
|
|
|
|
If unsure, say N.
|
|
|
|
config CC_HAS_MNO_BRANCH_LIKELY
|
|
def_bool y
|
|
depends on $(cc-option,-mno-branch-likely)
|
|
|
|
# https://github.com/llvm/llvm-project/issues/61045
|
|
config CC_HAS_BROKEN_INLINE_COMPAT_BRANCH
|
|
def_bool y if CC_IS_CLANG
|
|
|
|
menu "Power management options"
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
def_bool y
|
|
depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
|
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
def_bool y
|
|
depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
|
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
endmenu
|
|
|
|
config MIPS_EXTERNAL_TIMER
|
|
bool
|
|
|
|
menu "CPU Power Management"
|
|
|
|
if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
|
|
source "drivers/cpufreq/Kconfig"
|
|
endif # CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
|
|
|
|
source "drivers/cpuidle/Kconfig"
|
|
|
|
endmenu
|
|
|
|
source "arch/mips/kvm/Kconfig"
|
|
|
|
source "arch/mips/vdso/Kconfig"
|