blob: 0e7a48598b26ceddbf35e723d42aaa657c0fabc0 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002config MIPS
3 bool
4 default y
Yury Norov942fa982018-05-16 11:18:49 +03005 select ARCH_32BIT_OFF_T if !64BIT
Paul Burtonea6a3732018-11-07 23:14:09 +00006 select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
Matt Redfearn12597982017-05-15 10:46:35 +01007 select ARCH_CLOCKSOURCE_DATA
8 select ARCH_DISCARD_MEMBLOCK
9 select ARCH_HAS_ELF_RANDOMIZE
10 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
Hassan Naveed1e359182018-11-19 16:49:37 -080011 select ARCH_HAS_UBSAN_SANITIZE_ALL
Matt Redfearn12597982017-05-15 10:46:35 +010012 select ARCH_SUPPORTS_UPROBES
Ralf Baechle1ee36302015-09-29 12:19:48 +020013 select ARCH_USE_BUILTIN_BSWAP
Matt Redfearn12597982017-05-15 10:46:35 +010014 select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
Paul Burton25da4e92017-06-09 17:26:42 -070015 select ARCH_USE_QUEUED_RWLOCKS
Paul Burton0b17c962017-06-09 17:26:43 -070016 select ARCH_USE_QUEUED_SPINLOCKS
Matt Redfearn12597982017-05-15 10:46:35 +010017 select ARCH_WANT_IPC_PARSE_VERSION
18 select BUILDTIME_EXTABLE_SORT
19 select CLONE_BACKWARDS
Paul Burton57eeace2018-11-08 23:44:55 +000020 select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
Matt Redfearn12597982017-05-15 10:46:35 +010021 select CPU_PM if CPU_IDLE
22 select GENERIC_ATOMIC64 if !64BIT
23 select GENERIC_CLOCKEVENTS
24 select GENERIC_CMOS_UPDATE
25 select GENERIC_CPU_AUTOPROBE
Paul Burtonb962aeb2018-08-29 14:54:00 -070026 select GENERIC_IOMAP
Matt Redfearn12597982017-05-15 10:46:35 +010027 select GENERIC_IRQ_PROBE
28 select GENERIC_IRQ_SHOW
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010029 select GENERIC_ISA_DMA if EISA
Antony Pavlov740129b2018-04-11 08:50:19 +010030 select GENERIC_LIB_ASHLDI3
31 select GENERIC_LIB_ASHRDI3
32 select GENERIC_LIB_CMPDI2
33 select GENERIC_LIB_LSHRDI3
34 select GENERIC_LIB_UCMPDI2
Matt Redfearn12597982017-05-15 10:46:35 +010035 select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
36 select GENERIC_SMP_IDLE_THREAD
37 select GENERIC_TIME_VSYSCALL
38 select HANDLE_DOMAIN_IRQ
Paul Burton906d4412018-08-20 15:36:18 -070039 select HAVE_ARCH_COMPILER_H
Matt Redfearn12597982017-05-15 10:46:35 +010040 select HAVE_ARCH_JUMP_LABEL
Jason Wessel88547002008-07-29 15:58:53 -050041 select HAVE_ARCH_KGDB
Matt Redfearn109c32f2016-11-24 17:32:45 +000042 select HAVE_ARCH_MMAP_RND_BITS if MMU
43 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
Markos Chandras490b0042014-01-22 14:40:04 +000044 select HAVE_ARCH_SECCOMP_FILTER
Ralf Baechlec0ff3c52012-08-17 08:22:04 +020045 select HAVE_ARCH_TRACEHOOK
Matt Redfearn12597982017-05-15 10:46:35 +010046 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
Hassan Naveed716850a2019-03-12 22:48:12 +000047 select HAVE_EBPF_JIT if (!CPU_MICROMIPS)
Matt Redfearn12597982017-05-15 10:46:35 +010048 select HAVE_CONTEXT_TRACKING
49 select HAVE_COPY_THREAD_TLS
Wu Zhangjin64575f92010-10-27 18:59:09 +080050 select HAVE_C_RECORDMCOUNT
Matt Redfearn12597982017-05-15 10:46:35 +010051 select HAVE_DEBUG_KMEMLEAK
52 select HAVE_DEBUG_STACKOVERFLOW
Matt Redfearn12597982017-05-15 10:46:35 +010053 select HAVE_DMA_CONTIGUOUS
54 select HAVE_DYNAMIC_FTRACE
55 select HAVE_EXIT_THREAD
56 select HAVE_FTRACE_MCOUNT_RECORD
Wu Zhangjin29c5d342009-11-20 20:34:34 +080057 select HAVE_FUNCTION_GRAPH_TRACER
Matt Redfearn12597982017-05-15 10:46:35 +010058 select HAVE_FUNCTION_TRACER
Matt Redfearn12597982017-05-15 10:46:35 +010059 select HAVE_IDE
Hassan Naveedb3a428b2018-10-29 18:27:41 -070060 select HAVE_IOREMAP_PROT
Matt Redfearn12597982017-05-15 10:46:35 +010061 select HAVE_IRQ_EXIT_ON_IRQ_STACK
62 select HAVE_IRQ_TIME_ACCOUNTING
David Daneyc1bf2072010-08-03 11:22:20 -070063 select HAVE_KPROBES
64 select HAVE_KRETPROBES
Paul Burtonc0436b52018-11-21 21:56:36 +000065 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
Tejun Heo9d15ffc2011-12-08 10:22:09 -080066 select HAVE_MEMBLOCK_NODE_MAP
David Howells786d35d2012-09-28 14:31:03 +093067 select HAVE_MOD_ARCH_SPECIFIC
Petr Mladek42a0bb32016-05-20 17:00:33 -070068 select HAVE_NMI
Matt Redfearn12597982017-05-15 10:46:35 +010069 select HAVE_OPROFILE
70 select HAVE_PERF_EVENTS
Marcin Nowakowski08bccf42016-09-02 10:13:21 +020071 select HAVE_REGS_AND_STACK_ACCESS_API
Paul Burton9ea141a2018-06-14 10:13:53 -070072 select HAVE_RSEQ
Masahiro Yamadad148eac2018-06-14 19:36:45 +090073 select HAVE_STACKPROTECTOR
Matt Redfearn12597982017-05-15 10:46:35 +010074 select HAVE_SYSCALL_TRACEPOINTS
Ben Hutchingsa3f14312017-10-04 03:46:14 +010075 select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
Matt Redfearn12597982017-05-15 10:46:35 +010076 select IRQ_FORCED_THREADING
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010077 select ISA if EISA
Matt Redfearn12597982017-05-15 10:46:35 +010078 select MODULES_USE_ELF_RELA if MODULES && 64BIT
79 select MODULES_USE_ELF_REL if MODULES
80 select PERF_USE_VMALLOC
Arnd Bergmann05a0a342018-08-28 16:26:30 +020081 select RTC_LIB
Matt Redfearn12597982017-05-15 10:46:35 +010082 select SYSCTL_EXCEPTION_TRACE
83 select VIRT_TO_BUS
Linus Torvalds1da177e2005-04-16 15:20:36 -070084
Linus Torvalds1da177e2005-04-16 15:20:36 -070085menu "Machine selection"
86
Ralf Baechle5e83d432005-10-29 19:32:41 +010087choice
88 prompt "System type"
Matt Redfearnd41e6852016-12-14 15:09:42 +000089 default MIPS_GENERIC
Linus Torvalds1da177e2005-04-16 15:20:36 -070090
Paul Burtoneed0eab2016-10-05 18:18:20 +010091config MIPS_GENERIC
92 bool "Generic board-agnostic MIPS kernel"
93 select BOOT_RAW
94 select BUILTIN_DTB
95 select CEVT_R4K
96 select CLKSRC_MIPS_GIC
97 select COMMON_CLK
98 select CPU_MIPSR2_IRQ_VI
99 select CPU_MIPSR2_IRQ_EI
100 select CSRC_R4K
101 select DMA_PERDEV_COHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100102 select HAVE_PCI
Paul Burtoneed0eab2016-10-05 18:18:20 +0100103 select IRQ_MIPS_CPU
104 select LIBFDT
Paul Burton0211d492018-07-27 18:23:21 -0700105 select MIPS_AUTO_PFN_OFFSET
Paul Burtoneed0eab2016-10-05 18:18:20 +0100106 select MIPS_CPU_SCACHE
107 select MIPS_GIC
108 select MIPS_L1_CACHE_SHIFT_7
109 select NO_EXCEPT_FILL
110 select PCI_DRIVERS_GENERIC
111 select PINCTRL
112 select SMP_UP if SMP
Matt Redfearna3078e52017-01-23 14:08:13 +0000113 select SWAP_IO_SPACE
Paul Burtoneed0eab2016-10-05 18:18:20 +0100114 select SYS_HAS_CPU_MIPS32_R1
115 select SYS_HAS_CPU_MIPS32_R2
116 select SYS_HAS_CPU_MIPS32_R6
117 select SYS_HAS_CPU_MIPS64_R1
118 select SYS_HAS_CPU_MIPS64_R2
119 select SYS_HAS_CPU_MIPS64_R6
120 select SYS_SUPPORTS_32BIT_KERNEL
121 select SYS_SUPPORTS_64BIT_KERNEL
122 select SYS_SUPPORTS_BIG_ENDIAN
123 select SYS_SUPPORTS_HIGHMEM
124 select SYS_SUPPORTS_LITTLE_ENDIAN
125 select SYS_SUPPORTS_MICROMIPS
126 select SYS_SUPPORTS_MIPS_CPS
127 select SYS_SUPPORTS_MIPS16
128 select SYS_SUPPORTS_MULTITHREADING
129 select SYS_SUPPORTS_RELOCATABLE
130 select SYS_SUPPORTS_SMARTMIPS
Corentin Labbe2e6522c2018-01-17 19:56:38 +0100131 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
132 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
133 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
134 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
135 select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
136 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Paul Burtoneed0eab2016-10-05 18:18:20 +0100137 select USE_OF
Dengcheng Zhu2fe8ea32018-09-11 14:49:24 -0700138 select UHI_BOOT
Paul Burtoneed0eab2016-10-05 18:18:20 +0100139 help
140 Select this to build a kernel which aims to support multiple boards,
141 generally using a flattened device tree passed from the bootloader
142 using the boot protocol defined in the UHI (Unified Hosting
143 Interface) specification.
144
Manuel Lauss42a4f172010-07-15 21:45:04 +0200145config MIPS_ALCHEMY
Yoichi Yuasac3543e22007-05-11 20:44:30 +0900146 bool "Alchemy processor based machines"
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200147 select PHYS_ADDR_T_64BIT
Ralf Baechlef772cdb2012-11-30 17:27:27 +0100148 select CEVT_R4K
Steven J. Hilld7ea3352012-11-14 23:34:17 -0600149 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200150 select IRQ_MIPS_CPU
Manuel Lauss88e9a932014-02-20 14:59:23 +0100151 select DMA_MAYBE_COHERENT # Au1000,1500,1100 aren't, rest is
Manuel Lauss42a4f172010-07-15 21:45:04 +0200152 select SYS_HAS_CPU_MIPS32_R1
153 select SYS_SUPPORTS_32BIT_KERNEL
154 select SYS_SUPPORTS_APM_EMULATION
Linus Walleijd30a2b42016-04-19 11:23:22 +0200155 select GPIOLIB
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800156 select SYS_SUPPORTS_ZBOOT
Manuel Lauss47440222014-07-23 16:36:48 +0200157 select COMMON_CLK
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200159config AR7
160 bool "Texas Instruments AR7"
161 select BOOT_ELF32
162 select DMA_NONCOHERENT
163 select CEVT_R4K
164 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200165 select IRQ_MIPS_CPU
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200166 select NO_EXCEPT_FILL
167 select SWAP_IO_SPACE
168 select SYS_HAS_CPU_MIPS32_R1
169 select SYS_HAS_EARLY_PRINTK
170 select SYS_SUPPORTS_32BIT_KERNEL
171 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200172 select SYS_SUPPORTS_MIPS16
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800173 select SYS_SUPPORTS_ZBOOT_UART16550
Linus Walleijd30a2b42016-04-19 11:23:22 +0200174 select GPIOLIB
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200175 select VLYNQ
Yoichi Yuasa8551fb62012-08-01 15:38:00 +0900176 select HAVE_CLK
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200177 help
178 Support for the Texas Instruments AR7 System-on-a-Chip
179 family: TNETD7100, 7200 and 7300.
180
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400181config ATH25
182 bool "Atheros AR231x/AR531x SoC support"
183 select CEVT_R4K
184 select CSRC_R4K
185 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200186 select IRQ_MIPS_CPU
Sergey Ryazanov1753e742014-10-29 03:18:41 +0400187 select IRQ_DOMAIN
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400188 select SYS_HAS_CPU_MIPS32_R1
189 select SYS_SUPPORTS_BIG_ENDIAN
190 select SYS_SUPPORTS_32BIT_KERNEL
Sergey Ryazanov8aaa7272014-10-29 03:18:42 +0400191 select SYS_HAS_EARLY_PRINTK
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400192 help
193 Support for Atheros AR231x and Atheros AR531x based boards
194
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100195config ATH79
196 bool "Atheros AR71XX/AR724X/AR913X based boards"
Alban Bedelff591a92015-08-03 19:23:52 +0200197 select ARCH_HAS_RESET_CONTROLLER
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100198 select BOOT_RAW
199 select CEVT_R4K
200 select CSRC_R4K
201 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200202 select GPIOLIB
John Crispina08227a2018-07-20 13:58:20 +0200203 select PINCTRL
Gabor Juhos94638062012-08-04 18:01:26 +0200204 select HAVE_CLK
Alban Bedel411520a2015-04-19 14:30:04 +0200205 select COMMON_CLK
Gabor Juhos2c4f1ac2013-08-28 10:41:47 +0200206 select CLKDEV_LOOKUP
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200207 select IRQ_MIPS_CPU
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100208 select SYS_HAS_CPU_MIPS32_R2
209 select SYS_HAS_EARLY_PRINTK
210 select SYS_SUPPORTS_32BIT_KERNEL
211 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200212 select SYS_SUPPORTS_MIPS16
Alban Bedelb3f0a252016-01-26 09:38:29 +0100213 select SYS_SUPPORTS_ZBOOT_UART_PROM
Alban Bedel03c8c402015-05-31 01:52:25 +0200214 select USE_OF
Alban Bedel53d473f2018-03-24 23:47:22 +0100215 select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100216 help
217 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
218
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800219config BMIPS_GENERIC
220 bool "Broadcom Generic BMIPS kernel"
Christoph Hellwigd59098a2018-06-15 13:08:52 +0200221 select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
222 select ARCH_HAS_PHYS_TO_DMA
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700223 select BOOT_RAW
224 select NO_EXCEPT_FILL
225 select USE_OF
226 select CEVT_R4K
227 select CSRC_R4K
228 select SYNC_R4K
229 select COMMON_CLK
Simon Arlottc7c42ec2015-11-22 14:30:14 +0000230 select BCM6345_L1_IRQ
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800231 select BCM7038_L1_IRQ
232 select BCM7120_L2_IRQ
233 select BRCMSTB_L2_IRQ
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200234 select IRQ_MIPS_CPU
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800235 select DMA_NONCOHERENT
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700236 select SYS_SUPPORTS_32BIT_KERNEL
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800237 select SYS_SUPPORTS_LITTLE_ENDIAN
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700238 select SYS_SUPPORTS_BIG_ENDIAN
239 select SYS_SUPPORTS_HIGHMEM
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800240 select SYS_HAS_CPU_BMIPS32_3300
241 select SYS_HAS_CPU_BMIPS4350
242 select SYS_HAS_CPU_BMIPS4380
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700243 select SYS_HAS_CPU_BMIPS5000
244 select SWAP_IO_SPACE
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800245 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
246 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
247 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
248 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Justin Chen4dc47042017-05-24 10:55:16 -0700249 select HARDIRQS_SW_RESEND
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700250 help
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800251 Build a generic DT-based kernel image that boots on select
252 BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
253 box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
254 must be set appropriately for your board.
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700255
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200256config BCM47XX
Florian Fainellic6193662010-03-25 11:42:41 +0100257 bool "Broadcom BCM47XX based boards"
Hauke Mehrtensfe08f8c2012-12-26 20:06:17 +0000258 select BOOT_RAW
Ralf Baechle42f77542007-10-18 17:48:11 +0100259 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000260 select CSRC_R4K
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200261 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100262 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200263 select IRQ_MIPS_CPU
Markos Chandras314878d2013-07-23 15:40:37 +0100264 select SYS_HAS_CPU_MIPS32_R1
Hauke Mehrtensdd54ded2012-12-26 20:06:18 +0000265 select NO_EXCEPT_FILL
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200266 select SYS_SUPPORTS_32BIT_KERNEL
267 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200268 select SYS_SUPPORTS_MIPS16
Aaro Koskinen65078312018-01-17 00:21:44 +0200269 select SYS_SUPPORTS_ZBOOT
Aurelien Jarno25e5fb92007-09-25 15:41:24 +0200270 select SYS_HAS_EARLY_PRINTK
Ralf Baechlee6086552014-03-26 21:40:25 +0100271 select USE_GENERIC_EARLY_PRINTK_8250
Rafał Miłeckic949c0b2014-06-17 16:36:50 +0200272 select GPIOLIB
273 select LEDS_GPIO_REGISTER
Rafał Miłeckif6e734a2015-06-10 23:05:08 +0200274 select BCM47XX_NVRAM
Rafał Miłecki2ab71a02016-01-25 09:50:29 +0100275 select BCM47XX_SPROM
Matt Redfearndfe00492017-11-14 17:16:27 +0000276 select BCM47XX_SSB if !BCM47XX_BCMA
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200277 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100278 Support for BCM47XX based boards
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200279
Maxime Bizone7300d02009-08-18 13:23:37 +0100280config BCM63XX
281 bool "Broadcom BCM63XX based boards"
Florian Fainelliae8de612013-06-18 16:55:39 +0000282 select BOOT_RAW
Maxime Bizone7300d02009-08-18 13:23:37 +0100283 select CEVT_R4K
284 select CSRC_R4K
Jonas Gorskifc264022014-07-08 16:26:13 +0200285 select SYNC_R4K
Maxime Bizone7300d02009-08-18 13:23:37 +0100286 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200287 select IRQ_MIPS_CPU
Maxime Bizone7300d02009-08-18 13:23:37 +0100288 select SYS_SUPPORTS_32BIT_KERNEL
289 select SYS_SUPPORTS_BIG_ENDIAN
290 select SYS_HAS_EARLY_PRINTK
291 select SWAP_IO_SPACE
Linus Walleijd30a2b42016-04-19 11:23:22 +0200292 select GPIOLIB
Yoichi Yuasa3e82eee2012-08-01 15:39:52 +0900293 select HAVE_CLK
Florian Fainelliaf2418b2014-01-14 09:54:40 -0800294 select MIPS_L1_CACHE_SHIFT_4
Jonas Gorskic5af3c22017-09-20 13:14:01 +0200295 select CLKDEV_LOOKUP
Maxime Bizone7300d02009-08-18 13:23:37 +0100296 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100297 Support for BCM63XX based boards
Maxime Bizone7300d02009-08-18 13:23:37 +0100298
Linus Torvalds1da177e2005-04-16 15:20:36 -0700299config MIPS_COBALT
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200300 bool "Cobalt Server"
Ralf Baechle42f77542007-10-18 17:48:11 +0100301 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000302 select CSRC_R4K
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +0900303 select CEVT_GT641XX
Linus Torvalds1da177e2005-04-16 15:20:36 -0700304 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100305 select FORCE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100306 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700307 select I8259
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200308 select IRQ_MIPS_CPU
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +0900309 select IRQ_GT641XX
Yoichi Yuasa252161e2007-03-14 21:51:26 +0900310 select PCI_GT64XXX_PCI0
Ralf Baechle7cf80532005-10-20 22:33:09 +0100311 select SYS_HAS_CPU_NEVADA
Yoichi Yuasa0a22e0d2007-03-02 12:42:33 +0900312 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700313 select SYS_SUPPORTS_32BIT_KERNEL
Florian Fainelli0e8774b2008-01-15 19:42:57 +0100314 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100315 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlee6086552014-03-26 21:40:25 +0100316 select USE_GENERIC_EARLY_PRINTK_8250
Linus Torvalds1da177e2005-04-16 15:20:36 -0700317
318config MACH_DECSTATION
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200319 bool "DECstations"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320 select BOOT_ELF32
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +0900321 select CEVT_DS1287
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100322 select CEVT_R4K if CPU_R4X00
Yoichi Yuasa42474172008-04-24 09:48:40 +0900323 select CSRC_IOASIC
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100324 select CSRC_R4K if CPU_R4X00
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +0100325 select CPU_DADDI_WORKAROUNDS if 64BIT
326 select CPU_R4000_WORKAROUNDS if 64BIT
327 select CPU_R4400_WORKAROUNDS if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700328 select DMA_NONCOHERENT
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700329 select NO_IOPORT_MAP
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200330 select IRQ_MIPS_CPU
Ralf Baechle7cf80532005-10-20 22:33:09 +0100331 select SYS_HAS_CPU_R3000
332 select SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700333 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800334 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100335 select SYS_SUPPORTS_LITTLE_ENDIAN
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900336 select SYS_SUPPORTS_128HZ
337 select SYS_SUPPORTS_256HZ
338 select SYS_SUPPORTS_1024HZ
Florian Fainelli930beb52014-01-14 09:54:38 -0800339 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle5e83d432005-10-29 19:32:41 +0100340 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700341 This enables support for DEC's MIPS based workstations. For details
342 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
343 DECstation porting pages on <http://decstation.unix-ag.org/>.
344
345 If you have one of the following DECstation Models you definitely
346 want to choose R4xx0 for the CPU Type:
347
Ralf Baechle93088162007-08-29 14:21:45 +0100348 DECstation 5000/50
349 DECstation 5000/150
350 DECstation 5000/260
351 DECsystem 5900/260
Linus Torvalds1da177e2005-04-16 15:20:36 -0700352
353 otherwise choose R3000.
354
Ralf Baechle5e83d432005-10-29 19:32:41 +0100355config MACH_JAZZ
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200356 bool "Jazz family of machines"
Ralf Baechlea211a0822018-02-05 15:37:43 +0100357 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100358 select ARCH_MIGHT_HAVE_PC_SERIO
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100359 select FW_ARC
360 select FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100361 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechle42f77542007-10-18 17:48:11 +0100362 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000363 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100364 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100365 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100366 select HAVE_PCSPKR_PLATFORM
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200367 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100368 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100369 select I8259
370 select ISA
Ralf Baechle7cf80532005-10-20 22:33:09 +0100371 select SYS_HAS_CPU_R4X00
Ralf Baechle5e83d432005-10-29 19:32:41 +0100372 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800373 select SYS_SUPPORTS_64BIT_KERNEL
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900374 select SYS_SUPPORTS_100HZ
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100376 This a family of machines based on the MIPS R4030 chipset which was
377 used by several vendors to build RISC/os and Windows NT workstations.
378 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
379 Olivetti M700-10 workstations.
Ralf Baechle5e83d432005-10-29 19:32:41 +0100380
Paul Burtonde361e82015-05-24 16:11:13 +0100381config MACH_INGENIC
382 bool "Ingenic SoC based machines"
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +0000383 select SYS_SUPPORTS_32BIT_KERNEL
384 select SYS_SUPPORTS_LITTLE_ENDIAN
Lluís Batlle i Rossellf9c9aff2012-03-30 16:48:05 +0200385 select SYS_SUPPORTS_ZBOOT_UART16550
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +0000386 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200387 select IRQ_MIPS_CPU
Paul Cercueil37b4c3c2017-05-12 18:52:58 +0200388 select PINCTRL
Linus Walleijd30a2b42016-04-19 11:23:22 +0200389 select GPIOLIB
Paul Burtonff1930c2015-05-24 16:11:36 +0100390 select COMMON_CLK
Lars-Peter Clausen83bc7692011-09-24 02:29:46 +0200391 select GENERIC_IRQ_CHIP
Paul Cercueil15205fc2019-02-21 19:43:10 -0300392 select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
Paul Burtonffb1843d052015-05-24 16:11:15 +0100393 select USE_OF
Paul Burton6ec127f2015-05-24 16:11:42 +0100394 select LIBFDT
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +0000395
John Crispin171bb2f2011-03-30 09:27:47 +0200396config LANTIQ
397 bool "Lantiq based platforms"
398 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200399 select IRQ_MIPS_CPU
John Crispin171bb2f2011-03-30 09:27:47 +0200400 select CEVT_R4K
401 select CSRC_R4K
402 select SYS_HAS_CPU_MIPS32_R1
403 select SYS_HAS_CPU_MIPS32_R2
404 select SYS_SUPPORTS_BIG_ENDIAN
405 select SYS_SUPPORTS_32BIT_KERNEL
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200406 select SYS_SUPPORTS_MIPS16
John Crispin171bb2f2011-03-30 09:27:47 +0200407 select SYS_SUPPORTS_MULTITHREADING
James Hoganf35764e2018-01-15 20:54:35 +0000408 select SYS_SUPPORTS_VPE_LOADER
John Crispin171bb2f2011-03-30 09:27:47 +0200409 select SYS_HAS_EARLY_PRINTK
Linus Walleijd30a2b42016-04-19 11:23:22 +0200410 select GPIOLIB
John Crispin171bb2f2011-03-30 09:27:47 +0200411 select SWAP_IO_SPACE
412 select BOOT_RAW
John Crispin287e3f32012-04-17 15:53:19 +0200413 select CLKDEV_LOOKUP
John Crispina0392222012-04-13 20:56:13 +0200414 select USE_OF
John Crispin3f8c50c2012-08-28 12:44:59 +0200415 select PINCTRL
416 select PINCTRL_LANTIQ
John Crispinc5307812013-09-03 13:18:12 +0200417 select ARCH_HAS_RESET_CONTROLLER
418 select RESET_CONTROLLER
John Crispin171bb2f2011-03-30 09:27:47 +0200419
Brian Murphy1f21d2b2007-08-21 22:34:16 +0200420config LASAT
421 bool "LASAT Networks platforms"
Ralf Baechle42f77542007-10-18 17:48:11 +0100422 select CEVT_R4K
Ralf Baechle16f0bbb2014-06-26 14:43:01 +0100423 select CRC32
Ralf Baechle940f6b42007-11-24 22:33:28 +0000424 select CSRC_R4K
Brian Murphy1f21d2b2007-08-21 22:34:16 +0200425 select DMA_NONCOHERENT
426 select SYS_HAS_EARLY_PRINTK
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100427 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200428 select IRQ_MIPS_CPU
Brian Murphy1f21d2b2007-08-21 22:34:16 +0200429 select PCI_GT64XXX_PCI0
430 select MIPS_NILE4
431 select R5000_CPU_SCACHE
432 select SYS_HAS_CPU_R5000
433 select SYS_SUPPORTS_32BIT_KERNEL
434 select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
435 select SYS_SUPPORTS_LITTLE_ENDIAN
Brian Murphy1f21d2b2007-08-21 22:34:16 +0200436
Huacai Chen30ad29b2015-04-21 10:00:35 +0800437config MACH_LOONGSON32
438 bool "Loongson-1 family of machines"
Wu Zhangjinc7e8c662010-01-04 17:16:46 +0800439 select SYS_SUPPORTS_ZBOOT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900440 help
Huacai Chen30ad29b2015-04-21 10:00:35 +0800441 This enables support for the Loongson-1 family of machines.
Wu Zhangjin85749d22009-07-02 23:26:45 +0800442
Huacai Chen30ad29b2015-04-21 10:00:35 +0800443 Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
444 the Institute of Computing Technology (ICT), Chinese Academy of
445 Sciences (CAS).
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900446
Huacai Chen30ad29b2015-04-21 10:00:35 +0800447config MACH_LOONGSON64
448 bool "Loongson-2/3 family of machines"
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200449 select SYS_SUPPORTS_ZBOOT
450 help
Huacai Chen30ad29b2015-04-21 10:00:35 +0800451 This enables the support of Loongson-2/3 family of machines.
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200452
Huacai Chen30ad29b2015-04-21 10:00:35 +0800453 Loongson-2 is a family of single-core CPUs and Loongson-3 is a
454 family of multi-core CPUs. They are both 64-bit general-purpose
455 MIPS-compatible CPUs. Loongson-2/3 are developed by the Institute
456 of Computing Technology (ICT), Chinese Academy of Sciences (CAS)
457 in the People's Republic of China. The chief architect is Professor
458 Weiwu Hu.
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200459
Andrew Bresticker6a438302015-03-16 14:43:10 -0700460config MACH_PISTACHIO
461 bool "IMG Pistachio SoC based boards"
Andrew Bresticker6a438302015-03-16 14:43:10 -0700462 select BOOT_ELF32
463 select BOOT_RAW
464 select CEVT_R4K
465 select CLKSRC_MIPS_GIC
466 select COMMON_CLK
467 select CSRC_R4K
Zubair Lutfullah Kakakhel645c7822016-06-03 09:35:00 +0100468 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200469 select GPIOLIB
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200470 select IRQ_MIPS_CPU
Andrew Bresticker6a438302015-03-16 14:43:10 -0700471 select LIBFDT
472 select MFD_SYSCON
473 select MIPS_CPU_SCACHE
474 select MIPS_GIC
475 select PINCTRL
476 select REGULATOR
477 select SYS_HAS_CPU_MIPS32_R2
478 select SYS_SUPPORTS_32BIT_KERNEL
479 select SYS_SUPPORTS_LITTLE_ENDIAN
480 select SYS_SUPPORTS_MIPS_CPS
481 select SYS_SUPPORTS_MULTITHREADING
Matt Redfearn41cc07b2016-05-25 12:58:40 +0100482 select SYS_SUPPORTS_RELOCATABLE
Andrew Bresticker6a438302015-03-16 14:43:10 -0700483 select SYS_SUPPORTS_ZBOOT
Ezequiel Garcia018f62e2015-04-28 19:08:35 -0300484 select SYS_HAS_EARLY_PRINTK
485 select USE_GENERIC_EARLY_PRINTK_8250
Andrew Bresticker6a438302015-03-16 14:43:10 -0700486 select USE_OF
487 help
488 This enables support for the IMG Pistachio SoC platform.
489
Linus Torvalds1da177e2005-04-16 15:20:36 -0700490config MIPS_MALTA
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200491 bool "MIPS Malta board"
Ralf Baechle61ed2422005-09-15 08:52:34 +0000492 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100493 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100494 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700495 select BOOT_ELF32
Ralf Baechlefa71c962008-01-29 10:15:00 +0000496 select BOOT_RAW
Paul Burtone8823d22015-05-22 16:51:02 +0100497 select BUILTIN_DTB
Ralf Baechle42f77542007-10-18 17:48:11 +0100498 select CEVT_R4K
Andrew Brestickerfa5635a2014-10-20 12:03:58 -0700499 select CLKSRC_MIPS_GIC
Guenter Roeck42b002a2015-08-22 02:40:41 -0700500 select COMMON_CLK
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200501 select CSRC_R4K
Felix Fietkau885014b2013-09-27 14:41:44 +0200502 select DMA_MAYBE_COHERENT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700503 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100504 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100505 select HAVE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100506 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700507 select I8259
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200508 select IRQ_MIPS_CPU
509 select LIBFDT
Ralf Baechle5e83d432005-10-29 19:32:41 +0100510 select MIPS_BONITO64
Chris Dearman9318c512006-06-20 17:15:20 +0100511 select MIPS_CPU_SCACHE
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200512 select MIPS_GIC
Kevin Cernekeea7ef1ea2014-10-20 21:27:57 -0700513 select MIPS_L1_CACHE_SHIFT_6
Ralf Baechle5e83d432005-10-29 19:32:41 +0100514 select MIPS_MSC
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200515 select PCI_GT64XXX_PCI0
Paul Burtonecafe3e2015-09-22 11:58:43 -0700516 select SMP_UP if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700517 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100518 select SYS_HAS_CPU_MIPS32_R1
519 select SYS_HAS_CPU_MIPS32_R2
Markos Chandrasbfc3c5a2014-01-16 13:12:36 +0000520 select SYS_HAS_CPU_MIPS32_R3_5
Steven J. Hillc5b36782015-02-26 18:16:38 -0600521 select SYS_HAS_CPU_MIPS32_R5
Markos Chandras575509b2014-11-19 11:31:56 +0000522 select SYS_HAS_CPU_MIPS32_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100523 select SYS_HAS_CPU_MIPS64_R1
Leonid Yegoshin5d9fbed2012-07-19 09:11:15 +0200524 select SYS_HAS_CPU_MIPS64_R2
Markos Chandras575509b2014-11-19 11:31:56 +0000525 select SYS_HAS_CPU_MIPS64_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100526 select SYS_HAS_CPU_NEVADA
527 select SYS_HAS_CPU_RM7000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700528 select SYS_SUPPORTS_32BIT_KERNEL
529 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100530 select SYS_SUPPORTS_BIG_ENDIAN
Steven J. Hillc5b36782015-02-26 18:16:38 -0600531 select SYS_SUPPORTS_HIGHMEM
Ralf Baechle5e83d432005-10-29 19:32:41 +0100532 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki424ebcd2014-11-15 22:07:07 +0000533 select SYS_SUPPORTS_MICROMIPS
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200534 select SYS_SUPPORTS_MIPS16
Tim Anderson03650702009-06-17 16:22:53 -0700535 select SYS_SUPPORTS_MIPS_CMP
Paul Burtone56b6aa2014-01-15 10:31:56 +0000536 select SYS_SUPPORTS_MIPS_CPS
Ralf Baechlef41ae0b2006-06-05 17:24:46 +0100537 select SYS_SUPPORTS_MULTITHREADING
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200538 select SYS_SUPPORTS_RELOCATABLE
Franck Bui-Huu9693a852007-02-02 17:41:47 +0100539 select SYS_SUPPORTS_SMARTMIPS
James Hoganf35764e2018-01-15 20:54:35 +0000540 select SYS_SUPPORTS_VPE_LOADER
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800541 select SYS_SUPPORTS_ZBOOT
Paul Burtone8823d22015-05-22 16:51:02 +0100542 select USE_OF
James Hoganabcc82b2015-04-27 15:07:19 +0100543 select ZONE_DMA32 if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700544 help
Maciej W. Rozyckif638d192005-02-02 22:23:46 +0000545 This enables support for the MIPS Technologies Malta evaluation
Linus Torvalds1da177e2005-04-16 15:20:36 -0700546 board.
547
Joshua Henderson2572f002016-01-13 18:15:39 -0700548config MACH_PIC32
549 bool "Microchip PIC32 Family"
550 help
551 This enables support for the Microchip PIC32 family of platforms.
552
553 Microchip PIC32 is a family of general-purpose 32 bit MIPS core
554 microcontrollers.
555
Ralf Baechlea83860c2009-03-13 21:17:57 +0100556config NEC_MARKEINS
557 bool "NEC EMMA2RH Mark-eins board"
558 select SOC_EMMA2RH
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100559 select HAVE_PCI
Ralf Baechlea83860c2009-03-13 21:17:57 +0100560 help
561 This enables support for the NEC Electronics Mark-eins boards.
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900562
Ralf Baechle5e83d432005-10-29 19:32:41 +0100563config MACH_VR41XX
Yoichi Yuasa74142d62007-04-26 19:45:09 +0900564 bool "NEC VR4100 series based machines"
Ralf Baechle42f77542007-10-18 17:48:11 +0100565 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000566 select CSRC_R4K
Ralf Baechle7cf80532005-10-20 22:33:09 +0100567 select SYS_HAS_CPU_VR41XX
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200568 select SYS_SUPPORTS_MIPS16
Linus Walleijd30a2b42016-04-19 11:23:22 +0200569 select GPIOLIB
Ralf Baechle5e83d432005-10-29 19:32:41 +0100570
Daniel Lairdedb63102008-06-16 15:49:21 +0100571config NXP_STB220
572 bool "NXP STB220 board"
573 select SOC_PNX833X
574 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100575 Support for NXP Semiconductors STB220 Development Board.
Daniel Lairdedb63102008-06-16 15:49:21 +0100576
577config NXP_STB225
578 bool "NXP 225 board"
579 select SOC_PNX833X
580 select SOC_PNX8335
581 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100582 Support for NXP Semiconductors STB225 Development Board.
Daniel Lairdedb63102008-06-16 15:49:21 +0100583
Marc St-Jean9267a302007-06-14 15:55:31 -0600584config PMC_MSP
585 bool "PMC-Sierra MSP chipsets"
Anoop P A39d30c12010-11-18 13:42:28 +0530586 select CEVT_R4K
587 select CSRC_R4K
Marc St-Jean9267a302007-06-14 15:55:31 -0600588 select DMA_NONCOHERENT
589 select SWAP_IO_SPACE
590 select NO_EXCEPT_FILL
591 select BOOT_RAW
592 select SYS_HAS_CPU_MIPS32_R1
593 select SYS_HAS_CPU_MIPS32_R2
594 select SYS_SUPPORTS_32BIT_KERNEL
595 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200596 select SYS_SUPPORTS_MIPS16
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200597 select IRQ_MIPS_CPU
Marc St-Jean9267a302007-06-14 15:55:31 -0600598 select SERIAL_8250
599 select SERIAL_8250_CONSOLE
Florian Fainelli9296d942013-04-09 14:29:26 +0200600 select USB_EHCI_BIG_ENDIAN_MMIO
601 select USB_EHCI_BIG_ENDIAN_DESC
Marc St-Jean9267a302007-06-14 15:55:31 -0600602 help
603 This adds support for the PMC-Sierra family of Multi-Service
604 Processor System-On-A-Chips. These parts include a number
605 of integrated peripherals, interfaces and DSPs in addition to
606 a variety of MIPS cores.
607
John Crispinae2b5bb2013-01-20 22:05:30 +0100608config RALINK
609 bool "Ralink based machines"
610 select CEVT_R4K
611 select CSRC_R4K
612 select BOOT_RAW
613 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200614 select IRQ_MIPS_CPU
John Crispinae2b5bb2013-01-20 22:05:30 +0100615 select USE_OF
616 select SYS_HAS_CPU_MIPS32_R1
617 select SYS_HAS_CPU_MIPS32_R2
618 select SYS_SUPPORTS_32BIT_KERNEL
619 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200620 select SYS_SUPPORTS_MIPS16
John Crispinae2b5bb2013-01-20 22:05:30 +0100621 select SYS_HAS_EARLY_PRINTK
John Crispinae2b5bb2013-01-20 22:05:30 +0100622 select CLKDEV_LOOKUP
John Crispin2a153f12013-09-04 00:16:59 +0200623 select ARCH_HAS_RESET_CONTROLLER
624 select RESET_CONTROLLER
John Crispinae2b5bb2013-01-20 22:05:30 +0100625
Linus Torvalds1da177e2005-04-16 15:20:36 -0700626config SGI_IP22
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200627 bool "SGI IP22 (Indy/Indigo2)"
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100628 select FW_ARC
629 select FW_ARC32
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100630 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700631 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100632 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000633 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100634 select DEFAULT_SGI_PARTITION
Linus Torvalds1da177e2005-04-16 15:20:36 -0700635 select DMA_NONCOHERENT
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100636 select HAVE_EISA
Ralf Baechled865bea2007-10-11 23:46:10 +0100637 select I8253
Thomas Bogendoerfer68de4802007-11-23 20:34:16 +0100638 select I8259
Linus Torvalds1da177e2005-04-16 15:20:36 -0700639 select IP22_CPU_SCACHE
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200640 select IRQ_MIPS_CPU
Ralf Baechleaa414df2006-11-30 01:14:51 +0000641 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100642 select SGI_HAS_I8042
643 select SGI_HAS_INDYDOG
Thomas Bogendoerfer36e5c212008-07-16 14:06:15 +0200644 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100645 select SGI_HAS_SEEQ
646 select SGI_HAS_WD93
647 select SGI_HAS_ZILOG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700648 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100649 select SYS_HAS_CPU_R4X00
650 select SYS_HAS_CPU_R5000
Martin Michlmayr2b5e63f2009-11-19 16:40:09 +0000651 #
652 # Disable EARLY_PRINTK for now since it leads to overwritten prom
653 # memory during early boot on some machines.
654 #
655 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
656 # for a more details discussion
657 #
658 # select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700659 select SYS_SUPPORTS_32BIT_KERNEL
660 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100661 select SYS_SUPPORTS_BIG_ENDIAN
Florian Fainelli930beb52014-01-14 09:54:38 -0800662 select MIPS_L1_CACHE_SHIFT_7
Linus Torvalds1da177e2005-04-16 15:20:36 -0700663 help
664 This are the SGI Indy, Challenge S and Indigo2, as well as certain
665 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
666 that runs on these, say Y here.
667
668config SGI_IP27
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200669 bool "SGI IP27 (Origin200/2000)"
Christoph Hellwig54aed4d2018-06-15 13:08:44 +0200670 select ARCH_HAS_PHYS_TO_DMA
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100671 select FW_ARC
672 select FW_ARC64
Ralf Baechle5e83d432005-10-29 19:32:41 +0100673 select BOOT_ELF64
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100674 select DEFAULT_SGI_PARTITION
Ralf Baechle36a88532007-03-01 11:56:43 +0000675 select SYS_HAS_EARLY_PRINTK
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100676 select HAVE_PCI
Thomas Bogendoerfer69a07a42019-02-19 16:57:20 +0100677 select IRQ_MIPS_CPU
Ralf Baechle130e2fb2007-02-06 16:53:15 +0000678 select NR_CPUS_DEFAULT_64
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +0200679 select PCI_DRIVERS_GENERIC
680 select PCI_XTALK_BRIDGE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100681 select SYS_HAS_CPU_R10000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700682 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100683 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechled8cb4e12006-06-11 23:03:08 +0100684 select SYS_SUPPORTS_NUMA
Ralf Baechle1a5c5de2006-11-02 17:23:33 +0000685 select SYS_SUPPORTS_SMP
Florian Fainelli930beb52014-01-14 09:54:38 -0800686 select MIPS_L1_CACHE_SHIFT_7
Linus Torvalds1da177e2005-04-16 15:20:36 -0700687 help
688 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
689 workstations. To compile a Linux kernel that runs on these, say Y
690 here.
691
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100692config SGI_IP28
Kees Cook7d607172013-01-16 18:53:19 -0800693 bool "SGI IP28 (Indigo2 R10k)"
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100694 select FW_ARC
695 select FW_ARC64
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100696 select ARCH_MIGHT_HAVE_PC_SERIO
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100697 select BOOT_ELF64
698 select CEVT_R4K
699 select CSRC_R4K
700 select DEFAULT_SGI_PARTITION
701 select DMA_NONCOHERENT
702 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200703 select IRQ_MIPS_CPU
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100704 select HAVE_EISA
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100705 select I8253
706 select I8259
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100707 select SGI_HAS_I8042
708 select SGI_HAS_INDYDOG
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +0200709 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100710 select SGI_HAS_SEEQ
711 select SGI_HAS_WD93
712 select SGI_HAS_ZILOG
713 select SWAP_IO_SPACE
714 select SYS_HAS_CPU_R10000
Martin Michlmayr2b5e63f2009-11-19 16:40:09 +0000715 #
716 # Disable EARLY_PRINTK for now since it leads to overwritten prom
717 # memory during early boot on some machines.
718 #
719 # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
720 # for a more details discussion
721 #
722 # select SYS_HAS_EARLY_PRINTK
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100723 select SYS_SUPPORTS_64BIT_KERNEL
724 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerferdc24d682014-08-19 22:00:07 +0200725 select MIPS_L1_CACHE_SHIFT_7
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100726 help
727 This is the SGI Indigo2 with R10000 processor. To compile a Linux
728 kernel that runs on these, say Y here.
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100729
Linus Torvalds1da177e2005-04-16 15:20:36 -0700730config SGI_IP32
Ralf Baechlecfd2afc2007-07-10 17:33:00 +0100731 bool "SGI IP32 (O2)"
Christoph Hellwig03df8222018-06-15 13:08:48 +0200732 select ARCH_HAS_PHYS_TO_DMA
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100733 select FW_ARC
734 select FW_ARC32
Linus Torvalds1da177e2005-04-16 15:20:36 -0700735 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100736 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000737 select CSRC_R4K
Linus Torvalds1da177e2005-04-16 15:20:36 -0700738 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100739 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200740 select IRQ_MIPS_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700741 select R5000_CPU_SCACHE
742 select RM7000_CPU_SCACHE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100743 select SYS_HAS_CPU_R5000
744 select SYS_HAS_CPU_R10000 if BROKEN
745 select SYS_HAS_CPU_RM7000
Ralf Baechledd2f18f2006-01-19 14:55:42 +0000746 select SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700747 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100748 select SYS_SUPPORTS_BIG_ENDIAN
Linus Torvalds1da177e2005-04-16 15:20:36 -0700749 help
750 If you want this kernel to run on SGI O2 workstation, say Y here.
751
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900752config SIBYTE_CRHINE
753 bool "Sibyte BCM91120C-CRhine"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100754 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100755 select SIBYTE_BCM1120
756 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100757 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100758 select SYS_SUPPORTS_BIG_ENDIAN
759 select SYS_SUPPORTS_LITTLE_ENDIAN
760
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900761config SIBYTE_CARMEL
762 bool "Sibyte BCM91120x-Carmel"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100763 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100764 select SIBYTE_BCM1120
765 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100766 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100767 select SYS_SUPPORTS_BIG_ENDIAN
768 select SYS_SUPPORTS_LITTLE_ENDIAN
769
770config SIBYTE_CRHONE
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200771 bool "Sibyte BCM91125C-CRhone"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100772 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100773 select SIBYTE_BCM1125
774 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100775 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100776 select SYS_SUPPORTS_BIG_ENDIAN
777 select SYS_SUPPORTS_HIGHMEM
778 select SYS_SUPPORTS_LITTLE_ENDIAN
779
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900780config SIBYTE_RHONE
781 bool "Sibyte BCM91125E-Rhone"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900782 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900783 select SIBYTE_BCM1125H
784 select SWAP_IO_SPACE
785 select SYS_HAS_CPU_SB1
786 select SYS_SUPPORTS_BIG_ENDIAN
787 select SYS_SUPPORTS_LITTLE_ENDIAN
788
789config SIBYTE_SWARM
790 bool "Sibyte BCM91250A-SWARM"
791 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200792 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900793 select SIBYTE_SB1250
794 select SWAP_IO_SPACE
795 select SYS_HAS_CPU_SB1
796 select SYS_SUPPORTS_BIG_ENDIAN
797 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900798 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000799 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000800 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900801
802config SIBYTE_LITTLESUR
803 bool "Sibyte BCM91250C2-LittleSur"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900804 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200805 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900806 select SIBYTE_SB1250
807 select SWAP_IO_SPACE
808 select SYS_HAS_CPU_SB1
809 select SYS_SUPPORTS_BIG_ENDIAN
810 select SYS_SUPPORTS_HIGHMEM
811 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki756d6d82018-11-13 22:42:37 +0000812 select ZONE_DMA32 if 64BIT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900813
814config SIBYTE_SENTOSA
815 bool "Sibyte BCM91250E-Sentosa"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900816 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900817 select SIBYTE_SB1250
818 select SWAP_IO_SPACE
819 select SYS_HAS_CPU_SB1
820 select SYS_SUPPORTS_BIG_ENDIAN
821 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000822 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900823
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900824config SIBYTE_BIGSUR
825 bool "Sibyte BCM91480B-BigSur"
826 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900827 select NR_CPUS_DEFAULT_4
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900828 select SIBYTE_BCM1x80
829 select SWAP_IO_SPACE
830 select SYS_HAS_CPU_SB1
831 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle651194f2007-11-01 21:55:39 +0000832 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900833 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000834 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000835 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900836
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100837config SNI_RM
838 bool "SNI RM200/300/400"
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100839 select FW_ARC if CPU_LITTLE_ENDIAN
840 select FW_ARC32 if CPU_LITTLE_ENDIAN
Paul Bolleaaa9fad2013-03-25 09:39:54 +0000841 select FW_SNIPROM if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100842 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100843 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100844 select ARCH_MIGHT_HAVE_PC_SERIO
Ralf Baechle5e83d432005-10-29 19:32:41 +0100845 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100846 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000847 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100848 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100849 select DMA_NONCOHERENT
850 select GENERIC_ISA_DMA
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100851 select HAVE_EISA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100852 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100853 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200854 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100855 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100856 select I8259
857 select ISA
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200858 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
Ralf Baechle7cf80532005-10-20 22:33:09 +0100859 select SYS_HAS_CPU_R4X00
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200860 select SYS_HAS_CPU_R5000
Thomas Bogendoerferc066a322006-12-28 18:22:32 +0100861 select SYS_HAS_CPU_R10000
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200862 select R5000_CPU_SCACHE
Ralf Baechle36a88532007-03-01 11:56:43 +0000863 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700864 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800865 select SYS_SUPPORTS_64BIT_KERNEL
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200866 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100867 select SYS_SUPPORTS_HIGHMEM
868 select SYS_SUPPORTS_LITTLE_ENDIAN
Linus Torvalds1da177e2005-04-16 15:20:36 -0700869 help
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100870 The SNI RM200/300/400 are MIPS-based machines manufactured by
871 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
Ralf Baechle5e83d432005-10-29 19:32:41 +0100872 Technology and now in turn merged with Fujitsu. Say Y here to
873 support this machine type.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700874
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900875config MACH_TX39XX
876 bool "Toshiba TX39 series based machines"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100877
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900878config MACH_TX49XX
879 bool "Toshiba TX49 series based machines"
Ralf Baechle23fbee92005-07-25 22:45:45 +0000880
Ralf Baechle73b43902008-07-16 16:12:25 +0100881config MIKROTIK_RB532
882 bool "Mikrotik RB532 boards"
883 select CEVT_R4K
884 select CSRC_R4K
885 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100886 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200887 select IRQ_MIPS_CPU
Ralf Baechle73b43902008-07-16 16:12:25 +0100888 select SYS_HAS_CPU_MIPS32_R1
889 select SYS_SUPPORTS_32BIT_KERNEL
890 select SYS_SUPPORTS_LITTLE_ENDIAN
891 select SWAP_IO_SPACE
892 select BOOT_RAW
Linus Walleijd30a2b42016-04-19 11:23:22 +0200893 select GPIOLIB
Florian Fainelli930beb52014-01-14 09:54:38 -0800894 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle73b43902008-07-16 16:12:25 +0100895 help
896 Support the Mikrotik(tm) RouterBoard 532 series,
897 based on the IDT RC32434 SoC.
898
David Daney9ddebc42013-05-22 15:10:46 +0000899config CAVIUM_OCTEON_SOC
900 bool "Cavium Networks Octeon SoC based boards"
David Daneya86c7f72008-12-11 15:33:38 -0800901 select CEVT_R4K
Christoph Hellwigea8c64a2018-01-10 16:21:13 +0100902 select ARCH_HAS_PHYS_TO_DMA
Christoph Hellwig1753d502018-11-15 20:05:36 +0100903 select HAVE_RAPIDIO
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200904 select PHYS_ADDR_T_64BIT
David Daneya86c7f72008-12-11 15:33:38 -0800905 select SYS_SUPPORTS_64BIT_KERNEL
906 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechlef65aad42012-10-17 00:39:09 +0200907 select EDAC_SUPPORT
Borislav Petkovb01aec92015-05-21 19:59:31 +0200908 select EDAC_ATOMIC_SCRUB
David Daney73569d82015-03-20 19:11:58 +0300909 select SYS_SUPPORTS_LITTLE_ENDIAN
910 select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
David Daneya86c7f72008-12-11 15:33:38 -0800911 select SYS_HAS_EARLY_PRINTK
David Daney5e683382009-02-02 11:30:59 -0800912 select SYS_HAS_CPU_CAVIUM_OCTEON
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100913 select HAVE_PCI
David Daneyf00e0012010-10-01 13:27:30 -0700914 select ZONE_DMA32
David Daney465aaed2011-08-20 08:44:00 -0700915 select HOLES_IN_ZONE
Linus Walleijd30a2b42016-04-19 11:23:22 +0200916 select GPIOLIB
David Daney6e511162014-05-28 23:52:05 +0200917 select LIBFDT
918 select USE_OF
919 select ARCH_SPARSEMEM_ENABLE
920 select SYS_SUPPORTS_SMP
David Daney7820b842017-09-28 12:34:04 -0500921 select NR_CPUS_DEFAULT_64
922 select MIPS_NR_CPU_NR_MAP_1024
Andrew Brestickere3264792014-08-21 13:04:22 -0700923 select BUILTIN_DTB
David Daney8c1e6b12015-03-05 17:31:30 +0300924 select MTD_COMPLEX_MAPPINGS
Christoph Hellwig09230cb2018-04-24 09:00:54 +0200925 select SWIOTLB
Steven J. Hill3ff72be2016-12-13 14:25:37 -0600926 select SYS_SUPPORTS_RELOCATABLE
David Daneya86c7f72008-12-11 15:33:38 -0800927 help
928 This option supports all of the Octeon reference boards from Cavium
929 Networks. It builds a kernel that dynamically determines the Octeon
930 CPU type and supports all known board reference implementations.
931 Some of the supported boards are:
932 EBT3000
933 EBH3000
934 EBH3100
935 Thunder
936 Kodama
937 Hikari
938 Say Y here for most Octeon reference boards.
939
Jayachandran C7f058e82011-05-07 01:36:57 +0530940config NLM_XLR_BOARD
941 bool "Netlogic XLR/XLS based systems"
Jayachandran C7f058e82011-05-07 01:36:57 +0530942 select BOOT_ELF32
943 select NLM_COMMON
Jayachandran C7f058e82011-05-07 01:36:57 +0530944 select SYS_HAS_CPU_XLR
945 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100946 select HAVE_PCI
Jayachandran C7f058e82011-05-07 01:36:57 +0530947 select SWAP_IO_SPACE
948 select SYS_SUPPORTS_32BIT_KERNEL
949 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200950 select PHYS_ADDR_T_64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +0530951 select SYS_SUPPORTS_BIG_ENDIAN
952 select SYS_SUPPORTS_HIGHMEM
Jayachandran C7f058e82011-05-07 01:36:57 +0530953 select NR_CPUS_DEFAULT_32
954 select CEVT_R4K
955 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200956 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +0000957 select ZONE_DMA32 if 64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +0530958 select SYNC_R4K
959 select SYS_HAS_EARLY_PRINTK
Jayachandran C8f0b0432013-06-10 06:33:26 +0000960 select SYS_SUPPORTS_ZBOOT
961 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C7f058e82011-05-07 01:36:57 +0530962 help
963 Support for systems based on Netlogic XLR and XLS processors.
964 Say Y here if you have a XLR or XLS based board.
965
Jayachandran C1c773ea2011-11-16 00:21:28 +0000966config NLM_XLP_BOARD
967 bool "Netlogic XLP based systems"
Jayachandran C1c773ea2011-11-16 00:21:28 +0000968 select BOOT_ELF32
969 select NLM_COMMON
970 select SYS_HAS_CPU_XLP
971 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100972 select HAVE_PCI
Jayachandran C1c773ea2011-11-16 00:21:28 +0000973 select SYS_SUPPORTS_32BIT_KERNEL
974 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200975 select PHYS_ADDR_T_64BIT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200976 select GPIOLIB
Jayachandran C1c773ea2011-11-16 00:21:28 +0000977 select SYS_SUPPORTS_BIG_ENDIAN
978 select SYS_SUPPORTS_LITTLE_ENDIAN
979 select SYS_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +0000980 select NR_CPUS_DEFAULT_32
981 select CEVT_R4K
982 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200983 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +0000984 select ZONE_DMA32 if 64BIT
Jayachandran C1c773ea2011-11-16 00:21:28 +0000985 select SYNC_R4K
986 select SYS_HAS_EARLY_PRINTK
Jayachandran C2f6528e2012-07-13 21:53:22 +0530987 select USE_OF
Jayachandran C8f0b0432013-06-10 06:33:26 +0000988 select SYS_SUPPORTS_ZBOOT
989 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C1c773ea2011-11-16 00:21:28 +0000990 help
991 This board is based on Netlogic XLP Processor.
992 Say Y here if you have a XLP based board.
993
David Daney9bc463b2014-05-28 23:52:15 +0200994config MIPS_PARAVIRT
995 bool "Para-Virtualized guest system"
996 select CEVT_R4K
997 select CSRC_R4K
David Daney9bc463b2014-05-28 23:52:15 +0200998 select SYS_SUPPORTS_64BIT_KERNEL
999 select SYS_SUPPORTS_32BIT_KERNEL
1000 select SYS_SUPPORTS_BIG_ENDIAN
1001 select SYS_SUPPORTS_SMP
1002 select NR_CPUS_DEFAULT_4
1003 select SYS_HAS_EARLY_PRINTK
1004 select SYS_HAS_CPU_MIPS32_R2
1005 select SYS_HAS_CPU_MIPS64_R2
1006 select SYS_HAS_CPU_CAVIUM_OCTEON
Christoph Hellwigeb01d422018-11-15 20:05:32 +01001007 select HAVE_PCI
David Daney9bc463b2014-05-28 23:52:15 +02001008 select SWAP_IO_SPACE
1009 help
1010 This option supports guest running under ????
1011
Linus Torvalds1da177e2005-04-16 15:20:36 -07001012endchoice
1013
Ralf Baechlee8c7c482008-09-16 19:12:16 +02001014source "arch/mips/alchemy/Kconfig"
Sergey Ryazanov3b12308f2014-10-29 03:18:39 +04001015source "arch/mips/ath25/Kconfig"
Gabor Juhosd4a67d92011-01-04 21:28:14 +01001016source "arch/mips/ath79/Kconfig"
Hauke Mehrtensa656ffc2011-07-23 01:20:13 +02001017source "arch/mips/bcm47xx/Kconfig"
Maxime Bizone7300d02009-08-18 13:23:37 +01001018source "arch/mips/bcm63xx/Kconfig"
Kevin Cernekee8945e372014-12-25 09:49:20 -08001019source "arch/mips/bmips/Kconfig"
Paul Burtoneed0eab2016-10-05 18:18:20 +01001020source "arch/mips/generic/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001021source "arch/mips/jazz/Kconfig"
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +00001022source "arch/mips/jz4740/Kconfig"
John Crispin8ec6d932011-03-30 09:27:48 +02001023source "arch/mips/lantiq/Kconfig"
Brian Murphy1f21d2b2007-08-21 22:34:16 +02001024source "arch/mips/lasat/Kconfig"
Joshua Henderson2572f002016-01-13 18:15:39 -07001025source "arch/mips/pic32/Kconfig"
Ezequiel Garciaaf0cfb22015-08-06 12:22:43 +01001026source "arch/mips/pistachio/Kconfig"
Ralf Baechle0f3a05c2012-12-15 11:52:10 +01001027source "arch/mips/pmcs-msp71xx/Kconfig"
John Crispinae2b5bb2013-01-20 22:05:30 +01001028source "arch/mips/ralink/Kconfig"
Ralf Baechle29c48692005-02-07 01:27:14 +00001029source "arch/mips/sgi-ip27/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001030source "arch/mips/sibyte/Kconfig"
Atsushi Nemoto22b1d702008-07-11 00:31:36 +09001031source "arch/mips/txx9/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001032source "arch/mips/vr41xx/Kconfig"
David Daneya86c7f72008-12-11 15:33:38 -08001033source "arch/mips/cavium-octeon/Kconfig"
Huacai Chen30ad29b2015-04-21 10:00:35 +08001034source "arch/mips/loongson32/Kconfig"
1035source "arch/mips/loongson64/Kconfig"
Jayachandran C7f058e82011-05-07 01:36:57 +05301036source "arch/mips/netlogic/Kconfig"
David Daneyae6e7e62014-05-28 23:52:14 +02001037source "arch/mips/paravirt/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001038
Ralf Baechle5e83d432005-10-29 19:32:41 +01001039endmenu
1040
Linus Torvalds1da177e2005-04-16 15:20:36 -07001041config RWSEM_GENERIC_SPINLOCK
1042 bool
1043 default y
1044
1045config RWSEM_XCHGADD_ALGORITHM
1046 bool
1047
Akinobu Mita3c9ee7e2006-03-26 01:39:30 -08001048config GENERIC_HWEIGHT
1049 bool
1050 default y
1051
Linus Torvalds1da177e2005-04-16 15:20:36 -07001052config GENERIC_CALIBRATE_DELAY
1053 bool
1054 default y
1055
Ingo Molnarae1e9132008-11-11 09:05:16 +01001056config SCHED_OMIT_FRAME_POINTER
Atsushi Nemoto1cc89032006-04-04 13:11:45 +09001057 bool
1058 default y
1059
Linus Torvalds1da177e2005-04-16 15:20:36 -07001060#
1061# Select some configuration options automatically based on user selections.
1062#
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001063config FW_ARC
Linus Torvalds1da177e2005-04-16 15:20:36 -07001064 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001065
Ralf Baechle61ed2422005-09-15 08:52:34 +00001066config ARCH_MAY_HAVE_PC_FDC
1067 bool
1068
Marc St-Jean9267a302007-06-14 15:55:31 -06001069config BOOT_RAW
1070 bool
1071
Ralf Baechle217dd112007-11-01 01:57:55 +00001072config CEVT_BCM1480
1073 bool
1074
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +09001075config CEVT_DS1287
1076 bool
1077
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +09001078config CEVT_GT641XX
1079 bool
1080
Ralf Baechle42f77542007-10-18 17:48:11 +01001081config CEVT_R4K
1082 bool
1083
Ralf Baechle217dd112007-11-01 01:57:55 +00001084config CEVT_SB1250
1085 bool
1086
Atsushi Nemoto229f7732007-10-25 01:34:09 +09001087config CEVT_TXX9
1088 bool
1089
Ralf Baechle217dd112007-11-01 01:57:55 +00001090config CSRC_BCM1480
1091 bool
1092
Yoichi Yuasa42474172008-04-24 09:48:40 +09001093config CSRC_IOASIC
1094 bool
1095
Ralf Baechle940f6b42007-11-24 22:33:28 +00001096config CSRC_R4K
1097 bool
1098
Ralf Baechle217dd112007-11-01 01:57:55 +00001099config CSRC_SB1250
1100 bool
1101
Alex Smitha7f4df42015-10-21 09:57:44 +01001102config MIPS_CLOCK_VSYSCALL
1103 def_bool CSRC_R4K || CLKSRC_MIPS_GIC
1104
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001105config GPIO_TXX9
Linus Walleijd30a2b42016-04-19 11:23:22 +02001106 select GPIOLIB
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001107 bool
1108
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001109config FW_CFE
Aurelien Jarnodf78b5c2007-09-05 08:58:26 +02001110 bool
1111
Ralf Baechle40e084a2015-07-29 22:44:53 +02001112config ARCH_SUPPORTS_UPROBES
1113 bool
1114
Felix Fietkau885014b2013-09-27 14:41:44 +02001115config DMA_MAYBE_COHERENT
Christoph Hellwigf3ecc0f2018-08-19 14:53:20 +02001116 select ARCH_HAS_DMA_COHERENCE_H
Felix Fietkau885014b2013-09-27 14:41:44 +02001117 select DMA_NONCOHERENT
1118 bool
1119
Paul Burton20d33062016-10-05 18:18:16 +01001120config DMA_PERDEV_COHERENT
1121 bool
Christoph Hellwig347cb6a2019-01-07 13:36:20 -05001122 select ARCH_HAS_SETUP_DMA_OPS
Christoph Hellwig5748e1b2018-08-16 16:47:53 +03001123 select DMA_NONCOHERENT
Paul Burton20d33062016-10-05 18:18:16 +01001124
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001125config DMA_NONCOHERENT
1126 bool
Christoph Hellwig58b04402018-09-11 08:55:28 +02001127 select ARCH_HAS_DMA_MMAP_PGPROT
Christoph Hellwigf8c55dc2018-06-15 13:08:46 +02001128 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
FUJITA Tomonorie1e02b32010-03-10 15:23:25 -08001129 select NEED_DMA_MAP_STATE
Christoph Hellwig58b04402018-09-11 08:55:28 +02001130 select ARCH_HAS_DMA_COHERENT_TO_PFN
Christoph Hellwigf8c55dc2018-06-15 13:08:46 +02001131 select DMA_NONCOHERENT_CACHE_SYNC
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001132
Ralf Baechle36a88532007-03-01 11:56:43 +00001133config SYS_HAS_EARLY_PRINTK
Linus Torvalds1da177e2005-04-16 15:20:36 -07001134 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001135
Ralf Baechle1b2bc752009-06-23 10:00:31 +01001136config SYS_SUPPORTS_HOTPLUG_CPU
Ralf Baechledbb74542007-08-07 14:52:17 +01001137 bool
Ralf Baechledbb74542007-08-07 14:52:17 +01001138
Linus Torvalds1da177e2005-04-16 15:20:36 -07001139config MIPS_BONITO64
1140 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001141
1142config MIPS_MSC
1143 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001144
Brian Murphy1f21d2b2007-08-21 22:34:16 +02001145config MIPS_NILE4
1146 bool
1147
Ralf Baechle39b8d522008-04-28 17:14:26 +01001148config SYNC_R4K
1149 bool
1150
Gabor Juhos487d70d2010-11-23 16:06:25 +01001151config MIPS_MACHINE
1152 def_bool n
1153
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -07001154config NO_IOPORT_MAP
Maciej W. Rozyckid388d682007-05-29 15:08:07 +01001155 def_bool n
1156
Markos Chandras4e0748f2014-11-13 11:25:27 +00001157config GENERIC_CSUM
1158 bool
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001159 default y if !CPU_HAS_LOAD_STORE_LR
Markos Chandras4e0748f2014-11-13 11:25:27 +00001160
Ralf Baechle8313da32007-08-24 16:48:30 +01001161config GENERIC_ISA_DMA
1162 bool
1163 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
Namhyung Kima35bee82010-10-18 12:55:21 +09001164 select ISA_DMA_API
Ralf Baechle8313da32007-08-24 16:48:30 +01001165
Ralf Baechleaa414df2006-11-30 01:14:51 +00001166config GENERIC_ISA_DMA_SUPPORT_BROKEN
1167 bool
Ralf Baechle8313da32007-08-24 16:48:30 +01001168 select GENERIC_ISA_DMA
Ralf Baechleaa414df2006-11-30 01:14:51 +00001169
Namhyung Kima35bee82010-10-18 12:55:21 +09001170config ISA_DMA_API
1171 bool
1172
David Daney465aaed2011-08-20 08:44:00 -07001173config HOLES_IN_ZONE
1174 bool
1175
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001176config SYS_SUPPORTS_RELOCATABLE
1177 bool
1178 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01001179 Selected if the platform supports relocating the kernel.
1180 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
1181 to allow access to command line and entropy sources.
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001182
David Daneyf381bf62017-06-13 15:28:46 -07001183config MIPS_CBPF_JIT
1184 def_bool y
1185 depends on BPF_JIT && HAVE_CBPF_JIT
1186
1187config MIPS_EBPF_JIT
1188 def_bool y
1189 depends on BPF_JIT && HAVE_EBPF_JIT
1190
1191
Ralf Baechle5e83d432005-10-29 19:32:41 +01001192#
Masanari Iida6b2aac42012-04-14 00:14:11 +09001193# Endianness selection. Sufficiently obscure so many users don't know what to
Ralf Baechle5e83d432005-10-29 19:32:41 +01001194# answer,so we try hard to limit the available choices. Also the use of a
1195# choice statement should be more obvious to the user.
1196#
1197choice
Masanari Iida6b2aac42012-04-14 00:14:11 +09001198 prompt "Endianness selection"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001199 help
1200 Some MIPS machines can be configured for either little or big endian
Ralf Baechle5e83d432005-10-29 19:32:41 +01001201 byte order. These modes require different kernels and a different
Matt LaPlante3cb2fcc2006-11-30 05:22:59 +01001202 Linux distribution. In general there is one preferred byteorder for a
Ralf Baechle5e83d432005-10-29 19:32:41 +01001203 particular system but some systems are just as commonly used in the
David Sterba3dde6ad2007-05-09 07:12:20 +02001204 one or the other endianness.
Ralf Baechle5e83d432005-10-29 19:32:41 +01001205
1206config CPU_BIG_ENDIAN
1207 bool "Big endian"
1208 depends on SYS_SUPPORTS_BIG_ENDIAN
1209
1210config CPU_LITTLE_ENDIAN
1211 bool "Little endian"
1212 depends on SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +01001213
1214endchoice
1215
David Daney22b07632010-07-23 18:41:43 -07001216config EXPORT_UASM
1217 bool
1218
Ralf Baechle21162452007-02-09 17:08:58 +00001219config SYS_SUPPORTS_APM_EMULATION
1220 bool
1221
Ralf Baechle5e83d432005-10-29 19:32:41 +01001222config SYS_SUPPORTS_BIG_ENDIAN
1223 bool
1224
1225config SYS_SUPPORTS_LITTLE_ENDIAN
1226 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001227
David Daney9cffd1542009-05-27 17:47:46 -07001228config SYS_SUPPORTS_HUGETLBFS
1229 bool
1230 depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
1231 default y
1232
David Daneyaa1762f2012-10-17 00:48:10 +02001233config MIPS_HUGE_TLB_SUPPORT
1234 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1235
Linus Torvalds1da177e2005-04-16 15:20:36 -07001236config IRQ_CPU_RM7K
1237 bool
1238
Marc St-Jean9267a302007-06-14 15:55:31 -06001239config IRQ_MSP_SLP
1240 bool
1241
1242config IRQ_MSP_CIC
1243 bool
1244
Atsushi Nemoto8420fd02007-08-02 23:35:53 +09001245config IRQ_TXX9
1246 bool
1247
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +09001248config IRQ_GT641XX
1249 bool
1250
Yoichi Yuasa252161e2007-03-14 21:51:26 +09001251config PCI_GT64XXX_PCI0
Linus Torvalds1da177e2005-04-16 15:20:36 -07001252 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001253
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +02001254config PCI_XTALK_BRIDGE
1255 bool
1256
Marc St-Jean9267a302007-06-14 15:55:31 -06001257config NO_EXCEPT_FILL
1258 bool
1259
Ralf Baechlea83860c2009-03-13 21:17:57 +01001260config SOC_EMMA2RH
1261 bool
1262 select CEVT_R4K
1263 select CSRC_R4K
1264 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001265 select IRQ_MIPS_CPU
Ralf Baechlea83860c2009-03-13 21:17:57 +01001266 select SWAP_IO_SPACE
1267 select SYS_HAS_CPU_R5500
1268 select SYS_SUPPORTS_32BIT_KERNEL
1269 select SYS_SUPPORTS_64BIT_KERNEL
1270 select SYS_SUPPORTS_BIG_ENDIAN
1271
Daniel Lairdedb63102008-06-16 15:49:21 +01001272config SOC_PNX833X
1273 bool
1274 select CEVT_R4K
1275 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001276 select IRQ_MIPS_CPU
Daniel Lairdedb63102008-06-16 15:49:21 +01001277 select DMA_NONCOHERENT
1278 select SYS_HAS_CPU_MIPS32_R2
1279 select SYS_SUPPORTS_32BIT_KERNEL
1280 select SYS_SUPPORTS_LITTLE_ENDIAN
1281 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +02001282 select SYS_SUPPORTS_MIPS16
Daniel Lairdedb63102008-06-16 15:49:21 +01001283 select CPU_MIPSR2_IRQ_VI
1284
1285config SOC_PNX8335
1286 bool
1287 select SOC_PNX833X
1288
Markos Chandrasa7e07b12014-11-13 13:32:03 +00001289config MIPS_SPRAM
1290 bool
1291
Linus Torvalds1da177e2005-04-16 15:20:36 -07001292config SWAP_IO_SPACE
1293 bool
1294
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001295config SGI_HAS_INDYDOG
1296 bool
1297
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +02001298config SGI_HAS_HAL2
1299 bool
1300
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001301config SGI_HAS_SEEQ
1302 bool
1303
1304config SGI_HAS_WD93
1305 bool
1306
1307config SGI_HAS_ZILOG
1308 bool
1309
1310config SGI_HAS_I8042
1311 bool
1312
1313config DEFAULT_SGI_PARTITION
1314 bool
1315
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001316config FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +01001317 bool
1318
Paul Bolleaaa9fad2013-03-25 09:39:54 +00001319config FW_SNIPROM
Thomas Bogendoerfer231a35d2008-01-04 23:31:07 +01001320 bool
1321
Linus Torvalds1da177e2005-04-16 15:20:36 -07001322config BOOT_ELF32
1323 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001324
Florian Fainelli930beb52014-01-14 09:54:38 -08001325config MIPS_L1_CACHE_SHIFT_4
1326 bool
1327
1328config MIPS_L1_CACHE_SHIFT_5
1329 bool
1330
1331config MIPS_L1_CACHE_SHIFT_6
1332 bool
1333
1334config MIPS_L1_CACHE_SHIFT_7
1335 bool
1336
Linus Torvalds1da177e2005-04-16 15:20:36 -07001337config MIPS_L1_CACHE_SHIFT
1338 int
Florian Fainellia4c02012014-01-14 09:54:39 -08001339 default "7" if MIPS_L1_CACHE_SHIFT_7
Kevin Cernekee5432eeb2014-12-25 09:49:09 -08001340 default "6" if MIPS_L1_CACHE_SHIFT_6
1341 default "5" if MIPS_L1_CACHE_SHIFT_5
1342 default "4" if MIPS_L1_CACHE_SHIFT_4
Linus Torvalds1da177e2005-04-16 15:20:36 -07001343 default "5"
1344
Linus Torvalds1da177e2005-04-16 15:20:36 -07001345config HAVE_STD_PC_SERIAL_PORT
1346 bool
1347
Linus Torvalds1da177e2005-04-16 15:20:36 -07001348config ARC_CONSOLE
1349 bool "ARC console support"
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001350 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001351
1352config ARC_MEMORY
1353 bool
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +01001354 depends on MACH_JAZZ || SNI_RM || SGI_IP32
Linus Torvalds1da177e2005-04-16 15:20:36 -07001355 default y
1356
1357config ARC_PROMLIB
1358 bool
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001359 depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
Linus Torvalds1da177e2005-04-16 15:20:36 -07001360 default y
1361
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001362config FW_ARC64
Linus Torvalds1da177e2005-04-16 15:20:36 -07001363 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001364
1365config BOOT_ELF64
1366 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001367
Linus Torvalds1da177e2005-04-16 15:20:36 -07001368menu "CPU selection"
1369
1370choice
1371 prompt "CPU type"
1372 default CPU_R4X00
1373
Huacai Chen0e476d92014-03-21 18:44:07 +08001374config CPU_LOONGSON3
1375 bool "Loongson 3 CPU"
1376 depends on SYS_HAS_CPU_LOONGSON3
Christoph Hellwigd3bc81b2018-06-15 13:08:41 +02001377 select ARCH_HAS_PHYS_TO_DMA
Huacai Chen0e476d92014-03-21 18:44:07 +08001378 select CPU_SUPPORTS_64BIT_KERNEL
1379 select CPU_SUPPORTS_HIGHMEM
1380 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001381 select CPU_HAS_LOAD_STORE_LR
Huacai Chen0e476d92014-03-21 18:44:07 +08001382 select WEAK_ORDERING
1383 select WEAK_REORDERING_BEYOND_LLSC
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001384 select MIPS_PGD_C0_CONTEXT
Huacai Chen17c99d92017-03-16 21:00:28 +08001385 select MIPS_L1_CACHE_SHIFT_6
Linus Walleijd30a2b42016-04-19 11:23:22 +02001386 select GPIOLIB
Christoph Hellwig09230cb2018-04-24 09:00:54 +02001387 select SWIOTLB
Huacai Chen0e476d92014-03-21 18:44:07 +08001388 help
1389 The Loongson 3 processor implements the MIPS64R2 instruction
1390 set with many extensions.
1391
Huacai Chen1e820da32016-03-03 09:45:13 +08001392config LOONGSON3_ENHANCEMENT
1393 bool "New Loongson 3 CPU Enhancements"
1394 default n
1395 select CPU_MIPSR2
1396 select CPU_HAS_PREFETCH
1397 depends on CPU_LOONGSON3
1398 help
1399 New Loongson 3 CPU (since Loongson-3A R2, as opposed to Loongson-3A
1400 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
1401 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPv2 ASE, User
1402 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
1403 Fast TLB refill support, etc.
1404
1405 This option enable those enhancements which are not probed at run
1406 time. If you want a generic kernel to run on all Loongson 3 machines,
1407 please say 'N' here. If you want a high-performance kernel to run on
1408 new Loongson 3 machines only, please say 'Y' here.
1409
Huacai Chene02e07e2019-01-15 16:04:54 +08001410config CPU_LOONGSON3_WORKAROUNDS
1411 bool "Old Loongson 3 LLSC Workarounds"
1412 default y if SMP
1413 depends on CPU_LOONGSON3
1414 help
1415 Loongson 3 processors have the llsc issues which require workarounds.
1416 Without workarounds the system may hang unexpectedly.
1417
1418 Newer Loongson 3 will fix these issues and no workarounds are needed.
1419 The workarounds have no significant side effect on them but may
1420 decrease the performance of the system so this option should be
1421 disabled unless the kernel is intended to be run on old systems.
1422
1423 If unsure, please say Y.
1424
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001425config CPU_LOONGSON2E
1426 bool "Loongson 2E"
1427 depends on SYS_HAS_CPU_LOONGSON2E
1428 select CPU_LOONGSON2
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001429 help
1430 The Loongson 2E processor implements the MIPS III instruction set
1431 with many extensions.
1432
Lucas De Marchi25985ed2011-03-30 22:57:33 -03001433 It has an internal FPGA northbridge, which is compatible to
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001434 bonito64.
1435
1436config CPU_LOONGSON2F
1437 bool "Loongson 2F"
1438 depends on SYS_HAS_CPU_LOONGSON2F
1439 select CPU_LOONGSON2
Linus Walleijd30a2b42016-04-19 11:23:22 +02001440 select GPIOLIB
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001441 help
1442 The Loongson 2F processor implements the MIPS III instruction set
1443 with many extensions.
1444
1445 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1446 have a similar programming interface with FPGA northbridge used in
1447 Loongson2E.
1448
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001449config CPU_LOONGSON1B
1450 bool "Loongson 1B"
1451 depends on SYS_HAS_CPU_LOONGSON1B
1452 select CPU_LOONGSON1
Kelvin Cheung9ec88b62016-04-06 20:34:54 +08001453 select LEDS_GPIO_REGISTER
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001454 help
1455 The Loongson 1B is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001456 Release 1 instruction set and part of the MIPS32 Release 2
1457 instruction set.
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001458
Yang Ling12e32802016-05-19 12:29:30 +08001459config CPU_LOONGSON1C
1460 bool "Loongson 1C"
1461 depends on SYS_HAS_CPU_LOONGSON1C
1462 select CPU_LOONGSON1
Yang Ling12e32802016-05-19 12:29:30 +08001463 select LEDS_GPIO_REGISTER
1464 help
1465 The Loongson 1C is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001466 Release 1 instruction set and part of the MIPS32 Release 2
1467 instruction set.
Yang Ling12e32802016-05-19 12:29:30 +08001468
Ralf Baechle6e760c82005-07-06 12:08:11 +00001469config CPU_MIPS32_R1
1470 bool "MIPS32 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001471 depends on SYS_HAS_CPU_MIPS32_R1
Ralf Baechle6e760c82005-07-06 12:08:11 +00001472 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001473 select CPU_HAS_LOAD_STORE_LR
Ralf Baechle797798c2005-08-10 15:17:11 +00001474 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001475 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle6e760c82005-07-06 12:08:11 +00001476 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001477 Choose this option to build a kernel for release 1 or later of the
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001478 MIPS32 architecture. Most modern embedded systems with a 32-bit
1479 MIPS processor are based on a MIPS32 processor. If you know the
1480 specific type of processor in your system, choose those that one
1481 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1482 Release 2 of the MIPS32 architecture is available since several
1483 years so chances are you even have a MIPS32 Release 2 processor
1484 in which case you should choose CPU_MIPS32_R2 instead for better
1485 performance.
1486
1487config CPU_MIPS32_R2
1488 bool "MIPS32 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001489 depends on SYS_HAS_CPU_MIPS32_R2
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001490 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001491 select CPU_HAS_LOAD_STORE_LR
Ralf Baechle797798c2005-08-10 15:17:11 +00001492 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001493 select CPU_SUPPORTS_HIGHMEM
Paul Burtona5e9a692014-01-27 15:23:10 +00001494 select CPU_SUPPORTS_MSA
Sanjay Lal2235a542012-11-21 18:33:59 -08001495 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001496 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001497 Choose this option to build a kernel for release 2 or later of the
Ralf Baechle6e760c82005-07-06 12:08:11 +00001498 MIPS32 architecture. Most modern embedded systems with a 32-bit
1499 MIPS processor are based on a MIPS32 processor. If you know the
1500 specific type of processor in your system, choose those that one
1501 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001502
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001503config CPU_MIPS32_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001504 bool "MIPS32 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001505 depends on SYS_HAS_CPU_MIPS32_R6
1506 select CPU_HAS_PREFETCH
1507 select CPU_SUPPORTS_32BIT_KERNEL
1508 select CPU_SUPPORTS_HIGHMEM
1509 select CPU_SUPPORTS_MSA
1510 select HAVE_KVM
1511 select MIPS_O32_FP64_SUPPORT
1512 help
1513 Choose this option to build a kernel for release 6 or later of the
1514 MIPS32 architecture. New MIPS processors, starting with the Warrior
1515 family, are based on a MIPS32r6 processor. If you own an older
1516 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1517
Ralf Baechle6e760c82005-07-06 12:08:11 +00001518config CPU_MIPS64_R1
1519 bool "MIPS64 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001520 depends on SYS_HAS_CPU_MIPS64_R1
Ralf Baechle797798c2005-08-10 15:17:11 +00001521 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001522 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001523 select CPU_SUPPORTS_32BIT_KERNEL
1524 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001525 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001526 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle6e760c82005-07-06 12:08:11 +00001527 help
1528 Choose this option to build a kernel for release 1 or later of the
1529 MIPS64 architecture. Many modern embedded systems with a 64-bit
1530 MIPS processor are based on a MIPS64 processor. If you know the
1531 specific type of processor in your system, choose those that one
1532 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001533 Release 2 of the MIPS64 architecture is available since several
1534 years so chances are you even have a MIPS64 Release 2 processor
1535 in which case you should choose CPU_MIPS64_R2 instead for better
1536 performance.
1537
1538config CPU_MIPS64_R2
1539 bool "MIPS64 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001540 depends on SYS_HAS_CPU_MIPS64_R2
Ralf Baechle797798c2005-08-10 15:17:11 +00001541 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001542 select CPU_HAS_LOAD_STORE_LR
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001543 select CPU_SUPPORTS_32BIT_KERNEL
1544 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001545 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001546 select CPU_SUPPORTS_HUGEPAGES
Paul Burtona5e9a692014-01-27 15:23:10 +00001547 select CPU_SUPPORTS_MSA
James Hogan40a2df42016-07-08 11:53:31 +01001548 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001549 help
1550 Choose this option to build a kernel for release 2 or later of the
1551 MIPS64 architecture. Many modern embedded systems with a 64-bit
1552 MIPS processor are based on a MIPS64 processor. If you know the
1553 specific type of processor in your system, choose those that one
1554 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001555
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001556config CPU_MIPS64_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001557 bool "MIPS64 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001558 depends on SYS_HAS_CPU_MIPS64_R6
1559 select CPU_HAS_PREFETCH
1560 select CPU_SUPPORTS_32BIT_KERNEL
1561 select CPU_SUPPORTS_64BIT_KERNEL
1562 select CPU_SUPPORTS_HIGHMEM
Paul Burtonafd375d2019-02-02 02:21:53 +00001563 select CPU_SUPPORTS_HUGEPAGES
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001564 select CPU_SUPPORTS_MSA
James Hogan2e6c7742017-02-16 12:39:01 +00001565 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
James Hogan40a2df42016-07-08 11:53:31 +01001566 select HAVE_KVM
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001567 help
1568 Choose this option to build a kernel for release 6 or later of the
1569 MIPS64 architecture. New MIPS processors, starting with the Warrior
1570 family, are based on a MIPS64r6 processor. If you own an older
1571 processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1572
Linus Torvalds1da177e2005-04-16 15:20:36 -07001573config CPU_R3000
1574 bool "R3000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001575 depends on SYS_HAS_CPU_R3000
Ralf Baechlef7062dd2006-04-24 14:58:53 +01001576 select CPU_HAS_WB
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001577 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001578 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001579 select CPU_SUPPORTS_HIGHMEM
Linus Torvalds1da177e2005-04-16 15:20:36 -07001580 help
1581 Please make sure to pick the right CPU type. Linux/MIPS is not
1582 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1583 *not* work on R4000 machines and vice versa. However, since most
1584 of the supported machines have an R4000 (or similar) CPU, R4x00
1585 might be a safe bet. If the resulting kernel does not work,
1586 try to recompile with R3000.
1587
1588config CPU_TX39XX
1589 bool "R39XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001590 depends on SYS_HAS_CPU_TX39XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001591 select CPU_SUPPORTS_32BIT_KERNEL
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001592 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001593
1594config CPU_VR41XX
1595 bool "R41xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001596 depends on SYS_HAS_CPU_VR41XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001597 select CPU_SUPPORTS_32BIT_KERNEL
1598 select CPU_SUPPORTS_64BIT_KERNEL
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001599 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001600 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001601 The options selects support for the NEC VR4100 series of processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001602 Only choose this option if you have one of these processors as a
1603 kernel built with this option will not run on any other type of
1604 processor or vice versa.
1605
1606config CPU_R4300
1607 bool "R4300"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001608 depends on SYS_HAS_CPU_R4300
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001609 select CPU_SUPPORTS_32BIT_KERNEL
1610 select CPU_SUPPORTS_64BIT_KERNEL
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001611 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001612 help
1613 MIPS Technologies R4300-series processors.
1614
1615config CPU_R4X00
1616 bool "R4x00"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001617 depends on SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001618 select CPU_SUPPORTS_32BIT_KERNEL
1619 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001620 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001621 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001622 help
1623 MIPS Technologies R4000-series processors other than 4300, including
1624 the R4000, R4400, R4600, and 4700.
1625
1626config CPU_TX49XX
1627 bool "R49XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001628 depends on SYS_HAS_CPU_TX49XX
Atsushi Nemotode862b42006-03-17 12:59:22 +09001629 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001630 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001631 select CPU_SUPPORTS_32BIT_KERNEL
1632 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001633 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001634
1635config CPU_R5000
1636 bool "R5000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001637 depends on SYS_HAS_CPU_R5000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001638 select CPU_SUPPORTS_32BIT_KERNEL
1639 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001640 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001641 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001642 help
1643 MIPS Technologies R5000-series processors other than the Nevada.
1644
1645config CPU_R5432
1646 bool "R5432"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001647 depends on SYS_HAS_CPU_R5432
Ralf Baechle5e83d432005-10-29 19:32:41 +01001648 select CPU_SUPPORTS_32BIT_KERNEL
1649 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001650 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001651 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001652
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001653config CPU_R5500
1654 bool "R5500"
1655 depends on SYS_HAS_CPU_R5500
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001656 select CPU_SUPPORTS_32BIT_KERNEL
1657 select CPU_SUPPORTS_64BIT_KERNEL
David Daney9cffd1542009-05-27 17:47:46 -07001658 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001659 select CPU_HAS_LOAD_STORE_LR
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001660 help
1661 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1662 instruction set.
1663
Linus Torvalds1da177e2005-04-16 15:20:36 -07001664config CPU_NEVADA
1665 bool "RM52xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001666 depends on SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001667 select CPU_SUPPORTS_32BIT_KERNEL
1668 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001669 select CPU_SUPPORTS_HUGEPAGES
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001670 select CPU_HAS_LOAD_STORE_LR
Linus Torvalds1da177e2005-04-16 15:20:36 -07001671 help
1672 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1673
1674config CPU_R8000
1675 bool "R8000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001676 depends on SYS_HAS_CPU_R8000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001677 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001678 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001679 select CPU_SUPPORTS_64BIT_KERNEL
Linus Torvalds1da177e2005-04-16 15:20:36 -07001680 help
1681 MIPS Technologies R8000 processors. Note these processors are
1682 uncommon and the support for them is incomplete.
1683
1684config CPU_R10000
1685 bool "R10000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001686 depends on SYS_HAS_CPU_R10000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001687 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001688 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001689 select CPU_SUPPORTS_32BIT_KERNEL
1690 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001691 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001692 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001693 help
1694 MIPS Technologies R10000-series processors.
1695
1696config CPU_RM7000
1697 bool "RM7000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001698 depends on SYS_HAS_CPU_RM7000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001699 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001700 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001701 select CPU_SUPPORTS_32BIT_KERNEL
1702 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001703 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001704 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001705
1706config CPU_SB1
1707 bool "SB1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001708 depends on SYS_HAS_CPU_SB1
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001709 select CPU_HAS_LOAD_STORE_LR
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001710 select CPU_SUPPORTS_32BIT_KERNEL
1711 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001712 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001713 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle0004a9d2006-10-31 03:45:07 +00001714 select WEAK_ORDERING
Linus Torvalds1da177e2005-04-16 15:20:36 -07001715
David Daneya86c7f72008-12-11 15:33:38 -08001716config CPU_CAVIUM_OCTEON
1717 bool "Cavium Octeon processor"
David Daney5e683382009-02-02 11:30:59 -08001718 depends on SYS_HAS_CPU_CAVIUM_OCTEON
David Daneya86c7f72008-12-11 15:33:38 -08001719 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001720 select CPU_HAS_LOAD_STORE_LR
David Daneya86c7f72008-12-11 15:33:38 -08001721 select CPU_SUPPORTS_64BIT_KERNEL
David Daneya86c7f72008-12-11 15:33:38 -08001722 select WEAK_ORDERING
David Daneya86c7f72008-12-11 15:33:38 -08001723 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001724 select CPU_SUPPORTS_HUGEPAGES
Ben Hutchingsdf115f32015-05-25 20:27:29 +01001725 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1726 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Florian Fainelli930beb52014-01-14 09:54:38 -08001727 select MIPS_L1_CACHE_SHIFT_7
James Hogan0ae3abc2017-03-14 10:25:51 +00001728 select HAVE_KVM
David Daneya86c7f72008-12-11 15:33:38 -08001729 help
1730 The Cavium Octeon processor is a highly integrated chip containing
1731 many ethernet hardware widgets for networking tasks. The processor
1732 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1733 Full details can be found at http://www.caviumnetworks.com.
1734
Jonas Gorskicd746242013-12-18 14:12:02 +01001735config CPU_BMIPS
1736 bool "Broadcom BMIPS"
1737 depends on SYS_HAS_CPU_BMIPS
1738 select CPU_MIPS32
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001739 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
Jonas Gorskicd746242013-12-18 14:12:02 +01001740 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1741 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1742 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1743 select CPU_SUPPORTS_32BIT_KERNEL
1744 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001745 select IRQ_MIPS_CPU
Jonas Gorskicd746242013-12-18 14:12:02 +01001746 select SWAP_IO_SPACE
1747 select WEAK_ORDERING
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001748 select CPU_SUPPORTS_HIGHMEM
Jonas Gorski69aaf9c2013-12-18 14:12:04 +01001749 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001750 select CPU_HAS_LOAD_STORE_LR
Markus Mayera8d709b2017-02-07 13:58:54 -08001751 select CPU_SUPPORTS_CPUFREQ
1752 select MIPS_EXTERNAL_TIMER
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001753 help
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001754 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001755
Jayachandran C7f058e82011-05-07 01:36:57 +05301756config CPU_XLR
1757 bool "Netlogic XLR SoC"
1758 depends on SYS_HAS_CPU_XLR
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001759 select CPU_HAS_LOAD_STORE_LR
Jayachandran C7f058e82011-05-07 01:36:57 +05301760 select CPU_SUPPORTS_32BIT_KERNEL
1761 select CPU_SUPPORTS_64BIT_KERNEL
1762 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001763 select CPU_SUPPORTS_HUGEPAGES
Jayachandran C7f058e82011-05-07 01:36:57 +05301764 select WEAK_ORDERING
1765 select WEAK_REORDERING_BEYOND_LLSC
Jayachandran C7f058e82011-05-07 01:36:57 +05301766 help
1767 Netlogic Microsystems XLR/XLS processors.
Jayachandran C1c773ea2011-11-16 00:21:28 +00001768
1769config CPU_XLP
1770 bool "Netlogic XLP SoC"
1771 depends on SYS_HAS_CPU_XLP
1772 select CPU_SUPPORTS_32BIT_KERNEL
1773 select CPU_SUPPORTS_64BIT_KERNEL
1774 select CPU_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +00001775 select WEAK_ORDERING
1776 select WEAK_REORDERING_BEYOND_LLSC
1777 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001778 select CPU_HAS_LOAD_STORE_LR
Jayachandran Cd6504842012-10-31 12:01:29 +00001779 select CPU_MIPSR2
Prem Mallappaddba6832015-01-07 16:58:32 +05301780 select CPU_SUPPORTS_HUGEPAGES
Paul Burton2db003a2016-05-06 14:36:24 +01001781 select MIPS_ASID_BITS_VARIABLE
Jayachandran C1c773ea2011-11-16 00:21:28 +00001782 help
1783 Netlogic Microsystems XLP processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001784endchoice
1785
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001786config CPU_MIPS32_3_5_FEATURES
1787 bool "MIPS32 Release 3.5 Features"
1788 depends on SYS_HAS_CPU_MIPS32_R3_5
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001789 depends on CPU_MIPS32_R2 || CPU_MIPS32_R6
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001790 help
1791 Choose this option to build a kernel for release 2 or later of the
1792 MIPS32 architecture including features from the 3.5 release such as
1793 support for Enhanced Virtual Addressing (EVA).
1794
1795config CPU_MIPS32_3_5_EVA
1796 bool "Enhanced Virtual Addressing (EVA)"
1797 depends on CPU_MIPS32_3_5_FEATURES
1798 select EVA
1799 default y
1800 help
1801 Choose this option if you want to enable the Enhanced Virtual
1802 Addressing (EVA) on your MIPS32 core (such as proAptiv).
1803 One of its primary benefits is an increase in the maximum size
1804 of lowmem (up to 3GB). If unsure, say 'N' here.
1805
Steven J. Hillc5b36782015-02-26 18:16:38 -06001806config CPU_MIPS32_R5_FEATURES
1807 bool "MIPS32 Release 5 Features"
1808 depends on SYS_HAS_CPU_MIPS32_R5
1809 depends on CPU_MIPS32_R2
1810 help
1811 Choose this option to build a kernel for release 2 or later of the
1812 MIPS32 architecture including features from release 5 such as
1813 support for Extended Physical Addressing (XPA).
1814
1815config CPU_MIPS32_R5_XPA
1816 bool "Extended Physical Addressing (XPA)"
1817 depends on CPU_MIPS32_R5_FEATURES
1818 depends on !EVA
1819 depends on !PAGE_SIZE_4KB
1820 depends on SYS_SUPPORTS_HIGHMEM
1821 select XPA
1822 select HIGHMEM
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001823 select PHYS_ADDR_T_64BIT
Steven J. Hillc5b36782015-02-26 18:16:38 -06001824 default n
1825 help
1826 Choose this option if you want to enable the Extended Physical
1827 Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1828 benefit is to increase physical addressing equal to or greater
1829 than 40 bits. Note that this has the side effect of turning on
1830 64-bit addressing which in turn makes the PTEs 64-bit in size.
1831 If unsure, say 'N' here.
1832
Wu Zhangjin622844b2010-04-10 20:04:42 +08001833if CPU_LOONGSON2F
1834config CPU_NOP_WORKAROUNDS
1835 bool
1836
1837config CPU_JUMP_WORKAROUNDS
1838 bool
1839
1840config CPU_LOONGSON2F_WORKAROUNDS
1841 bool "Loongson 2F Workarounds"
1842 default y
1843 select CPU_NOP_WORKAROUNDS
1844 select CPU_JUMP_WORKAROUNDS
1845 help
1846 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1847 require workarounds. Without workarounds the system may hang
1848 unexpectedly. For more information please refer to the gas
1849 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1850
1851 Loongson 2F03 and later have fixed these issues and no workarounds
1852 are needed. The workarounds have no significant side effect on them
1853 but may decrease the performance of the system so this option should
1854 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1855 systems.
1856
1857 If unsure, please say Y.
1858endif # CPU_LOONGSON2F
1859
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001860config SYS_SUPPORTS_ZBOOT
1861 bool
1862 select HAVE_KERNEL_GZIP
1863 select HAVE_KERNEL_BZIP2
Florian Fainelli31c48672013-09-16 16:55:20 +01001864 select HAVE_KERNEL_LZ4
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001865 select HAVE_KERNEL_LZMA
Wu Zhangjinfe1d45e2010-01-15 20:34:46 +08001866 select HAVE_KERNEL_LZO
Florian Fainelli4e23eb62013-09-11 11:51:41 +01001867 select HAVE_KERNEL_XZ
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001868
1869config SYS_SUPPORTS_ZBOOT_UART16550
1870 bool
1871 select SYS_SUPPORTS_ZBOOT
1872
Alban Bedeldbb98312015-12-10 10:57:21 +01001873config SYS_SUPPORTS_ZBOOT_UART_PROM
1874 bool
1875 select SYS_SUPPORTS_ZBOOT
1876
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001877config CPU_LOONGSON2
1878 bool
1879 select CPU_SUPPORTS_32BIT_KERNEL
1880 select CPU_SUPPORTS_64BIT_KERNEL
1881 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001882 select CPU_SUPPORTS_HUGEPAGES
Christoph Hellwige9050862018-06-20 09:11:15 +02001883 select ARCH_HAS_PHYS_TO_DMA
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001884 select CPU_HAS_LOAD_STORE_LR
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001885
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001886config CPU_LOONGSON1
1887 bool
1888 select CPU_MIPS32
Jiaxun Yang7e280f62019-01-22 21:04:12 +08001889 select CPU_MIPSR2
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001890 select CPU_HAS_PREFETCH
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03001891 select CPU_HAS_LOAD_STORE_LR
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001892 select CPU_SUPPORTS_32BIT_KERNEL
1893 select CPU_SUPPORTS_HIGHMEM
Kelvin Cheungf29ad102014-10-10 11:40:01 +08001894 select CPU_SUPPORTS_CPUFREQ
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001895
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001896config CPU_BMIPS32_3300
Jonas Gorski04fa8bf2013-12-18 14:12:06 +01001897 select SMP_UP if SMP
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001898 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001899
1900config CPU_BMIPS4350
1901 bool
1902 select SYS_SUPPORTS_SMP
1903 select SYS_SUPPORTS_HOTPLUG_CPU
1904
1905config CPU_BMIPS4380
1906 bool
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001907 select MIPS_L1_CACHE_SHIFT_6
Jonas Gorskicd746242013-12-18 14:12:02 +01001908 select SYS_SUPPORTS_SMP
1909 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001910 select CPU_HAS_RIXI
Jonas Gorskicd746242013-12-18 14:12:02 +01001911
1912config CPU_BMIPS5000
1913 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001914 select MIPS_CPU_SCACHE
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001915 select MIPS_L1_CACHE_SHIFT_7
Jonas Gorskicd746242013-12-18 14:12:02 +01001916 select SYS_SUPPORTS_SMP
1917 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001918 select CPU_HAS_RIXI
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001919
Huacai Chen0e476d92014-03-21 18:44:07 +08001920config SYS_HAS_CPU_LOONGSON3
1921 bool
1922 select CPU_SUPPORTS_CPUFREQ
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001923 select CPU_HAS_RIXI
Huacai Chen0e476d92014-03-21 18:44:07 +08001924
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001925config SYS_HAS_CPU_LOONGSON2E
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001926 bool
1927
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001928config SYS_HAS_CPU_LOONGSON2F
1929 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08001930 select CPU_SUPPORTS_CPUFREQ
1931 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
Wu Zhangjin22f1fdf2009-11-11 13:59:23 +08001932 select CPU_SUPPORTS_UNCACHED_ACCELERATED
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001933
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001934config SYS_HAS_CPU_LOONGSON1B
1935 bool
1936
Yang Ling12e32802016-05-19 12:29:30 +08001937config SYS_HAS_CPU_LOONGSON1C
1938 bool
1939
Ralf Baechle7cf80532005-10-20 22:33:09 +01001940config SYS_HAS_CPU_MIPS32_R1
1941 bool
1942
1943config SYS_HAS_CPU_MIPS32_R2
1944 bool
1945
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001946config SYS_HAS_CPU_MIPS32_R3_5
1947 bool
1948
Steven J. Hillc5b36782015-02-26 18:16:38 -06001949config SYS_HAS_CPU_MIPS32_R5
1950 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08001951 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Steven J. Hillc5b36782015-02-26 18:16:38 -06001952
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001953config SYS_HAS_CPU_MIPS32_R6
1954 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08001955 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001956
Ralf Baechle7cf80532005-10-20 22:33:09 +01001957config SYS_HAS_CPU_MIPS64_R1
1958 bool
1959
1960config SYS_HAS_CPU_MIPS64_R2
1961 bool
1962
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001963config SYS_HAS_CPU_MIPS64_R6
1964 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08001965 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001966
Ralf Baechle7cf80532005-10-20 22:33:09 +01001967config SYS_HAS_CPU_R3000
1968 bool
1969
1970config SYS_HAS_CPU_TX39XX
1971 bool
1972
1973config SYS_HAS_CPU_VR41XX
1974 bool
1975
1976config SYS_HAS_CPU_R4300
1977 bool
1978
1979config SYS_HAS_CPU_R4X00
1980 bool
1981
1982config SYS_HAS_CPU_TX49XX
1983 bool
1984
1985config SYS_HAS_CPU_R5000
1986 bool
1987
1988config SYS_HAS_CPU_R5432
1989 bool
1990
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001991config SYS_HAS_CPU_R5500
1992 bool
1993
Ralf Baechle7cf80532005-10-20 22:33:09 +01001994config SYS_HAS_CPU_NEVADA
1995 bool
1996
1997config SYS_HAS_CPU_R8000
1998 bool
1999
2000config SYS_HAS_CPU_R10000
2001 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002002 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Ralf Baechle7cf80532005-10-20 22:33:09 +01002003
2004config SYS_HAS_CPU_RM7000
2005 bool
2006
Ralf Baechle7cf80532005-10-20 22:33:09 +01002007config SYS_HAS_CPU_SB1
2008 bool
2009
David Daney5e683382009-02-02 11:30:59 -08002010config SYS_HAS_CPU_CAVIUM_OCTEON
2011 bool
2012
Jonas Gorskicd746242013-12-18 14:12:02 +01002013config SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002014 bool
2015
Jonas Gorskife7f62c2013-12-18 14:12:05 +01002016config SYS_HAS_CPU_BMIPS32_3300
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002017 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002018 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002019
2020config SYS_HAS_CPU_BMIPS4350
2021 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002022 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002023
2024config SYS_HAS_CPU_BMIPS4380
2025 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002026 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002027
2028config SYS_HAS_CPU_BMIPS5000
2029 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002030 select SYS_HAS_CPU_BMIPS
Hauke Mehrtensf263f2a2018-12-09 16:49:57 +01002031 select ARCH_HAS_SYNC_DMA_FOR_CPU
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002032
Jayachandran C7f058e82011-05-07 01:36:57 +05302033config SYS_HAS_CPU_XLR
2034 bool
2035
Jayachandran C1c773ea2011-11-16 00:21:28 +00002036config SYS_HAS_CPU_XLP
2037 bool
2038
Ralf Baechle17099b12007-07-14 13:24:05 +01002039#
2040# CPU may reorder R->R, R->W, W->R, W->W
2041# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
2042#
Ralf Baechle0004a9d2006-10-31 03:45:07 +00002043config WEAK_ORDERING
2044 bool
Ralf Baechle17099b12007-07-14 13:24:05 +01002045
2046#
2047# CPU may reorder reads and writes beyond LL/SC
2048# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
2049#
2050config WEAK_REORDERING_BEYOND_LLSC
2051 bool
Ralf Baechle5e83d432005-10-29 19:32:41 +01002052endmenu
2053
2054#
Chris Dearmanc09b47d2006-06-20 17:15:20 +01002055# These two indicate any level of the MIPS32 and MIPS64 architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002056#
2057config CPU_MIPS32
2058 bool
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002059 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Ralf Baechle5e83d432005-10-29 19:32:41 +01002060
2061config CPU_MIPS64
2062 bool
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002063 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Ralf Baechle5e83d432005-10-29 19:32:41 +01002064
2065#
Paul Burton57eeace2018-11-08 23:44:55 +00002066# These indicate the revision of the architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002067#
2068config CPU_MIPSR1
2069 bool
2070 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
2071
2072config CPU_MIPSR2
2073 bool
David Daneya86c7f72008-12-11 15:33:38 -08002074 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
Florian Fainelli8256b172016-02-09 12:55:51 -08002075 select CPU_HAS_RIXI
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002076 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002077
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002078config CPU_MIPSR6
2079 bool
2080 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
Florian Fainelli8256b172016-02-09 12:55:51 -08002081 select CPU_HAS_RIXI
Paul Burton87321fd2016-05-06 13:35:03 +01002082 select HAVE_ARCH_BITREVERSE
Paul Burton2db003a2016-05-06 14:36:24 +01002083 select MIPS_ASID_BITS_VARIABLE
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002084 select MIPS_CRC_SUPPORT
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002085 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002086
Paul Burton57eeace2018-11-08 23:44:55 +00002087config TARGET_ISA_REV
2088 int
2089 default 1 if CPU_MIPSR1
2090 default 2 if CPU_MIPSR2
2091 default 6 if CPU_MIPSR6
2092 default 0
2093 help
2094 Reflects the ISA revision being targeted by the kernel build. This
2095 is effectively the Kconfig equivalent of MIPS_ISA_REV.
2096
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002097config EVA
2098 bool
2099
Steven J. Hillc5b36782015-02-26 18:16:38 -06002100config XPA
2101 bool
2102
Ralf Baechle5e83d432005-10-29 19:32:41 +01002103config SYS_SUPPORTS_32BIT_KERNEL
2104 bool
2105config SYS_SUPPORTS_64BIT_KERNEL
2106 bool
2107config CPU_SUPPORTS_32BIT_KERNEL
2108 bool
2109config CPU_SUPPORTS_64BIT_KERNEL
2110 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08002111config CPU_SUPPORTS_CPUFREQ
2112 bool
2113config CPU_SUPPORTS_ADDRWINCFG
2114 bool
David Daney9cffd1542009-05-27 17:47:46 -07002115config CPU_SUPPORTS_HUGEPAGES
2116 bool
Wu Zhangjin22f1fdf2009-11-11 13:59:23 +08002117config CPU_SUPPORTS_UNCACHED_ACCELERATED
2118 bool
David Daney82622282009-10-14 12:16:56 -07002119config MIPS_PGD_C0_CONTEXT
2120 bool
Paul Burtoncebf8c02017-06-02 15:38:03 -07002121 default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
Ralf Baechle5e83d432005-10-29 19:32:41 +01002122
David Daney8192c9e2008-09-23 00:04:26 -07002123#
2124# Set to y for ptrace access to watch registers.
2125#
2126config HARDWARE_WATCHPOINTS
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002127 bool
2128 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
David Daney8192c9e2008-09-23 00:04:26 -07002129
Ralf Baechle5e83d432005-10-29 19:32:41 +01002130menu "Kernel type"
2131
2132choice
Ralf Baechle5e83d432005-10-29 19:32:41 +01002133 prompt "Kernel code model"
2134 help
2135 You should only select this option if you have a workload that
2136 actually benefits from 64-bit processing or if your machine has
2137 large memory. You will only be presented a single option in this
2138 menu if your system does not support both 32-bit and 64-bit kernels.
2139
2140config 32BIT
2141 bool "32-bit kernel"
2142 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2143 select TRAD_SIGNALS
2144 help
2145 Select this option if you want to build a 32-bit kernel.
Ralf Baechlef17c4ca2015-07-23 12:02:09 +02002146
Ralf Baechle5e83d432005-10-29 19:32:41 +01002147config 64BIT
2148 bool "64-bit kernel"
2149 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
2150 help
2151 Select this option if you want to build a 64-bit kernel.
2152
2153endchoice
2154
Sanjay Lal2235a542012-11-21 18:33:59 -08002155config KVM_GUEST
2156 bool "KVM Guest Kernel"
James Hoganf2a5b1d2013-07-12 10:26:11 +00002157 depends on BROKEN_ON_SMP
Sanjay Lal2235a542012-11-21 18:33:59 -08002158 help
James Hogancaa1faa2015-12-16 23:49:26 +00002159 Select this option if building a guest kernel for KVM (Trap & Emulate)
2160 mode.
Sanjay Lal2235a542012-11-21 18:33:59 -08002161
James Hoganeda3d332014-05-29 10:16:36 +01002162config KVM_GUEST_TIMER_FREQ
2163 int "Count/Compare Timer Frequency (MHz)"
Sanjay Lal2235a542012-11-21 18:33:59 -08002164 depends on KVM_GUEST
James Hoganeda3d332014-05-29 10:16:36 +01002165 default 100
Sanjay Lal2235a542012-11-21 18:33:59 -08002166 help
James Hoganeda3d332014-05-29 10:16:36 +01002167 Set this to non-zero if building a guest kernel for KVM to skip RTC
2168 emulation when determining guest CPU Frequency. Instead, the guest's
2169 timer frequency is specified directly.
Sanjay Lal2235a542012-11-21 18:33:59 -08002170
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002171config MIPS_VA_BITS_48
2172 bool "48 bits virtual memory"
2173 depends on 64BIT
2174 help
Alex Belits3377e222017-02-16 17:27:34 -08002175 Support a maximum at least 48 bits of application virtual
2176 memory. Default is 40 bits or less, depending on the CPU.
2177 For page sizes 16k and above, this option results in a small
2178 memory overhead for page tables. For 4k page size, a fourth
2179 level of page tables is added which imposes both a memory
2180 overhead as well as slower TLB fault handling.
2181
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002182 If unsure, say N.
2183
Linus Torvalds1da177e2005-04-16 15:20:36 -07002184choice
2185 prompt "Kernel page size"
2186 default PAGE_SIZE_4KB
2187
2188config PAGE_SIZE_4KB
2189 bool "4kB"
Huacai Chen0e476d92014-03-21 18:44:07 +08002190 depends on !CPU_LOONGSON2 && !CPU_LOONGSON3
Linus Torvalds1da177e2005-04-16 15:20:36 -07002191 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002192 This option select the standard 4kB Linux page size. On some
2193 R3000-family processors this is the only available page size. Using
2194 4kB page size will minimize memory consumption and is therefore
2195 recommended for low memory systems.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002196
2197config PAGE_SIZE_8KB
2198 bool "8kB"
Kees Cook7d607172013-01-16 18:53:19 -08002199 depends on CPU_R8000 || CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002200 depends on !MIPS_VA_BITS_48
Linus Torvalds1da177e2005-04-16 15:20:36 -07002201 help
2202 Using 8kB page size will result in higher performance kernel at
2203 the price of higher memory consumption. This option is available
Ralf Baechlec52399b2009-04-02 14:07:10 +02002204 only on R8000 and cnMIPS processors. Note that you will need a
2205 suitable Linux distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002206
2207config PAGE_SIZE_16KB
2208 bool "16kB"
Ralf Baechle714bfad2006-05-17 14:04:30 +01002209 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002210 help
2211 Using 16kB page size will result in higher performance kernel at
2212 the price of higher memory consumption. This option is available on
Ralf Baechle714bfad2006-05-17 14:04:30 +01002213 all non-R3000 family processors. Note that you will need a suitable
2214 Linux distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002215
Ralf Baechlec52399b2009-04-02 14:07:10 +02002216config PAGE_SIZE_32KB
2217 bool "32kB"
2218 depends on CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002219 depends on !MIPS_VA_BITS_48
Ralf Baechlec52399b2009-04-02 14:07:10 +02002220 help
2221 Using 32kB page size will result in higher performance kernel at
2222 the price of higher memory consumption. This option is available
2223 only on cnMIPS cores. Note that you will need a suitable Linux
2224 distribution to support this.
2225
Linus Torvalds1da177e2005-04-16 15:20:36 -07002226config PAGE_SIZE_64KB
2227 bool "64kB"
Paul Burton3b2db172017-06-05 11:21:27 -07002228 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002229 help
2230 Using 64kB page size will result in higher performance kernel at
2231 the price of higher memory consumption. This option is available on
2232 all non-R3000 family processor. Not that at the time of this
Ralf Baechle714bfad2006-05-17 14:04:30 +01002233 writing this option is still high experimental.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002234
2235endchoice
2236
David Daneyc9bace72010-10-11 14:52:45 -07002237config FORCE_MAX_ZONEORDER
2238 int "Maximum zone order"
Alex Smithe4362d12014-01-21 11:22:35 +00002239 range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2240 default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2241 range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2242 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2243 range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2244 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
David Daneyc9bace72010-10-11 14:52:45 -07002245 range 11 64
2246 default "11"
2247 help
2248 The kernel memory allocator divides physically contiguous memory
2249 blocks into "zones", where each zone is a power of two number of
2250 pages. This option selects the largest power of two that the kernel
2251 keeps in the memory allocator. If you need to allocate very large
2252 blocks of physically contiguous memory, then you may need to
2253 increase this value.
2254
2255 This config option is actually maximum order plus one. For example,
2256 a value of 11 means that the largest free memory block is 2^10 pages.
2257
2258 The page size is not necessarily 4KB. Keep this in mind
2259 when choosing a value for this option.
2260
Linus Torvalds1da177e2005-04-16 15:20:36 -07002261config BOARD_SCACHE
2262 bool
2263
2264config IP22_CPU_SCACHE
2265 bool
2266 select BOARD_SCACHE
2267
Chris Dearman9318c512006-06-20 17:15:20 +01002268#
2269# Support for a MIPS32 / MIPS64 style S-caches
2270#
2271config MIPS_CPU_SCACHE
2272 bool
2273 select BOARD_SCACHE
2274
Linus Torvalds1da177e2005-04-16 15:20:36 -07002275config R5000_CPU_SCACHE
2276 bool
2277 select BOARD_SCACHE
2278
2279config RM7000_CPU_SCACHE
2280 bool
2281 select BOARD_SCACHE
2282
2283config SIBYTE_DMA_PAGEOPS
2284 bool "Use DMA to clear/copy pages"
2285 depends on CPU_SB1
2286 help
2287 Instead of using the CPU to zero and copy pages, use a Data Mover
2288 channel. These DMA channels are otherwise unused by the standard
2289 SiByte Linux port. Seems to give a small performance benefit.
2290
2291config CPU_HAS_PREFETCH
Ralf Baechlec8094b52005-08-05 14:28:54 +00002292 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002293
Florian Fainelli3165c842012-01-31 18:18:43 +01002294config CPU_GENERIC_DUMP_TLB
2295 bool
Paul Burton3b2db172017-06-05 11:21:27 -07002296 default y if !(CPU_R3000 || CPU_R8000 || CPU_TX39XX)
Florian Fainelli3165c842012-01-31 18:18:43 +01002297
Paul Burtonc92e47e2018-11-07 23:14:02 +00002298config MIPS_FP_SUPPORT
Paul Burton183b40f2018-11-07 23:14:11 +00002299 bool "Floating Point support" if EXPERT
2300 default y
2301 help
2302 Select y to include support for floating point in the kernel
2303 including initialization of FPU hardware, FP context save & restore
2304 and emulation of an FPU where necessary. Without this support any
2305 userland program attempting to use floating point instructions will
2306 receive a SIGILL.
2307
2308 If you know that your userland will not attempt to use floating point
2309 instructions then you can say n here to shrink the kernel a little.
2310
2311 If unsure, say y.
Paul Burtonc92e47e2018-11-07 23:14:02 +00002312
Paul Burton97f7dcb2018-11-07 23:14:02 +00002313config CPU_R2300_FPU
2314 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002315 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002316 default y if CPU_R3000 || CPU_TX39XX
2317
Florian Fainelli91405eb2012-01-31 18:18:44 +01002318config CPU_R4K_FPU
2319 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002320 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002321 default y if !CPU_R2300_FPU
Florian Fainelli91405eb2012-01-31 18:18:44 +01002322
Florian Fainelli62cedc42012-01-31 18:18:45 +01002323config CPU_R4K_CACHE_TLB
2324 bool
2325 default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
2326
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002327config MIPS_MT_SMP
Markos Chandrasa92b7f82014-04-08 11:59:10 +01002328 bool "MIPS MT SMP support (1 TC on each available VPE)"
Paul Burton5cbf9682017-08-07 16:01:16 -07002329 default y
Paul Burton527f1022017-08-07 16:18:04 -07002330 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002331 select CPU_MIPSR2_IRQ_VI
Chris Dearmand725cf32007-05-08 14:05:39 +01002332 select CPU_MIPSR2_IRQ_EI
Steven J. Hillc080faa2013-10-04 16:23:28 -05002333 select SYNC_R4K
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002334 select MIPS_MT
2335 select SMP
Ralf Baechle87353d82007-11-19 12:23:51 +00002336 select SMP_UP
Steven J. Hillc080faa2013-10-04 16:23:28 -05002337 select SYS_SUPPORTS_SMP
2338 select SYS_SUPPORTS_SCHED_SMT
Al Cooper399aaa22012-07-13 16:44:53 -04002339 select MIPS_PERF_SHARED_TC_COUNTERS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002340 help
Steven J. Hillc080faa2013-10-04 16:23:28 -05002341 This is a kernel model which is known as SMVP. This is supported
2342 on cores with the MT ASE and uses the available VPEs to implement
2343 virtual processors which supports SMP. This is equivalent to the
2344 Intel Hyperthreading feature. For further information go to
2345 <http://www.imgtec.com/mips/mips-multithreading.asp>.
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002346
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002347config MIPS_MT
2348 bool
2349
Ralf Baechle0ab7aef2007-03-02 20:42:04 +00002350config SCHED_SMT
2351 bool "SMT (multithreading) scheduler support"
2352 depends on SYS_SUPPORTS_SCHED_SMT
2353 default n
2354 help
2355 SMT scheduler support improves the CPU scheduler's decision making
2356 when dealing with MIPS MT enabled cores at a cost of slightly
2357 increased overhead in some places. If unsure say N here.
2358
2359config SYS_SUPPORTS_SCHED_SMT
2360 bool
2361
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002362config SYS_SUPPORTS_MULTITHREADING
2363 bool
2364
Ralf Baechlef088fc82006-04-05 09:45:47 +01002365config MIPS_MT_FPAFF
2366 bool "Dynamic FPU affinity for FP-intensive threads"
Ralf Baechlef088fc82006-04-05 09:45:47 +01002367 default y
Ralf Baechleb6336482014-05-23 16:29:44 +02002368 depends on MIPS_MT_SMP
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002369
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002370config MIPSR2_TO_R6_EMULATOR
2371 bool "MIPS R2-to-R6 emulator"
Paul Burton9eaa9a82016-10-17 15:34:37 +01002372 depends on CPU_MIPSR6
Paul Burtonc92e47e2018-11-07 23:14:02 +00002373 depends on MIPS_FP_SUPPORT
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002374 default y
2375 help
2376 Choose this option if you want to run non-R6 MIPS userland code.
2377 Even if you say 'Y' here, the emulator will still be disabled by
Markos Chandras07edf0d2015-03-10 12:30:56 +00002378 default. You can enable it using the 'mipsr2emu' kernel option.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002379 The only reason this is a build-time option is to save ~14K from the
2380 final kernel image.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002381
James Hoganf35764e2018-01-15 20:54:35 +00002382config SYS_SUPPORTS_VPE_LOADER
2383 bool
2384 depends on SYS_SUPPORTS_MULTITHREADING
2385 help
2386 Indicates that the platform supports the VPE loader, and provides
2387 physical_memsize.
2388
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002389config MIPS_VPE_LOADER
2390 bool "VPE loader support."
James Hoganf35764e2018-01-15 20:54:35 +00002391 depends on SYS_SUPPORTS_VPE_LOADER && MODULES
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002392 select CPU_MIPSR2_IRQ_VI
2393 select CPU_MIPSR2_IRQ_EI
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002394 select MIPS_MT
2395 help
2396 Includes a loader for loading an elf relocatable object
2397 onto another VPE and running it.
Ralf Baechlef088fc82006-04-05 09:45:47 +01002398
Deng-Cheng Zhu17a1d522013-10-30 15:52:07 -05002399config MIPS_VPE_LOADER_CMP
2400 bool
2401 default "y"
2402 depends on MIPS_VPE_LOADER && MIPS_CMP
2403
Deng-Cheng Zhu1a2a6d72013-10-30 15:52:06 -05002404config MIPS_VPE_LOADER_MT
2405 bool
2406 default "y"
2407 depends on MIPS_VPE_LOADER && !MIPS_CMP
2408
Ralf Baechlee01402b2005-07-14 15:57:16 +00002409config MIPS_VPE_LOADER_TOM
2410 bool "Load VPE program into memory hidden from linux"
2411 depends on MIPS_VPE_LOADER
2412 default y
2413 help
2414 The loader can use memory that is present but has been hidden from
2415 Linux using the kernel command line option "mem=xxMB". It's up to
2416 you to ensure the amount you put in the option and the space your
2417 program requires is less or equal to the amount physically present.
2418
Ralf Baechlee01402b2005-07-14 15:57:16 +00002419config MIPS_VPE_APSP_API
Ralf Baechle5e83d432005-10-29 19:32:41 +01002420 bool "Enable support for AP/SP API (RTLX)"
2421 depends on MIPS_VPE_LOADER
Ralf Baechlee01402b2005-07-14 15:57:16 +00002422
Deng-Cheng Zhuda615cf2014-01-01 16:29:03 +01002423config MIPS_VPE_APSP_API_CMP
2424 bool
2425 default "y"
2426 depends on MIPS_VPE_APSP_API && MIPS_CMP
2427
Deng-Cheng Zhu2c973ef2014-01-01 16:26:46 +01002428config MIPS_VPE_APSP_API_MT
2429 bool
2430 default "y"
2431 depends on MIPS_VPE_APSP_API && !MIPS_CMP
2432
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002433config MIPS_CMP
Paul Burton5cac93b2014-01-15 10:32:00 +00002434 bool "MIPS CMP framework support (DEPRECATED)"
Markos Chandras56763192015-07-09 10:40:38 +01002435 depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002436 select SMP
Tim Andersoneb9b5142009-06-17 16:40:34 -07002437 select SYNC_R4K
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002438 select SYS_SUPPORTS_SMP
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002439 select WEAK_ORDERING
2440 default n
2441 help
Paul Burton044505c2014-01-15 10:31:58 +00002442 Select this if you are using a bootloader which implements the "CMP
2443 framework" protocol (ie. YAMON) and want your kernel to make use of
2444 its ability to start secondary CPUs.
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002445
Paul Burton5cac93b2014-01-15 10:32:00 +00002446 Unless you have a specific need, you should use CONFIG_MIPS_CPS
2447 instead of this.
2448
Paul Burton0ee958e2014-01-15 10:31:53 +00002449config MIPS_CPS
2450 bool "MIPS Coherent Processing System support"
Paul Burton5a3e7c02016-02-03 03:15:33 +00002451 depends on SYS_SUPPORTS_MIPS_CPS
Paul Burton0ee958e2014-01-15 10:31:53 +00002452 select MIPS_CM
Paul Burton1d8f1f52014-04-14 14:13:57 +01002453 select MIPS_CPS_PM if HOTPLUG_CPU
Paul Burton0ee958e2014-01-15 10:31:53 +00002454 select SMP
2455 select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
Paul Burton1d8f1f52014-04-14 14:13:57 +01002456 select SYS_SUPPORTS_HOTPLUG_CPU
Paul Burtonc8b77122017-06-02 14:48:52 -07002457 select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
Paul Burton0ee958e2014-01-15 10:31:53 +00002458 select SYS_SUPPORTS_SMP
2459 select WEAK_ORDERING
2460 help
2461 Select this if you wish to run an SMP kernel across multiple cores
2462 within a MIPS Coherent Processing System. When this option is
2463 enabled the kernel will probe for other cores and boot them with
2464 no external assistance. It is safe to enable this when hardware
2465 support is unavailable.
2466
Paul Burton3179d372014-04-14 11:00:56 +01002467config MIPS_CPS_PM
Markos Chandras39a59592014-09-18 16:09:49 +01002468 depends on MIPS_CPS
Paul Burton3179d372014-04-14 11:00:56 +01002469 bool
2470
Paul Burton9f98f3d2014-01-15 10:31:51 +00002471config MIPS_CM
2472 bool
Paul Burton3c9b4162017-08-12 19:49:42 -07002473 select MIPS_CPC
Paul Burton9f98f3d2014-01-15 10:31:51 +00002474
Paul Burton9c38cf42014-01-15 10:31:52 +00002475config MIPS_CPC
2476 bool
Ralf Baechle26009902006-04-05 09:45:45 +01002477
Linus Torvalds1da177e2005-04-16 15:20:36 -07002478config SB1_PASS_2_WORKAROUNDS
2479 bool
2480 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2481 default y
2482
2483config SB1_PASS_2_1_WORKAROUNDS
2484 bool
2485 depends on CPU_SB1 && CPU_SB1_PASS_2
2486 default y
2487
Markos Chandras9e2b5372014-07-21 08:46:14 +01002488choice
2489 prompt "SmartMIPS or microMIPS ASE support"
2490
2491config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2492 bool "None"
2493 help
2494 Select this if you want neither microMIPS nor SmartMIPS support
2495
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002496config CPU_HAS_SMARTMIPS
2497 depends on SYS_SUPPORTS_SMARTMIPS
Markos Chandras9e2b5372014-07-21 08:46:14 +01002498 bool "SmartMIPS"
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002499 help
2500 SmartMIPS is a extension of the MIPS32 architecture aimed at
2501 increased security at both hardware and software level for
2502 smartcards. Enabling this option will allow proper use of the
2503 SmartMIPS instructions by Linux applications. However a kernel with
2504 this option will not work on a MIPS core without SmartMIPS core. If
2505 you don't know you probably don't have SmartMIPS and should say N
2506 here.
2507
Steven J. Hillbce86082013-03-25 13:27:11 -05002508config CPU_MICROMIPS
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002509 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
Markos Chandras9e2b5372014-07-21 08:46:14 +01002510 bool "microMIPS"
Steven J. Hillbce86082013-03-25 13:27:11 -05002511 help
2512 When this option is enabled the kernel will be built using the
2513 microMIPS ISA
2514
Markos Chandras9e2b5372014-07-21 08:46:14 +01002515endchoice
2516
Paul Burtona5e9a692014-01-27 15:23:10 +00002517config CPU_HAS_MSA
Paul Burton0ce34172015-07-27 12:58:27 -07002518 bool "Support for the MIPS SIMD Architecture"
Paul Burtona5e9a692014-01-27 15:23:10 +00002519 depends on CPU_SUPPORTS_MSA
Paul Burtonc92e47e2018-11-07 23:14:02 +00002520 depends on MIPS_FP_SUPPORT
Paul Burton2a6cb662014-07-11 16:47:14 +01002521 depends on 64BIT || MIPS_O32_FP64_SUPPORT
Paul Burtona5e9a692014-01-27 15:23:10 +00002522 help
2523 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2524 and a set of SIMD instructions to operate on them. When this option
Paul Burton1db1af82014-01-27 15:23:11 +00002525 is enabled the kernel will support allocating & switching MSA
2526 vector register contexts. If you know that your kernel will only be
2527 running on CPUs which do not support MSA or that your userland will
2528 not be making use of it then you may wish to say N here to reduce
2529 the size & complexity of your kernel.
Paul Burtona5e9a692014-01-27 15:23:10 +00002530
2531 If unsure, say Y.
2532
Linus Torvalds1da177e2005-04-16 15:20:36 -07002533config CPU_HAS_WB
Ralf Baechlef7062dd2006-04-24 14:58:53 +01002534 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002535
Kevin Cernekeedf0ac8a2011-11-16 01:25:45 +00002536config XKS01
2537 bool
2538
Florian Fainelli8256b172016-02-09 12:55:51 -08002539config CPU_HAS_RIXI
2540 bool
2541
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002542config CPU_HAS_LOAD_STORE_LR
2543 bool
2544 help
2545 CPU has support for unaligned load and store instructions:
2546 LWL, LWR, SWL, SWR (Load/store word left/right).
2547 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit systems).
2548
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002549#
2550# Vectored interrupt mode is an R2 feature
2551#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002552config CPU_MIPSR2_IRQ_VI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002553 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002554
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002555#
2556# Extended interrupt mode is an R2 feature
2557#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002558config CPU_MIPSR2_IRQ_EI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002559 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002560
Linus Torvalds1da177e2005-04-16 15:20:36 -07002561config CPU_HAS_SYNC
2562 bool
2563 depends on !CPU_R3000
2564 default y
2565
2566#
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002567# CPU non-features
2568#
2569config CPU_DADDI_WORKAROUNDS
2570 bool
2571
2572config CPU_R4000_WORKAROUNDS
2573 bool
2574 select CPU_R4400_WORKAROUNDS
2575
2576config CPU_R4400_WORKAROUNDS
2577 bool
2578
Paul Burton4edf00a2016-05-06 14:36:23 +01002579config MIPS_ASID_SHIFT
2580 int
2581 default 6 if CPU_R3000 || CPU_TX39XX
2582 default 4 if CPU_R8000
2583 default 0
2584
2585config MIPS_ASID_BITS
2586 int
Paul Burton2db003a2016-05-06 14:36:24 +01002587 default 0 if MIPS_ASID_BITS_VARIABLE
Paul Burton4edf00a2016-05-06 14:36:23 +01002588 default 6 if CPU_R3000 || CPU_TX39XX
2589 default 8
2590
Paul Burton2db003a2016-05-06 14:36:24 +01002591config MIPS_ASID_BITS_VARIABLE
2592 bool
2593
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002594config MIPS_CRC_SUPPORT
2595 bool
2596
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002597#
Linus Torvalds1da177e2005-04-16 15:20:36 -07002598# - Highmem only makes sense for the 32-bit kernel.
2599# - The current highmem code will only work properly on physically indexed
2600# caches such as R3000, SB1, R7000 or those that look like they're virtually
2601# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
2602# moment we protect the user and offer the highmem option only on machines
2603# where it's known to be safe. This will not offer highmem on a few systems
2604# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2605# indexed CPUs but we're playing safe.
Ralf Baechle797798c2005-08-10 15:17:11 +00002606# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2607# know they might have memory configurations that could make use of highmem
2608# support.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002609#
2610config HIGHMEM
2611 bool "High Memory Support"
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002612 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
Ralf Baechle797798c2005-08-10 15:17:11 +00002613
2614config CPU_SUPPORTS_HIGHMEM
2615 bool
2616
2617config SYS_SUPPORTS_HIGHMEM
2618 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002619
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002620config SYS_SUPPORTS_SMARTMIPS
2621 bool
2622
Steven J. Hilla6a48342013-02-05 16:52:02 -06002623config SYS_SUPPORTS_MICROMIPS
2624 bool
2625
Ralf Baechle377cb1b2014-04-29 01:49:24 +02002626config SYS_SUPPORTS_MIPS16
2627 bool
2628 help
2629 This option must be set if a kernel might be executed on a MIPS16-
2630 enabled CPU even if MIPS16 is not actually being used. In other
2631 words, it makes the kernel MIPS16-tolerant.
2632
Paul Burtona5e9a692014-01-27 15:23:10 +00002633config CPU_SUPPORTS_MSA
2634 bool
2635
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002636config ARCH_FLATMEM_ENABLE
2637 def_bool y
Wu Zhangjinf133f222009-12-01 14:55:42 +08002638 depends on !NUMA && !CPU_LOONGSON2
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002639
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002640config ARCH_DISCONTIGMEM_ENABLE
2641 bool
2642 default y if SGI_IP27
2643 help
David Sterba3dde6ad2007-05-09 07:12:20 +02002644 Say Y to support efficient handling of discontiguous physical memory,
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002645 for architectures which are either NUMA (Non-Uniform Memory Access)
2646 or have huge holes in the physical address space for other reasons.
Mike Rapoportad56b732018-03-21 21:22:47 +02002647 See <file:Documentation/vm/numa.rst> for more.
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002648
Atsushi Nemotob1c6cd42006-07-03 00:09:47 +09002649config ARCH_SPARSEMEM_ENABLE
2650 bool
Atsushi Nemoto7de58fa2006-07-05 01:22:44 +09002651 select SPARSEMEM_STATIC
Atsushi Nemoto31473742006-07-03 00:09:47 +09002652
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002653config NUMA
2654 bool "NUMA Support"
2655 depends on SYS_SUPPORTS_NUMA
2656 help
2657 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2658 Access). This option improves performance on systems with more
2659 than two nodes; on two node systems it is generally better to
2660 leave it disabled; on single node systems disable this option
2661 disabled.
2662
2663config SYS_SUPPORTS_NUMA
2664 bool
2665
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002666config RELOCATABLE
2667 bool "Relocatable kernel"
Steven J. Hill3ff72be2016-12-13 14:25:37 -06002668 depends on SYS_SUPPORTS_RELOCATABLE && (CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_MIPS32_R6 || CPU_MIPS64_R6 || CAVIUM_OCTEON_SOC)
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002669 help
2670 This builds a kernel image that retains relocation information
2671 so it can be loaded someplace besides the default 1MB.
2672 The relocations make the kernel binary about 15% larger,
2673 but are discarded at runtime
2674
Matt Redfearn069fd762016-03-31 10:05:34 +01002675config RELOCATION_TABLE_SIZE
2676 hex "Relocation table size"
2677 depends on RELOCATABLE
2678 range 0x0 0x01000000
2679 default "0x00100000"
2680 ---help---
2681 A table of relocation data will be appended to the kernel binary
2682 and parsed at boot to fix up the relocated kernel.
2683
2684 This option allows the amount of space reserved for the table to be
2685 adjusted, although the default of 1Mb should be ok in most cases.
2686
2687 The build will fail and a valid size suggested if this is too small.
2688
2689 If unsure, leave at the default value.
2690
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002691config RANDOMIZE_BASE
2692 bool "Randomize the address of the kernel image"
2693 depends on RELOCATABLE
2694 ---help---
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002695 Randomizes the physical and virtual address at which the
2696 kernel image is loaded, as a security feature that
2697 deters exploit attempts relying on knowledge of the location
2698 of kernel internals.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002699
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002700 Entropy is generated using any coprocessor 0 registers available.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002701
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002702 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002703
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002704 If unsure, say N.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002705
2706config RANDOMIZE_BASE_MAX_OFFSET
2707 hex "Maximum kASLR offset" if EXPERT
2708 depends on RANDOMIZE_BASE
2709 range 0x0 0x40000000 if EVA || 64BIT
2710 range 0x0 0x08000000
2711 default "0x01000000"
2712 ---help---
2713 When kASLR is active, this provides the maximum offset that will
2714 be applied to the kernel image. It should be set according to the
2715 amount of physical RAM available in the target system minus
2716 PHYSICAL_START and must be a power of 2.
2717
2718 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2719 EVA or 64-bit. The default is 16Mb.
2720
Yasunori Gotoc80d79d2006-04-10 22:53:53 -07002721config NODES_SHIFT
2722 int
2723 default "6"
2724 depends on NEED_MULTIPLE_NODES
2725
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002726config HW_PERF_EVENTS
2727 bool "Enable hardware performance counter support for perf events"
Yang Shi23021b22016-02-19 15:42:11 -08002728 depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON3)
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002729 default y
2730 help
2731 Enable hardware performance counter support for perf events. If
2732 disabled, perf events will use software events only.
2733
Linus Torvalds1da177e2005-04-16 15:20:36 -07002734config SMP
2735 bool "Multi-Processing support"
Ralf Baechlee73ea272006-06-04 11:51:46 +01002736 depends on SYS_SUPPORTS_SMP
2737 help
Linus Torvalds1da177e2005-04-16 15:20:36 -07002738 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -08002739 a system with only one CPU, say N. If you have a system with more
2740 than one CPU, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002741
Robert Graffham4a474152014-01-23 15:55:29 -08002742 If you say N here, the kernel will run on uni- and multiprocessor
Linus Torvalds1da177e2005-04-16 15:20:36 -07002743 machines, but will use only one CPU of a multiprocessor machine. If
2744 you say Y here, the kernel will run on many, but not all,
Robert Graffham4a474152014-01-23 15:55:29 -08002745 uniprocessor machines. On a uniprocessor machine, the kernel
Linus Torvalds1da177e2005-04-16 15:20:36 -07002746 will run faster if you say N here.
2747
2748 People using multiprocessor machines who say Y here should also say
2749 Y to "Enhanced Real Time Clock Support", below.
2750
Adrian Bunk03502fa2008-02-03 15:50:21 +02002751 See also the SMP-HOWTO available at
2752 <http://www.tldp.org/docs.html#howto>.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002753
2754 If you don't know what to do here, say N.
2755
Matt Redfearn7840d612016-07-07 08:50:40 +01002756config HOTPLUG_CPU
2757 bool "Support for hot-pluggable CPUs"
2758 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2759 help
2760 Say Y here to allow turning CPUs off and on. CPUs can be
2761 controlled through /sys/devices/system/cpu.
2762 (Note: power management support will enable this option
2763 automatically on SMP systems. )
2764 Say N if you want to disable CPU hotplug.
2765
Ralf Baechle87353d82007-11-19 12:23:51 +00002766config SMP_UP
2767 bool
2768
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002769config SYS_SUPPORTS_MIPS_CMP
2770 bool
2771
Paul Burton0ee958e2014-01-15 10:31:53 +00002772config SYS_SUPPORTS_MIPS_CPS
2773 bool
2774
Ralf Baechlee73ea272006-06-04 11:51:46 +01002775config SYS_SUPPORTS_SMP
2776 bool
2777
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002778config NR_CPUS_DEFAULT_4
2779 bool
2780
2781config NR_CPUS_DEFAULT_8
2782 bool
2783
2784config NR_CPUS_DEFAULT_16
2785 bool
2786
2787config NR_CPUS_DEFAULT_32
2788 bool
2789
2790config NR_CPUS_DEFAULT_64
2791 bool
2792
Linus Torvalds1da177e2005-04-16 15:20:36 -07002793config NR_CPUS
Jayachandran Ca91796a2014-04-29 20:07:40 +05302794 int "Maximum number of CPUs (2-256)"
2795 range 2 256
Linus Torvalds1da177e2005-04-16 15:20:36 -07002796 depends on SMP
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002797 default "4" if NR_CPUS_DEFAULT_4
2798 default "8" if NR_CPUS_DEFAULT_8
2799 default "16" if NR_CPUS_DEFAULT_16
2800 default "32" if NR_CPUS_DEFAULT_32
2801 default "64" if NR_CPUS_DEFAULT_64
Linus Torvalds1da177e2005-04-16 15:20:36 -07002802 help
2803 This allows you to specify the maximum number of CPUs which this
2804 kernel will support. The maximum supported value is 32 for 32-bit
2805 kernel and 64 for 64-bit kernels; the minimum value which makes
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002806 sense is 1 for Qemu (useful only for kernel debugging purposes)
2807 and 2 for all others.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002808
2809 This is purely to save memory - each supported CPU adds
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002810 approximately eight kilobytes to the kernel image. For best
2811 performance should round up your number of processors to the next
2812 power of two.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002813
Al Cooper399aaa22012-07-13 16:44:53 -04002814config MIPS_PERF_SHARED_TC_COUNTERS
2815 bool
2816
David Daney7820b842017-09-28 12:34:04 -05002817config MIPS_NR_CPU_NR_MAP_1024
2818 bool
2819
2820config MIPS_NR_CPU_NR_MAP
2821 int
2822 depends on SMP
2823 default 1024 if MIPS_NR_CPU_NR_MAP_1024
2824 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2825
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002826#
2827# Timer Interrupt Frequency Configuration
2828#
2829
2830choice
2831 prompt "Timer frequency"
2832 default HZ_250
2833 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002834 Allows the configuration of the timer frequency.
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002835
Paul Burton67596572015-09-22 10:16:39 -07002836 config HZ_24
2837 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2838
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002839 config HZ_48
Ralf Baechle0f873582008-02-25 16:55:29 +00002840 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002841
2842 config HZ_100
2843 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2844
2845 config HZ_128
2846 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2847
2848 config HZ_250
2849 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2850
2851 config HZ_256
2852 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2853
2854 config HZ_1000
2855 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2856
2857 config HZ_1024
2858 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2859
2860endchoice
2861
Paul Burton67596572015-09-22 10:16:39 -07002862config SYS_SUPPORTS_24HZ
2863 bool
2864
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002865config SYS_SUPPORTS_48HZ
2866 bool
2867
2868config SYS_SUPPORTS_100HZ
2869 bool
2870
2871config SYS_SUPPORTS_128HZ
2872 bool
2873
2874config SYS_SUPPORTS_250HZ
2875 bool
2876
2877config SYS_SUPPORTS_256HZ
2878 bool
2879
2880config SYS_SUPPORTS_1000HZ
2881 bool
2882
2883config SYS_SUPPORTS_1024HZ
2884 bool
2885
2886config SYS_SUPPORTS_ARBIT_HZ
2887 bool
Paul Burton67596572015-09-22 10:16:39 -07002888 default y if !SYS_SUPPORTS_24HZ && \
2889 !SYS_SUPPORTS_48HZ && \
2890 !SYS_SUPPORTS_100HZ && \
2891 !SYS_SUPPORTS_128HZ && \
2892 !SYS_SUPPORTS_250HZ && \
2893 !SYS_SUPPORTS_256HZ && \
2894 !SYS_SUPPORTS_1000HZ && \
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002895 !SYS_SUPPORTS_1024HZ
2896
2897config HZ
2898 int
Paul Burton67596572015-09-22 10:16:39 -07002899 default 24 if HZ_24
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002900 default 48 if HZ_48
2901 default 100 if HZ_100
2902 default 128 if HZ_128
2903 default 250 if HZ_250
2904 default 256 if HZ_256
2905 default 1000 if HZ_1000
2906 default 1024 if HZ_1024
2907
Deng-Cheng Zhu96685b12015-03-07 10:30:19 -08002908config SCHED_HRTICK
2909 def_bool HIGH_RES_TIMERS
2910
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002911config KEXEC
Kees Cook7d607172013-01-16 18:53:19 -08002912 bool "Kexec system call"
Dave Young2965faa2015-09-09 15:38:55 -07002913 select KEXEC_CORE
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002914 help
2915 kexec is a system call that implements the ability to shutdown your
2916 current kernel, and to start another kernel. It is like a reboot
David Sterba3dde6ad2007-05-09 07:12:20 +02002917 but it is independent of the system firmware. And like a reboot
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002918 you can start any kernel with it, not just Linux.
2919
Matt LaPlante01dd2fb2007-10-20 01:34:40 +02002920 The name comes from the similarity to the exec system call.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002921
2922 It is an ongoing process to be certain the hardware in a machine
2923 is properly shutdown, so do not be surprised if this code does not
Geert Uytterhoevenbf220692013-08-20 21:38:03 +02002924 initially work for you. As of this writing the exact hardware
2925 interface is strongly in flux, so no good recommendation can be
2926 made.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002927
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02002928config CRASH_DUMP
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01002929 bool "Kernel crash dumps"
2930 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02002931 Generate crash dump after being started by kexec.
2932 This should be normally only set in special crash dump kernels
2933 which are loaded in the main kernel with kexec-tools into
2934 a specially reserved region and then later executed after
2935 a crash by kdump/kexec. The crash dump kernel must be compiled
2936 to a memory address not used by the main kernel or firmware using
2937 PHYSICAL_START.
2938
2939config PHYSICAL_START
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01002940 hex "Physical address where the kernel is loaded"
Maciej W. Rozycki8bda3e22018-03-26 19:11:51 +01002941 default "0xffffffff84000000"
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01002942 depends on CRASH_DUMP
2943 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02002944 This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2945 If you plan to use kernel for capturing the crash dump change
2946 this value to start of the reserved region (the "X" value as
2947 specified in the "crashkernel=YM@XM" command line boot parameter
2948 passed to the panic-ed kernel).
2949
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002950config SECCOMP
2951 bool "Enable seccomp to safely compute untrusted bytecode"
Ralf Baechle293c5bd2007-07-25 16:19:33 +01002952 depends on PROC_FS
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09002953 default y
2954 help
2955 This kernel feature is useful for number crunching applications
2956 that may need to compute untrusted bytecode during their
2957 execution. By using pipes or other transports made available to
2958 the process as file descriptors supporting the read/write
2959 syscalls, it's possible to isolate those applications in
2960 their own address space using seccomp. Once seccomp is
2961 enabled via /proc/<pid>/seccomp, it cannot be disabled
2962 and the task is only allowed to execute a few safe syscalls
2963 defined by each seccomp mode.
2964
2965 If unsure, say Y. Only embedded should say N here.
2966
Paul Burton597ce172013-11-22 13:12:07 +00002967config MIPS_O32_FP64_SUPPORT
Paul Burtonb7f1e272018-11-07 23:13:58 +00002968 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
Paul Burton597ce172013-11-22 13:12:07 +00002969 depends on 32BIT || MIPS32_O32
Paul Burton597ce172013-11-22 13:12:07 +00002970 help
2971 When this is enabled, the kernel will support use of 64-bit floating
2972 point registers with binaries using the O32 ABI along with the
2973 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
2974 32-bit MIPS systems this support is at the cost of increasing the
2975 size and complexity of the compiled FPU emulator. Thus if you are
2976 running a MIPS32 system and know that none of your userland binaries
2977 will require 64-bit floating point, you may wish to reduce the size
2978 of your kernel & potentially improve FP emulation performance by
2979 saying N here.
2980
Paul Burton06e2e882014-02-14 17:55:18 +00002981 Although binutils currently supports use of this flag the details
2982 concerning its effect upon the O32 ABI in userland are still being
2983 worked on. In order to avoid userland becoming dependant upon current
2984 behaviour before the details have been finalised, this option should
2985 be considered experimental and only enabled by those working upon
2986 said details.
2987
2988 If unsure, say N.
Paul Burton597ce172013-11-22 13:12:07 +00002989
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06002990config USE_OF
Jonas Gorski0b3e06f2012-09-18 11:28:54 +02002991 bool
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06002992 select OF
Stephen Neuendorffere6ce1322010-11-18 15:54:56 -08002993 select OF_EARLY_FLATTREE
Grant Likelyabd23632012-02-24 08:07:06 -07002994 select IRQ_DOMAIN
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06002995
Dengcheng Zhu2fe8ea32018-09-11 14:49:24 -07002996config UHI_BOOT
2997 bool
2998
Andrew Bresticker7fafb062014-08-21 13:04:20 -07002999config BUILTIN_DTB
3000 bool
3001
Jonas Gorski1da8f172015-04-12 12:24:58 +02003002choice
Jonas Gorski5b24d522015-10-12 13:13:01 +02003003 prompt "Kernel appended dtb support" if USE_OF
Jonas Gorski1da8f172015-04-12 12:24:58 +02003004 default MIPS_NO_APPENDED_DTB
3005
3006 config MIPS_NO_APPENDED_DTB
3007 bool "None"
3008 help
3009 Do not enable appended dtb support.
3010
Aaro Koskinen87db5372015-09-11 17:46:14 +03003011 config MIPS_ELF_APPENDED_DTB
3012 bool "vmlinux"
3013 help
3014 With this option, the boot code will look for a device tree binary
3015 DTB) included in the vmlinux ELF section .appended_dtb. By default
3016 it is empty and the DTB can be appended using binutils command
3017 objcopy:
3018
3019 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
3020
3021 This is meant as a backward compatiblity convenience for those
3022 systems with a bootloader that can't be upgraded to accommodate
3023 the documented boot protocol using a device tree.
3024
Jonas Gorski1da8f172015-04-12 12:24:58 +02003025 config MIPS_RAW_APPENDED_DTB
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003026 bool "vmlinux.bin or vmlinuz.bin"
Jonas Gorski1da8f172015-04-12 12:24:58 +02003027 help
3028 With this option, the boot code will look for a device tree binary
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003029 DTB) appended to raw vmlinux.bin or vmlinuz.bin.
Jonas Gorski1da8f172015-04-12 12:24:58 +02003030 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
3031
3032 This is meant as a backward compatibility convenience for those
3033 systems with a bootloader that can't be upgraded to accommodate
3034 the documented boot protocol using a device tree.
3035
3036 Beware that there is very little in terms of protection against
3037 this option being confused by leftover garbage in memory that might
3038 look like a DTB header after a reboot if no actual DTB is appended
3039 to vmlinux.bin. Do not leave this option active in a production kernel
3040 if you don't intend to always append a DTB.
3041endchoice
3042
Jonas Gorski20249722015-10-12 13:13:02 +02003043choice
3044 prompt "Kernel command line type" if !CMDLINE_OVERRIDE
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003045 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
Paul Burton3f5f0a42016-10-05 18:18:21 +01003046 !MIPS_MALTA && \
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003047 !CAVIUM_OCTEON_SOC
Jonas Gorski20249722015-10-12 13:13:02 +02003048 default MIPS_CMDLINE_FROM_BOOTLOADER
3049
3050 config MIPS_CMDLINE_FROM_DTB
3051 depends on USE_OF
3052 bool "Dtb kernel arguments if available"
3053
3054 config MIPS_CMDLINE_DTB_EXTEND
3055 depends on USE_OF
3056 bool "Extend dtb kernel arguments with bootloader arguments"
3057
3058 config MIPS_CMDLINE_FROM_BOOTLOADER
3059 bool "Bootloader kernel arguments if available"
Rabin Vincented47e152016-04-28 11:03:09 +02003060
3061 config MIPS_CMDLINE_BUILTIN_EXTEND
3062 depends on CMDLINE_BOOL
3063 bool "Extend builtin kernel arguments with bootloader arguments"
Jonas Gorski20249722015-10-12 13:13:02 +02003064endchoice
3065
Ralf Baechle5e83d432005-10-29 19:32:41 +01003066endmenu
3067
Atsushi Nemoto1df0f0f2006-09-26 23:44:01 +09003068config LOCKDEP_SUPPORT
3069 bool
3070 default y
3071
3072config STACKTRACE_SUPPORT
3073 bool
3074 default y
3075
Aaro Koskinene1e16112015-10-23 15:39:02 +03003076config HAVE_LATENCYTOP_SUPPORT
3077 bool
3078 default y
3079
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003080config PGTABLE_LEVELS
3081 int
Alex Belits3377e222017-02-16 17:27:34 -08003082 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003083 default 3 if 64BIT && !PAGE_SIZE_64KB
3084 default 2
3085
Paul Burton6c359eb2018-07-27 18:23:20 -07003086config MIPS_AUTO_PFN_OFFSET
3087 bool
3088
Linus Torvalds1da177e2005-04-16 15:20:36 -07003089menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3090
Paul Burtonc5611df2016-10-05 18:18:12 +01003091config PCI_DRIVERS_GENERIC
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003092 select PCI_DOMAINS_GENERIC if PCI
Paul Burtonc5611df2016-10-05 18:18:12 +01003093 bool
3094
3095config PCI_DRIVERS_LEGACY
3096 def_bool !PCI_DRIVERS_GENERIC
3097 select NO_GENERIC_PCI_IOPORT_MAP
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003098 select PCI_DOMAINS if PCI
Linus Torvalds1da177e2005-04-16 15:20:36 -07003099
3100#
3101# ISA support is now enabled via select. Too many systems still have the one
3102# or other ISA chip on the board that users don't know about so don't expect
3103# users to choose the right thing ...
3104#
3105config ISA
3106 bool
3107
Linus Torvalds1da177e2005-04-16 15:20:36 -07003108config TC
3109 bool "TURBOchannel support"
3110 depends on MACH_DECSTATION
3111 help
Justin P. Mattock50a23e62010-10-16 10:36:23 -07003112 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3113 processors. TURBOchannel programming specifications are available
3114 at:
3115 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3116 and:
3117 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3118 Linux driver support status is documented at:
3119 <http://www.linux-mips.org/wiki/DECstation>
Linus Torvalds1da177e2005-04-16 15:20:36 -07003120
Linus Torvalds1da177e2005-04-16 15:20:36 -07003121config MMU
3122 bool
3123 default y
3124
Matt Redfearn109c32f2016-11-24 17:32:45 +00003125config ARCH_MMAP_RND_BITS_MIN
3126 default 12 if 64BIT
3127 default 8
3128
3129config ARCH_MMAP_RND_BITS_MAX
3130 default 18 if 64BIT
3131 default 15
3132
3133config ARCH_MMAP_RND_COMPAT_BITS_MIN
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003134 default 8
Matt Redfearn109c32f2016-11-24 17:32:45 +00003135
3136config ARCH_MMAP_RND_COMPAT_BITS_MAX
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003137 default 15
Matt Redfearn109c32f2016-11-24 17:32:45 +00003138
Ralf Baechled865bea2007-10-11 23:46:10 +01003139config I8253
3140 bool
Russell King798778b2011-05-08 19:03:03 +01003141 select CLKSRC_I8253
Thomas Gleixner2d026122011-06-09 13:08:27 +00003142 select CLKEVT_I8253
Wu Zhangjin9726b432009-11-17 01:32:58 +08003143 select MIPS_EXTERNAL_TIMER
Ralf Baechled865bea2007-10-11 23:46:10 +01003144
Ralf Baechlee05eb3f2013-06-12 10:54:11 +02003145config ZONE_DMA
3146 bool
3147
Ralf Baechlecce335a2007-11-03 02:05:43 +00003148config ZONE_DMA32
3149 bool
3150
Linus Torvalds1da177e2005-04-16 15:20:36 -07003151endmenu
3152
Linus Torvalds1da177e2005-04-16 15:20:36 -07003153config TRAD_SIGNALS
3154 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003155
Linus Torvalds1da177e2005-04-16 15:20:36 -07003156config MIPS32_COMPAT
Ralf Baechle78aaf952014-12-19 01:18:03 +01003157 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003158
3159config COMPAT
3160 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003161
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003162config SYSVIPC_COMPAT
3163 bool
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003164
Linus Torvalds1da177e2005-04-16 15:20:36 -07003165config MIPS32_O32
3166 bool "Kernel support for o32 binaries"
Ralf Baechle78aaf952014-12-19 01:18:03 +01003167 depends on 64BIT
3168 select ARCH_WANT_OLD_COMPAT_IPC
3169 select COMPAT
3170 select MIPS32_COMPAT
3171 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003172 help
3173 Select this option if you want to run o32 binaries. These are pure
3174 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
3175 existing binaries are in this format.
3176
3177 If unsure, say Y.
3178
3179config MIPS32_N32
3180 bool "Kernel support for n32 binaries"
Ralf Baechlec22eacf2015-01-03 12:10:23 +01003181 depends on 64BIT
Arnd Bergmann5a9372f2019-01-10 17:24:31 +01003182 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
Ralf Baechle78aaf952014-12-19 01:18:03 +01003183 select COMPAT
3184 select MIPS32_COMPAT
3185 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003186 help
3187 Select this option if you want to run n32 binaries. These are
3188 64-bit binaries using 32-bit quantities for addressing and certain
3189 data that would normally be 64-bit. They are used in special
3190 cases.
3191
3192 If unsure, say N.
3193
3194config BINFMT_ELF32
3195 bool
3196 default y if MIPS32_O32 || MIPS32_N32
Ralf Baechlef43edca2016-05-23 16:22:26 -07003197 select ELFCORE
Linus Torvalds1da177e2005-04-16 15:20:36 -07003198
Ralf Baechle21162452007-02-09 17:08:58 +00003199menu "Power management options"
Rodolfo Giometti952fa952006-06-05 17:43:10 +02003200
Wu Zhangjin363c55c2009-06-04 20:27:10 +08003201config ARCH_HIBERNATION_POSSIBLE
3202 def_bool y
Ralf Baechle3f5b3e12009-07-02 11:48:07 +01003203 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
Wu Zhangjin363c55c2009-06-04 20:27:10 +08003204
Johannes Bergf4cb5702007-12-08 02:14:00 +01003205config ARCH_SUSPEND_POSSIBLE
3206 def_bool y
Ralf Baechle3f5b3e12009-07-02 11:48:07 +01003207 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
Johannes Bergf4cb5702007-12-08 02:14:00 +01003208
Ralf Baechle21162452007-02-09 17:08:58 +00003209source "kernel/power/Kconfig"
Rodolfo Giometti952fa952006-06-05 17:43:10 +02003210
Linus Torvalds1da177e2005-04-16 15:20:36 -07003211endmenu
3212
Viresh Kumar7a998932013-04-04 12:54:21 +00003213config MIPS_EXTERNAL_TIMER
3214 bool
3215
Viresh Kumar7a998932013-04-04 12:54:21 +00003216menu "CPU Power Management"
Paul Burtonc095eba2014-04-14 16:24:22 +01003217
3218if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
Viresh Kumar7a998932013-04-04 12:54:21 +00003219source "drivers/cpufreq/Kconfig"
Viresh Kumar7a998932013-04-04 12:54:21 +00003220endif
Wu Zhangjin9726b432009-11-17 01:32:58 +08003221
Paul Burtonc095eba2014-04-14 16:24:22 +01003222source "drivers/cpuidle/Kconfig"
3223
3224endmenu
3225
Ralf Baechle98cdee02012-11-15 10:35:42 +01003226source "drivers/firmware/Kconfig"
3227
Sanjay Lal2235a542012-11-21 18:33:59 -08003228source "arch/mips/kvm/Kconfig"