blob: 32df972feded74622e55a72ac667923d8bdcd0ef [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
Alexander Lobakin34c01e42020-01-22 13:58:51 +03007 select ARCH_HAS_FORTIFY_SOURCE
8 select ARCH_HAS_KCOV
9 select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
Matt Redfearn12597982017-05-15 10:46:35 +010010 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
Hassan Naveed1e359182018-11-19 16:49:37 -080011 select ARCH_HAS_UBSAN_SANITIZE_ALL
Xingxing Su8b3165e2020-12-03 15:22:51 +080012 select ARCH_HAS_GCOV_PROFILE_ALL
Tiezhu Yanga8c0f1c2020-12-07 20:21:42 +080013 select ARCH_KEEP_MEMBLOCK if DEBUG_KERNEL
Matt Redfearn12597982017-05-15 10:46:35 +010014 select ARCH_SUPPORTS_UPROBES
Ralf Baechle1ee36302015-09-29 12:19:48 +020015 select ARCH_USE_BUILTIN_BSWAP
Matt Redfearn12597982017-05-15 10:46:35 +010016 select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
Paul Burton25da4e92017-06-09 17:26:42 -070017 select ARCH_USE_QUEUED_RWLOCKS
Paul Burton0b17c962017-06-09 17:26:43 -070018 select ARCH_USE_QUEUED_SPINLOCKS
Alexandre Ghiti9035bd22019-09-23 15:39:18 -070019 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
Matt Redfearn12597982017-05-15 10:46:35 +010020 select ARCH_WANT_IPC_PARSE_VERSION
Alexander Lobakind3a4e0f2021-01-10 11:57:01 +000021 select ARCH_WANT_LD_ORPHAN_WARN
Shile Zhang10916702019-12-04 08:46:31 +080022 select BUILDTIME_TABLE_SORT
Matt Redfearn12597982017-05-15 10:46:35 +010023 select CLONE_BACKWARDS
Paul Burton57eeaced2018-11-08 23:44:55 +000024 select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
Matt Redfearn12597982017-05-15 10:46:35 +010025 select CPU_PM if CPU_IDLE
26 select GENERIC_ATOMIC64 if !64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010027 select GENERIC_CMOS_UPDATE
28 select GENERIC_CPU_AUTOPROBE
Vincenzo Frascino24640f22019-06-21 10:52:46 +010029 select GENERIC_GETTIMEOFDAY
Paul Burtonb962aeb2018-08-29 14:54:00 -070030 select GENERIC_IOMAP
Matt Redfearn12597982017-05-15 10:46:35 +010031 select GENERIC_IRQ_PROBE
32 select GENERIC_IRQ_SHOW
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010033 select GENERIC_ISA_DMA if EISA
Antony Pavlov740129b2018-04-11 08:50:19 +010034 select GENERIC_LIB_ASHLDI3
35 select GENERIC_LIB_ASHRDI3
36 select GENERIC_LIB_CMPDI2
37 select GENERIC_LIB_LSHRDI3
38 select GENERIC_LIB_UCMPDI2
Matt Redfearn12597982017-05-15 10:46:35 +010039 select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
40 select GENERIC_SMP_IDLE_THREAD
41 select GENERIC_TIME_VSYSCALL
Christoph Hellwig446f0622019-07-11 20:56:52 -070042 select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010043 select HANDLE_DOMAIN_IRQ
Paul Burton906d4412018-08-20 15:36:18 -070044 select HAVE_ARCH_COMPILER_H
Matt Redfearn12597982017-05-15 10:46:35 +010045 select HAVE_ARCH_JUMP_LABEL
Jason Wessel88547002008-07-29 15:58:53 -050046 select HAVE_ARCH_KGDB
Matt Redfearn109c32f2016-11-24 17:32:45 +000047 select HAVE_ARCH_MMAP_RND_BITS if MMU
48 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
Markos Chandras490b0042014-01-22 14:40:04 +000049 select HAVE_ARCH_SECCOMP_FILTER
Ralf Baechlec0ff3c52012-08-17 08:22:04 +020050 select HAVE_ARCH_TRACEHOOK
Daniel Silsby45e03e62019-07-15 17:40:01 -040051 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
Masahiro Yamada2ff2b7e2019-08-19 14:54:20 +090052 select HAVE_ASM_MODVERSIONS
Paul Burton36366e32019-12-05 10:23:18 -080053 select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
Matt Redfearn12597982017-05-15 10:46:35 +010054 select HAVE_CONTEXT_TRACKING
Frederic Weisbecker490f5612020-01-27 16:41:52 +010055 select HAVE_TIF_NOHZ
Wu Zhangjin64575f92010-10-27 18:59:09 +080056 select HAVE_C_RECORDMCOUNT
Matt Redfearn12597982017-05-15 10:46:35 +010057 select HAVE_DEBUG_KMEMLEAK
58 select HAVE_DEBUG_STACKOVERFLOW
Matt Redfearn12597982017-05-15 10:46:35 +010059 select HAVE_DMA_CONTIGUOUS
60 select HAVE_DYNAMIC_FTRACE
Alexander Lobakin34c01e42020-01-22 13:58:51 +030061 select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
Matt Redfearn12597982017-05-15 10:46:35 +010062 select HAVE_EXIT_THREAD
Christoph Hellwig67a929e2019-07-11 20:57:14 -070063 select HAVE_FAST_GUP
Matt Redfearn12597982017-05-15 10:46:35 +010064 select HAVE_FTRACE_MCOUNT_RECORD
Wu Zhangjin29c5d342009-11-20 20:34:34 +080065 select HAVE_FUNCTION_GRAPH_TRACER
Matt Redfearn12597982017-05-15 10:46:35 +010066 select HAVE_FUNCTION_TRACER
Alexander Lobakin34c01e42020-01-22 13:58:51 +030067 select HAVE_GCC_PLUGINS
68 select HAVE_GENERIC_VDSO
Matt Redfearn12597982017-05-15 10:46:35 +010069 select HAVE_IDE
Hassan Naveedb3a428b2018-10-29 18:27:41 -070070 select HAVE_IOREMAP_PROT
Matt Redfearn12597982017-05-15 10:46:35 +010071 select HAVE_IRQ_EXIT_ON_IRQ_STACK
72 select HAVE_IRQ_TIME_ACCOUNTING
David Daneyc1bf2072010-08-03 11:22:20 -070073 select HAVE_KPROBES
74 select HAVE_KRETPROBES
Paul Burtonc0436b52018-11-21 21:56:36 +000075 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
David Howells786d35d2012-09-28 14:31:03 +093076 select HAVE_MOD_ARCH_SPECIFIC
Petr Mladek42a0bb32016-05-20 17:00:33 -070077 select HAVE_NMI
Matt Redfearn12597982017-05-15 10:46:35 +010078 select HAVE_OPROFILE
79 select HAVE_PERF_EVENTS
Marcin Nowakowski08bccf42016-09-02 10:13:21 +020080 select HAVE_REGS_AND_STACK_ACCESS_API
Paul Burton9ea141a2018-06-14 10:13:53 -070081 select HAVE_RSEQ
Hassan Naveed16c0f032019-11-15 23:44:49 +000082 select HAVE_SPARSE_SYSCALL_NR
Masahiro Yamadad148eac2018-06-14 19:36:45 +090083 select HAVE_STACKPROTECTOR
Matt Redfearn12597982017-05-15 10:46:35 +010084 select HAVE_SYSCALL_TRACEPOINTS
Ben Hutchingsa3f14312017-10-04 03:46:14 +010085 select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
Matt Redfearn12597982017-05-15 10:46:35 +010086 select IRQ_FORCED_THREADING
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010087 select ISA if EISA
Matt Redfearn12597982017-05-15 10:46:35 +010088 select MODULES_USE_ELF_REL if MODULES
Alexander Lobakin34c01e42020-01-22 13:58:51 +030089 select MODULES_USE_ELF_RELA if MODULES && 64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010090 select PERF_USE_VMALLOC
Thomas Gleixner981aa1d2020-09-28 12:13:07 +020091 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
Arnd Bergmann05a0a342018-08-28 16:26:30 +020092 select RTC_LIB
Christoph Hellwig5e6e9852020-09-03 16:22:35 +020093 select SET_FS
Matt Redfearn12597982017-05-15 10:46:35 +010094 select SYSCTL_EXCEPTION_TRACE
95 select VIRT_TO_BUS
Linus Torvalds1da177e2005-04-16 15:20:36 -070096
Christoph Hellwigd3991572020-04-16 17:00:07 +020097config MIPS_FIXUP_BIGPHYS_ADDR
98 bool
99
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200100config MIPS_GENERIC
101 bool
102
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200103config MACH_INGENIC
104 bool
105 select SYS_SUPPORTS_32BIT_KERNEL
106 select SYS_SUPPORTS_LITTLE_ENDIAN
107 select SYS_SUPPORTS_ZBOOT
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200108 select DMA_NONCOHERENT
109 select IRQ_MIPS_CPU
110 select PINCTRL
111 select GPIOLIB
112 select COMMON_CLK
113 select GENERIC_IRQ_CHIP
114 select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
115 select USE_OF
116 select CPU_SUPPORTS_CPUFREQ
117 select MIPS_EXTERNAL_TIMER
118
Linus Torvalds1da177e2005-04-16 15:20:36 -0700119menu "Machine selection"
120
Ralf Baechle5e83d432005-10-29 19:32:41 +0100121choice
122 prompt "System type"
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200123 default MIPS_GENERIC_KERNEL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200125config MIPS_GENERIC_KERNEL
Paul Burtoneed0eab2016-10-05 18:18:20 +0100126 bool "Generic board-agnostic MIPS kernel"
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200127 select MIPS_GENERIC
Paul Burtoneed0eab2016-10-05 18:18:20 +0100128 select BOOT_RAW
129 select BUILTIN_DTB
130 select CEVT_R4K
131 select CLKSRC_MIPS_GIC
132 select COMMON_CLK
Paul Burtoneed0eab2016-10-05 18:18:20 +0100133 select CPU_MIPSR2_IRQ_EI
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300134 select CPU_MIPSR2_IRQ_VI
Paul Burtoneed0eab2016-10-05 18:18:20 +0100135 select CSRC_R4K
136 select DMA_PERDEV_COHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100137 select HAVE_PCI
Paul Burtoneed0eab2016-10-05 18:18:20 +0100138 select IRQ_MIPS_CPU
Paul Burton0211d492018-07-27 18:23:21 -0700139 select MIPS_AUTO_PFN_OFFSET
Paul Burtoneed0eab2016-10-05 18:18:20 +0100140 select MIPS_CPU_SCACHE
141 select MIPS_GIC
142 select MIPS_L1_CACHE_SHIFT_7
143 select NO_EXCEPT_FILL
144 select PCI_DRIVERS_GENERIC
Paul Burtoneed0eab2016-10-05 18:18:20 +0100145 select SMP_UP if SMP
Matt Redfearna3078e52017-01-23 14:08:13 +0000146 select SWAP_IO_SPACE
Paul Burtoneed0eab2016-10-05 18:18:20 +0100147 select SYS_HAS_CPU_MIPS32_R1
148 select SYS_HAS_CPU_MIPS32_R2
149 select SYS_HAS_CPU_MIPS32_R6
150 select SYS_HAS_CPU_MIPS64_R1
151 select SYS_HAS_CPU_MIPS64_R2
152 select SYS_HAS_CPU_MIPS64_R6
153 select SYS_SUPPORTS_32BIT_KERNEL
154 select SYS_SUPPORTS_64BIT_KERNEL
155 select SYS_SUPPORTS_BIG_ENDIAN
156 select SYS_SUPPORTS_HIGHMEM
157 select SYS_SUPPORTS_LITTLE_ENDIAN
158 select SYS_SUPPORTS_MICROMIPS
Paul Burtoneed0eab2016-10-05 18:18:20 +0100159 select SYS_SUPPORTS_MIPS16
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300160 select SYS_SUPPORTS_MIPS_CPS
Paul Burtoneed0eab2016-10-05 18:18:20 +0100161 select SYS_SUPPORTS_MULTITHREADING
162 select SYS_SUPPORTS_RELOCATABLE
163 select SYS_SUPPORTS_SMARTMIPS
Paul Cercueilc3e2ee62020-09-06 21:29:29 +0200164 select SYS_SUPPORTS_ZBOOT
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300165 select UHI_BOOT
Corentin Labbe2e6522c2018-01-17 19:56:38 +0100166 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
167 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
168 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
169 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
170 select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
171 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Paul Burtoneed0eab2016-10-05 18:18:20 +0100172 select USE_OF
173 help
174 Select this to build a kernel which aims to support multiple boards,
175 generally using a flattened device tree passed from the bootloader
176 using the boot protocol defined in the UHI (Unified Hosting
177 Interface) specification.
178
Manuel Lauss42a4f172010-07-15 21:45:04 +0200179config MIPS_ALCHEMY
Yoichi Yuasac3543e22007-05-11 20:44:30 +0900180 bool "Alchemy processor based machines"
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200181 select PHYS_ADDR_T_64BIT
Ralf Baechlef772cdb2012-11-30 17:27:27 +0100182 select CEVT_R4K
Steven J. Hilld7ea3352012-11-14 23:34:17 -0600183 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200184 select IRQ_MIPS_CPU
Manuel Lauss88e9a932014-02-20 14:59:23 +0100185 select DMA_MAYBE_COHERENT # Au1000,1500,1100 aren't, rest is
Christoph Hellwigd3991572020-04-16 17:00:07 +0200186 select MIPS_FIXUP_BIGPHYS_ADDR if PCI
Manuel Lauss42a4f172010-07-15 21:45:04 +0200187 select SYS_HAS_CPU_MIPS32_R1
188 select SYS_SUPPORTS_32BIT_KERNEL
189 select SYS_SUPPORTS_APM_EMULATION
Linus Walleijd30a2b42016-04-19 11:23:22 +0200190 select GPIOLIB
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800191 select SYS_SUPPORTS_ZBOOT
Manuel Lauss47440222014-07-23 16:36:48 +0200192 select COMMON_CLK
Linus Torvalds1da177e2005-04-16 15:20:36 -0700193
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200194config AR7
195 bool "Texas Instruments AR7"
196 select BOOT_ELF32
197 select DMA_NONCOHERENT
198 select CEVT_R4K
199 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200200 select IRQ_MIPS_CPU
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200201 select NO_EXCEPT_FILL
202 select SWAP_IO_SPACE
203 select SYS_HAS_CPU_MIPS32_R1
204 select SYS_HAS_EARLY_PRINTK
205 select SYS_SUPPORTS_32BIT_KERNEL
206 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200207 select SYS_SUPPORTS_MIPS16
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800208 select SYS_SUPPORTS_ZBOOT_UART16550
Linus Walleijd30a2b42016-04-19 11:23:22 +0200209 select GPIOLIB
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200210 select VLYNQ
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700211 select HAVE_LEGACY_CLK
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200212 help
213 Support for the Texas Instruments AR7 System-on-a-Chip
214 family: TNETD7100, 7200 and 7300.
215
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400216config ATH25
217 bool "Atheros AR231x/AR531x SoC support"
218 select CEVT_R4K
219 select CSRC_R4K
220 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200221 select IRQ_MIPS_CPU
Sergey Ryazanov1753e742014-10-29 03:18:41 +0400222 select IRQ_DOMAIN
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400223 select SYS_HAS_CPU_MIPS32_R1
224 select SYS_SUPPORTS_BIG_ENDIAN
225 select SYS_SUPPORTS_32BIT_KERNEL
Sergey Ryazanov8aaa7272014-10-29 03:18:42 +0400226 select SYS_HAS_EARLY_PRINTK
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400227 help
228 Support for Atheros AR231x and Atheros AR531x based boards
229
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100230config ATH79
231 bool "Atheros AR71XX/AR724X/AR913X based boards"
Alban Bedelff591a92015-08-03 19:23:52 +0200232 select ARCH_HAS_RESET_CONTROLLER
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100233 select BOOT_RAW
234 select CEVT_R4K
235 select CSRC_R4K
236 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200237 select GPIOLIB
John Crispina08227a2018-07-20 13:58:20 +0200238 select PINCTRL
Alban Bedel411520a2015-04-19 14:30:04 +0200239 select COMMON_CLK
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200240 select IRQ_MIPS_CPU
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100241 select SYS_HAS_CPU_MIPS32_R2
242 select SYS_HAS_EARLY_PRINTK
243 select SYS_SUPPORTS_32BIT_KERNEL
244 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200245 select SYS_SUPPORTS_MIPS16
Alban Bedelb3f0a252016-01-26 09:38:29 +0100246 select SYS_SUPPORTS_ZBOOT_UART_PROM
Alban Bedel03c8c402015-05-31 01:52:25 +0200247 select USE_OF
Alban Bedel53d473f2018-03-24 23:47:22 +0100248 select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100249 help
250 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
251
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800252config BMIPS_GENERIC
253 bool "Broadcom Generic BMIPS kernel"
Álvaro Fernández Rojas29906e12020-06-17 12:50:33 +0200254 select ARCH_HAS_RESET_CONTROLLER
Christoph Hellwigd59098a2018-06-15 13:08:52 +0200255 select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
256 select ARCH_HAS_PHYS_TO_DMA
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700257 select BOOT_RAW
258 select NO_EXCEPT_FILL
259 select USE_OF
260 select CEVT_R4K
261 select CSRC_R4K
262 select SYNC_R4K
263 select COMMON_CLK
Simon Arlottc7c42ec2015-11-22 14:30:14 +0000264 select BCM6345_L1_IRQ
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800265 select BCM7038_L1_IRQ
266 select BCM7120_L2_IRQ
267 select BRCMSTB_L2_IRQ
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200268 select IRQ_MIPS_CPU
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800269 select DMA_NONCOHERENT
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700270 select SYS_SUPPORTS_32BIT_KERNEL
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800271 select SYS_SUPPORTS_LITTLE_ENDIAN
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700272 select SYS_SUPPORTS_BIG_ENDIAN
273 select SYS_SUPPORTS_HIGHMEM
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800274 select SYS_HAS_CPU_BMIPS32_3300
275 select SYS_HAS_CPU_BMIPS4350
276 select SYS_HAS_CPU_BMIPS4380
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700277 select SYS_HAS_CPU_BMIPS5000
278 select SWAP_IO_SPACE
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800279 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
280 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
281 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
282 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Justin Chen4dc47042017-05-24 10:55:16 -0700283 select HARDIRQS_SW_RESEND
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700284 help
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800285 Build a generic DT-based kernel image that boots on select
286 BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
287 box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
288 must be set appropriately for your board.
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700289
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200290config BCM47XX
Florian Fainellic6193662010-03-25 11:42:41 +0100291 bool "Broadcom BCM47XX based boards"
Hauke Mehrtensfe08f8c2012-12-26 20:06:17 +0000292 select BOOT_RAW
Ralf Baechle42f77542007-10-18 17:48:11 +0100293 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000294 select CSRC_R4K
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200295 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100296 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200297 select IRQ_MIPS_CPU
Markos Chandras314878d2013-07-23 15:40:37 +0100298 select SYS_HAS_CPU_MIPS32_R1
Hauke Mehrtensdd54ded2012-12-26 20:06:18 +0000299 select NO_EXCEPT_FILL
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200300 select SYS_SUPPORTS_32BIT_KERNEL
301 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200302 select SYS_SUPPORTS_MIPS16
Aaro Koskinen65078312018-01-17 00:21:44 +0200303 select SYS_SUPPORTS_ZBOOT
Aurelien Jarno25e5fb92007-09-25 15:41:24 +0200304 select SYS_HAS_EARLY_PRINTK
Ralf Baechlee6086552014-03-26 21:40:25 +0100305 select USE_GENERIC_EARLY_PRINTK_8250
Rafał Miłeckic949c0b2014-06-17 16:36:50 +0200306 select GPIOLIB
307 select LEDS_GPIO_REGISTER
Rafał Miłeckif6e734a2015-06-10 23:05:08 +0200308 select BCM47XX_NVRAM
Rafał Miłecki2ab71a02016-01-25 09:50:29 +0100309 select BCM47XX_SPROM
Matt Redfearndfe00492017-11-14 17:16:27 +0000310 select BCM47XX_SSB if !BCM47XX_BCMA
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200311 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100312 Support for BCM47XX based boards
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200313
Maxime Bizone7300d02009-08-18 13:23:37 +0100314config BCM63XX
315 bool "Broadcom BCM63XX based boards"
Florian Fainelliae8de612013-06-18 16:55:39 +0000316 select BOOT_RAW
Maxime Bizone7300d02009-08-18 13:23:37 +0100317 select CEVT_R4K
318 select CSRC_R4K
Jonas Gorskifc264022014-07-08 16:26:13 +0200319 select SYNC_R4K
Maxime Bizone7300d02009-08-18 13:23:37 +0100320 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200321 select IRQ_MIPS_CPU
Maxime Bizone7300d02009-08-18 13:23:37 +0100322 select SYS_SUPPORTS_32BIT_KERNEL
323 select SYS_SUPPORTS_BIG_ENDIAN
324 select SYS_HAS_EARLY_PRINTK
325 select SWAP_IO_SPACE
Linus Walleijd30a2b42016-04-19 11:23:22 +0200326 select GPIOLIB
Florian Fainelliaf2418b2014-01-14 09:54:40 -0800327 select MIPS_L1_CACHE_SHIFT_4
Jonas Gorskic5af3c22017-09-20 13:14:01 +0200328 select CLKDEV_LOOKUP
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700329 select HAVE_LEGACY_CLK
Maxime Bizone7300d02009-08-18 13:23:37 +0100330 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100331 Support for BCM63XX based boards
Maxime Bizone7300d02009-08-18 13:23:37 +0100332
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333config MIPS_COBALT
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200334 bool "Cobalt Server"
Ralf Baechle42f77542007-10-18 17:48:11 +0100335 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000336 select CSRC_R4K
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +0900337 select CEVT_GT641XX
Linus Torvalds1da177e2005-04-16 15:20:36 -0700338 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100339 select FORCE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100340 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700341 select I8259
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200342 select IRQ_MIPS_CPU
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +0900343 select IRQ_GT641XX
Yoichi Yuasa252161e2007-03-14 21:51:26 +0900344 select PCI_GT64XXX_PCI0
Ralf Baechle7cf80532005-10-20 22:33:09 +0100345 select SYS_HAS_CPU_NEVADA
Yoichi Yuasa0a22e0d2007-03-02 12:42:33 +0900346 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700347 select SYS_SUPPORTS_32BIT_KERNEL
Florian Fainelli0e8774b2008-01-15 19:42:57 +0100348 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100349 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlee6086552014-03-26 21:40:25 +0100350 select USE_GENERIC_EARLY_PRINTK_8250
Linus Torvalds1da177e2005-04-16 15:20:36 -0700351
352config MACH_DECSTATION
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200353 bool "DECstations"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700354 select BOOT_ELF32
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +0900355 select CEVT_DS1287
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100356 select CEVT_R4K if CPU_R4X00
Yoichi Yuasa42474172008-04-24 09:48:40 +0900357 select CSRC_IOASIC
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100358 select CSRC_R4K if CPU_R4X00
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +0100359 select CPU_DADDI_WORKAROUNDS if 64BIT
360 select CPU_R4000_WORKAROUNDS if 64BIT
361 select CPU_R4400_WORKAROUNDS if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700362 select DMA_NONCOHERENT
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700363 select NO_IOPORT_MAP
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200364 select IRQ_MIPS_CPU
Ralf Baechle7cf80532005-10-20 22:33:09 +0100365 select SYS_HAS_CPU_R3000
366 select SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700367 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800368 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100369 select SYS_SUPPORTS_LITTLE_ENDIAN
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900370 select SYS_SUPPORTS_128HZ
371 select SYS_SUPPORTS_256HZ
372 select SYS_SUPPORTS_1024HZ
Florian Fainelli930beb52014-01-14 09:54:38 -0800373 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle5e83d432005-10-29 19:32:41 +0100374 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375 This enables support for DEC's MIPS based workstations. For details
376 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
377 DECstation porting pages on <http://decstation.unix-ag.org/>.
378
379 If you have one of the following DECstation Models you definitely
380 want to choose R4xx0 for the CPU Type:
381
Ralf Baechle93088162007-08-29 14:21:45 +0100382 DECstation 5000/50
383 DECstation 5000/150
384 DECstation 5000/260
385 DECsystem 5900/260
Linus Torvalds1da177e2005-04-16 15:20:36 -0700386
387 otherwise choose R3000.
388
Ralf Baechle5e83d432005-10-29 19:32:41 +0100389config MACH_JAZZ
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200390 bool "Jazz family of machines"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200391 select ARC_MEMORY
392 select ARC_PROMLIB
Ralf Baechlea211a0822018-02-05 15:37:43 +0100393 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100394 select ARCH_MIGHT_HAVE_PC_SERIO
Christoph Hellwig2f9237d2020-07-08 09:30:00 +0200395 select DMA_OPS
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100396 select FW_ARC
397 select FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100398 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechle42f77542007-10-18 17:48:11 +0100399 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000400 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100401 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100402 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100403 select HAVE_PCSPKR_PLATFORM
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200404 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100405 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100406 select I8259
407 select ISA
Ralf Baechle7cf80532005-10-20 22:33:09 +0100408 select SYS_HAS_CPU_R4X00
Ralf Baechle5e83d432005-10-29 19:32:41 +0100409 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800410 select SYS_SUPPORTS_64BIT_KERNEL
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900411 select SYS_SUPPORTS_100HZ
Arnd Bergmannaadfe4b2021-01-22 12:02:50 +0100412 select SYS_SUPPORTS_LITTLE_ENDIAN
Linus Torvalds1da177e2005-04-16 15:20:36 -0700413 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100414 This a family of machines based on the MIPS R4030 chipset which was
415 used by several vendors to build RISC/os and Windows NT workstations.
416 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
417 Olivetti M700-10 workstations.
Ralf Baechle5e83d432005-10-29 19:32:41 +0100418
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200419config MACH_INGENIC_SOC
Paul Burtonde361e82015-05-24 16:11:13 +0100420 bool "Ingenic SoC based machines"
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200421 select MIPS_GENERIC
422 select MACH_INGENIC
Lluís Batlle i Rossellf9c9aff2012-03-30 16:48:05 +0200423 select SYS_SUPPORTS_ZBOOT_UART16550
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +0000424
John Crispin171bb2f2011-03-30 09:27:47 +0200425config LANTIQ
426 bool "Lantiq based platforms"
427 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200428 select IRQ_MIPS_CPU
John Crispin171bb2f2011-03-30 09:27:47 +0200429 select CEVT_R4K
430 select CSRC_R4K
431 select SYS_HAS_CPU_MIPS32_R1
432 select SYS_HAS_CPU_MIPS32_R2
433 select SYS_SUPPORTS_BIG_ENDIAN
434 select SYS_SUPPORTS_32BIT_KERNEL
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200435 select SYS_SUPPORTS_MIPS16
John Crispin171bb2f2011-03-30 09:27:47 +0200436 select SYS_SUPPORTS_MULTITHREADING
James Hoganf35764e2018-01-15 20:54:35 +0000437 select SYS_SUPPORTS_VPE_LOADER
John Crispin171bb2f2011-03-30 09:27:47 +0200438 select SYS_HAS_EARLY_PRINTK
Linus Walleijd30a2b42016-04-19 11:23:22 +0200439 select GPIOLIB
John Crispin171bb2f2011-03-30 09:27:47 +0200440 select SWAP_IO_SPACE
441 select BOOT_RAW
John Crispin287e3f32012-04-17 15:53:19 +0200442 select CLKDEV_LOOKUP
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700443 select HAVE_LEGACY_CLK
John Crispina0392222012-04-13 20:56:13 +0200444 select USE_OF
John Crispin3f8c50c2012-08-28 12:44:59 +0200445 select PINCTRL
446 select PINCTRL_LANTIQ
John Crispinc5307812013-09-03 13:18:12 +0200447 select ARCH_HAS_RESET_CONTROLLER
448 select RESET_CONTROLLER
John Crispin171bb2f2011-03-30 09:27:47 +0200449
Huacai Chen30ad29b2015-04-21 10:00:35 +0800450config MACH_LOONGSON32
Huacai Chencaed1d12019-11-04 14:11:21 +0800451 bool "Loongson 32-bit family of machines"
Wu Zhangjinc7e8c662010-01-04 17:16:46 +0800452 select SYS_SUPPORTS_ZBOOT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900453 help
Huacai Chen30ad29b2015-04-21 10:00:35 +0800454 This enables support for the Loongson-1 family of machines.
Wu Zhangjin85749d22009-07-02 23:26:45 +0800455
Huacai Chen30ad29b2015-04-21 10:00:35 +0800456 Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
457 the Institute of Computing Technology (ICT), Chinese Academy of
458 Sciences (CAS).
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900459
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800460config MACH_LOONGSON2EF
461 bool "Loongson-2E/F family of machines"
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200462 select SYS_SUPPORTS_ZBOOT
463 help
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800464 This enables the support of early Loongson-2E/F family of machines.
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200465
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800466config MACH_LOONGSON64
Huacai Chencaed1d12019-11-04 14:11:21 +0800467 bool "Loongson 64-bit family of machines"
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800468 select ARCH_SPARSEMEM_ENABLE
469 select ARCH_MIGHT_HAVE_PC_PARPORT
470 select ARCH_MIGHT_HAVE_PC_SERIO
471 select GENERIC_ISA_DMA_SUPPORT_BROKEN
472 select BOOT_ELF32
473 select BOARD_SCACHE
474 select CSRC_R4K
475 select CEVT_R4K
476 select CPU_HAS_WB
477 select FORCE_PCI
478 select ISA
479 select I8259
480 select IRQ_MIPS_CPU
Jiaxun Yang7d6d2832020-05-27 14:34:34 +0800481 select NO_EXCEPT_FILL
Tiezhu Yang5125bfe2020-03-31 15:00:06 +0800482 select NR_CPUS_DEFAULT_64
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800483 select USE_GENERIC_EARLY_PRINTK_8250
Jiaxun Yang6423e592020-05-26 17:21:16 +0800484 select PCI_DRIVERS_GENERIC
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800485 select SYS_HAS_CPU_LOONGSON64
486 select SYS_HAS_EARLY_PRINTK
487 select SYS_SUPPORTS_SMP
488 select SYS_SUPPORTS_HOTPLUG_CPU
489 select SYS_SUPPORTS_NUMA
490 select SYS_SUPPORTS_64BIT_KERNEL
491 select SYS_SUPPORTS_HIGHMEM
492 select SYS_SUPPORTS_LITTLE_ENDIAN
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800493 select SYS_SUPPORTS_ZBOOT
Jinyang Hea307a4c2020-11-25 18:07:46 +0800494 select SYS_SUPPORTS_RELOCATABLE
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800495 select ZONE_DMA32
Jiaxun Yang87fcfa72020-03-25 11:55:02 +0800496 select COMMON_CLK
497 select USE_OF
498 select BUILTIN_DTB
Huacai Chen39c14852020-07-29 14:58:37 +0800499 select PCI_HOST_GENERIC
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800500 help
Huacai Chencaed1d12019-11-04 14:11:21 +0800501 This enables the support of Loongson-2/3 family of machines.
502
503 Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
504 GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
505 and Loongson-2F which will be removed), developed by the Institute
506 of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200507
Andrew Bresticker6a438302015-03-16 14:43:10 -0700508config MACH_PISTACHIO
509 bool "IMG Pistachio SoC based boards"
Andrew Bresticker6a438302015-03-16 14:43:10 -0700510 select BOOT_ELF32
511 select BOOT_RAW
512 select CEVT_R4K
513 select CLKSRC_MIPS_GIC
514 select COMMON_CLK
515 select CSRC_R4K
Zubair Lutfullah Kakakhel645c7822016-06-03 09:35:00 +0100516 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200517 select GPIOLIB
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200518 select IRQ_MIPS_CPU
Andrew Bresticker6a438302015-03-16 14:43:10 -0700519 select MFD_SYSCON
520 select MIPS_CPU_SCACHE
521 select MIPS_GIC
522 select PINCTRL
523 select REGULATOR
524 select SYS_HAS_CPU_MIPS32_R2
525 select SYS_SUPPORTS_32BIT_KERNEL
526 select SYS_SUPPORTS_LITTLE_ENDIAN
527 select SYS_SUPPORTS_MIPS_CPS
528 select SYS_SUPPORTS_MULTITHREADING
Matt Redfearn41cc07b2016-05-25 12:58:40 +0100529 select SYS_SUPPORTS_RELOCATABLE
Andrew Bresticker6a438302015-03-16 14:43:10 -0700530 select SYS_SUPPORTS_ZBOOT
Ezequiel Garcia018f62e2015-04-28 19:08:35 -0300531 select SYS_HAS_EARLY_PRINTK
532 select USE_GENERIC_EARLY_PRINTK_8250
Andrew Bresticker6a438302015-03-16 14:43:10 -0700533 select USE_OF
534 help
535 This enables support for the IMG Pistachio SoC platform.
536
Linus Torvalds1da177e2005-04-16 15:20:36 -0700537config MIPS_MALTA
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200538 bool "MIPS Malta board"
Ralf Baechle61ed2422005-09-15 08:52:34 +0000539 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100540 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100541 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700542 select BOOT_ELF32
Ralf Baechlefa71c962008-01-29 10:15:00 +0000543 select BOOT_RAW
Paul Burtone8823d22015-05-22 16:51:02 +0100544 select BUILTIN_DTB
Ralf Baechle42f77542007-10-18 17:48:11 +0100545 select CEVT_R4K
Andrew Brestickerfa5635a2014-10-20 12:03:58 -0700546 select CLKSRC_MIPS_GIC
Guenter Roeck42b002a2015-08-22 02:40:41 -0700547 select COMMON_CLK
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200548 select CSRC_R4K
Felix Fietkau885014b2013-09-27 14:41:44 +0200549 select DMA_MAYBE_COHERENT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700550 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100551 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100552 select HAVE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100553 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700554 select I8259
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200555 select IRQ_MIPS_CPU
Ralf Baechle5e83d432005-10-29 19:32:41 +0100556 select MIPS_BONITO64
Chris Dearman9318c512006-06-20 17:15:20 +0100557 select MIPS_CPU_SCACHE
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200558 select MIPS_GIC
Kevin Cernekeea7ef1ea2014-10-20 21:27:57 -0700559 select MIPS_L1_CACHE_SHIFT_6
Ralf Baechle5e83d432005-10-29 19:32:41 +0100560 select MIPS_MSC
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200561 select PCI_GT64XXX_PCI0
Paul Burtonecafe3e2015-09-22 11:58:43 -0700562 select SMP_UP if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700563 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100564 select SYS_HAS_CPU_MIPS32_R1
565 select SYS_HAS_CPU_MIPS32_R2
Markos Chandrasbfc3c5a2014-01-16 13:12:36 +0000566 select SYS_HAS_CPU_MIPS32_R3_5
Steven J. Hillc5b36782015-02-26 18:16:38 -0600567 select SYS_HAS_CPU_MIPS32_R5
Markos Chandras575509b2014-11-19 11:31:56 +0000568 select SYS_HAS_CPU_MIPS32_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100569 select SYS_HAS_CPU_MIPS64_R1
Leonid Yegoshin5d9fbed2012-07-19 09:11:15 +0200570 select SYS_HAS_CPU_MIPS64_R2
Markos Chandras575509b2014-11-19 11:31:56 +0000571 select SYS_HAS_CPU_MIPS64_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100572 select SYS_HAS_CPU_NEVADA
573 select SYS_HAS_CPU_RM7000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700574 select SYS_SUPPORTS_32BIT_KERNEL
575 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100576 select SYS_SUPPORTS_BIG_ENDIAN
Steven J. Hillc5b36782015-02-26 18:16:38 -0600577 select SYS_SUPPORTS_HIGHMEM
Ralf Baechle5e83d432005-10-29 19:32:41 +0100578 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki424ebcd2014-11-15 22:07:07 +0000579 select SYS_SUPPORTS_MICROMIPS
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200580 select SYS_SUPPORTS_MIPS16
Tim Anderson03650702009-06-17 16:22:53 -0700581 select SYS_SUPPORTS_MIPS_CMP
Paul Burtone56b6aa2014-01-15 10:31:56 +0000582 select SYS_SUPPORTS_MIPS_CPS
Ralf Baechlef41ae0b2006-06-05 17:24:46 +0100583 select SYS_SUPPORTS_MULTITHREADING
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200584 select SYS_SUPPORTS_RELOCATABLE
Franck Bui-Huu9693a852007-02-02 17:41:47 +0100585 select SYS_SUPPORTS_SMARTMIPS
James Hoganf35764e2018-01-15 20:54:35 +0000586 select SYS_SUPPORTS_VPE_LOADER
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800587 select SYS_SUPPORTS_ZBOOT
Paul Burtone8823d22015-05-22 16:51:02 +0100588 select USE_OF
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +0200589 select WAR_ICACHE_REFILLS
James Hoganabcc82b2015-04-27 15:07:19 +0100590 select ZONE_DMA32 if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700591 help
Maciej W. Rozyckif638d192005-02-02 22:23:46 +0000592 This enables support for the MIPS Technologies Malta evaluation
Linus Torvalds1da177e2005-04-16 15:20:36 -0700593 board.
594
Joshua Henderson2572f002016-01-13 18:15:39 -0700595config MACH_PIC32
596 bool "Microchip PIC32 Family"
597 help
598 This enables support for the Microchip PIC32 family of platforms.
599
600 Microchip PIC32 is a family of general-purpose 32 bit MIPS core
601 microcontrollers.
602
Ralf Baechle5e83d432005-10-29 19:32:41 +0100603config MACH_VR41XX
Yoichi Yuasa74142d62007-04-26 19:45:09 +0900604 bool "NEC VR4100 series based machines"
Ralf Baechle42f77542007-10-18 17:48:11 +0100605 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000606 select CSRC_R4K
Ralf Baechle7cf80532005-10-20 22:33:09 +0100607 select SYS_HAS_CPU_VR41XX
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200608 select SYS_SUPPORTS_MIPS16
Linus Walleijd30a2b42016-04-19 11:23:22 +0200609 select GPIOLIB
Ralf Baechle5e83d432005-10-29 19:32:41 +0100610
Lauri Kasanenbaec9702021-01-13 17:11:23 +0200611config MACH_NINTENDO64
612 bool "Nintendo 64 console"
613 select CEVT_R4K
614 select CSRC_R4K
615 select SYS_HAS_CPU_R4300
616 select SYS_SUPPORTS_BIG_ENDIAN
617 select SYS_SUPPORTS_ZBOOT
618 select SYS_SUPPORTS_32BIT_KERNEL
619 select SYS_SUPPORTS_64BIT_KERNEL
620 select DMA_NONCOHERENT
621 select IRQ_MIPS_CPU
622
John Crispinae2b5bb2013-01-20 22:05:30 +0100623config RALINK
624 bool "Ralink based machines"
625 select CEVT_R4K
626 select CSRC_R4K
627 select BOOT_RAW
628 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200629 select IRQ_MIPS_CPU
John Crispinae2b5bb2013-01-20 22:05:30 +0100630 select USE_OF
631 select SYS_HAS_CPU_MIPS32_R1
632 select SYS_HAS_CPU_MIPS32_R2
633 select SYS_SUPPORTS_32BIT_KERNEL
634 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200635 select SYS_SUPPORTS_MIPS16
Chuanhong Guo1f0400d2020-10-13 10:05:47 +0800636 select SYS_SUPPORTS_ZBOOT
John Crispinae2b5bb2013-01-20 22:05:30 +0100637 select SYS_HAS_EARLY_PRINTK
John Crispinae2b5bb2013-01-20 22:05:30 +0100638 select CLKDEV_LOOKUP
John Crispin2a153f12013-09-04 00:16:59 +0200639 select ARCH_HAS_RESET_CONTROLLER
640 select RESET_CONTROLLER
John Crispinae2b5bb2013-01-20 22:05:30 +0100641
Linus Torvalds1da177e2005-04-16 15:20:36 -0700642config SGI_IP22
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200643 bool "SGI IP22 (Indy/Indigo2)"
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200644 select ARC_MEMORY
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200645 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100646 select FW_ARC
647 select FW_ARC32
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100648 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700649 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100650 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000651 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100652 select DEFAULT_SGI_PARTITION
Linus Torvalds1da177e2005-04-16 15:20:36 -0700653 select DMA_NONCOHERENT
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100654 select HAVE_EISA
Ralf Baechled865bea2007-10-11 23:46:10 +0100655 select I8253
Thomas Bogendoerfer68de4802007-11-23 20:34:16 +0100656 select I8259
Linus Torvalds1da177e2005-04-16 15:20:36 -0700657 select IP22_CPU_SCACHE
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200658 select IRQ_MIPS_CPU
Ralf Baechleaa414df2006-11-30 01:14:51 +0000659 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100660 select SGI_HAS_I8042
661 select SGI_HAS_INDYDOG
Thomas Bogendoerfer36e5c212008-07-16 14:06:15 +0200662 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100663 select SGI_HAS_SEEQ
664 select SGI_HAS_WD93
665 select SGI_HAS_ZILOG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700666 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100667 select SYS_HAS_CPU_R4X00
668 select SYS_HAS_CPU_R5000
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200669 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700670 select SYS_SUPPORTS_32BIT_KERNEL
671 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100672 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer802b83622020-08-24 18:32:43 +0200673 select WAR_R4600_V1_INDEX_ICACHEOP
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +0200674 select WAR_R4600_V1_HIT_CACHEOP
Thomas Bogendoerfer44def342020-08-24 18:32:45 +0200675 select WAR_R4600_V2_HIT_CACHEOP
Florian Fainelli930beb52014-01-14 09:54:38 -0800676 select MIPS_L1_CACHE_SHIFT_7
Linus Torvalds1da177e2005-04-16 15:20:36 -0700677 help
678 This are the SGI Indy, Challenge S and Indigo2, as well as certain
679 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
680 that runs on these, say Y here.
681
682config SGI_IP27
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200683 bool "SGI IP27 (Origin200/2000)"
Christoph Hellwig54aed4d2018-06-15 13:08:44 +0200684 select ARCH_HAS_PHYS_TO_DMA
Mike Rapoport397dc002019-09-16 14:13:10 +0300685 select ARCH_SPARSEMEM_ENABLE
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100686 select FW_ARC
687 select FW_ARC64
Thomas Bogendoerfere9422422019-10-22 18:13:15 +0200688 select ARC_CMDLINE_ONLY
Ralf Baechle5e83d432005-10-29 19:32:41 +0100689 select BOOT_ELF64
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100690 select DEFAULT_SGI_PARTITION
Ralf Baechle36a88532007-03-01 11:56:43 +0000691 select SYS_HAS_EARLY_PRINTK
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100692 select HAVE_PCI
Thomas Bogendoerfer69a07a42019-02-19 16:57:20 +0100693 select IRQ_MIPS_CPU
Thomas Bogendoerfere6308b62019-05-07 23:09:15 +0200694 select IRQ_DOMAIN_HIERARCHY
Ralf Baechle130e2fb2007-02-06 16:53:15 +0000695 select NR_CPUS_DEFAULT_64
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +0200696 select PCI_DRIVERS_GENERIC
697 select PCI_XTALK_BRIDGE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100698 select SYS_HAS_CPU_R10000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700699 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100700 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechled8cb4e12006-06-11 23:03:08 +0100701 select SYS_SUPPORTS_NUMA
Ralf Baechle1a5c5de2006-11-02 17:23:33 +0000702 select SYS_SUPPORTS_SMP
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200703 select WAR_R10000_LLSC
Florian Fainelli930beb52014-01-14 09:54:38 -0800704 select MIPS_L1_CACHE_SHIFT_7
Mike Rapoport6c86a302020-08-05 15:51:41 +0300705 select NUMA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700706 help
707 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
708 workstations. To compile a Linux kernel that runs on these, say Y
709 here.
710
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100711config SGI_IP28
Kees Cook7d607172013-01-16 18:53:19 -0800712 bool "SGI IP28 (Indigo2 R10k)"
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200713 select ARC_MEMORY
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200714 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100715 select FW_ARC
716 select FW_ARC64
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100717 select ARCH_MIGHT_HAVE_PC_SERIO
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100718 select BOOT_ELF64
719 select CEVT_R4K
720 select CSRC_R4K
721 select DEFAULT_SGI_PARTITION
722 select DMA_NONCOHERENT
723 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200724 select IRQ_MIPS_CPU
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100725 select HAVE_EISA
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100726 select I8253
727 select I8259
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100728 select SGI_HAS_I8042
729 select SGI_HAS_INDYDOG
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +0200730 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100731 select SGI_HAS_SEEQ
732 select SGI_HAS_WD93
733 select SGI_HAS_ZILOG
734 select SWAP_IO_SPACE
735 select SYS_HAS_CPU_R10000
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200736 select SYS_HAS_EARLY_PRINTK
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100737 select SYS_SUPPORTS_64BIT_KERNEL
738 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200739 select WAR_R10000_LLSC
Thomas Bogendoerferdc24d682014-08-19 22:00:07 +0200740 select MIPS_L1_CACHE_SHIFT_7
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100741 help
742 This is the SGI Indigo2 with R10000 processor. To compile a Linux
743 kernel that runs on these, say Y here.
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100744
Thomas Bogendoerfer75055762019-10-24 12:18:29 +0200745config SGI_IP30
746 bool "SGI IP30 (Octane/Octane2)"
747 select ARCH_HAS_PHYS_TO_DMA
748 select FW_ARC
749 select FW_ARC64
750 select BOOT_ELF64
751 select CEVT_R4K
752 select CSRC_R4K
753 select SYNC_R4K if SMP
754 select ZONE_DMA32
755 select HAVE_PCI
756 select IRQ_MIPS_CPU
757 select IRQ_DOMAIN_HIERARCHY
758 select NR_CPUS_DEFAULT_2
759 select PCI_DRIVERS_GENERIC
760 select PCI_XTALK_BRIDGE
761 select SYS_HAS_EARLY_PRINTK
762 select SYS_HAS_CPU_R10000
763 select SYS_SUPPORTS_64BIT_KERNEL
764 select SYS_SUPPORTS_BIG_ENDIAN
765 select SYS_SUPPORTS_SMP
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200766 select WAR_R10000_LLSC
Thomas Bogendoerfer75055762019-10-24 12:18:29 +0200767 select MIPS_L1_CACHE_SHIFT_7
768 select ARC_MEMORY
769 help
770 These are the SGI Octane and Octane2 graphics workstations. To
771 compile a Linux kernel that runs on these, say Y here.
772
Linus Torvalds1da177e2005-04-16 15:20:36 -0700773config SGI_IP32
Ralf Baechlecfd2afc2007-07-10 17:33:00 +0100774 bool "SGI IP32 (O2)"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200775 select ARC_MEMORY
776 select ARC_PROMLIB
Christoph Hellwig03df8222018-06-15 13:08:48 +0200777 select ARCH_HAS_PHYS_TO_DMA
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100778 select FW_ARC
779 select FW_ARC32
Linus Torvalds1da177e2005-04-16 15:20:36 -0700780 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100781 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000782 select CSRC_R4K
Linus Torvalds1da177e2005-04-16 15:20:36 -0700783 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100784 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200785 select IRQ_MIPS_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700786 select R5000_CPU_SCACHE
787 select RM7000_CPU_SCACHE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100788 select SYS_HAS_CPU_R5000
789 select SYS_HAS_CPU_R10000 if BROKEN
790 select SYS_HAS_CPU_RM7000
Ralf Baechledd2f18f2006-01-19 14:55:42 +0000791 select SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700792 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100793 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +0200794 select WAR_ICACHE_REFILLS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700795 help
796 If you want this kernel to run on SGI O2 workstation, say Y here.
797
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900798config SIBYTE_CRHINE
799 bool "Sibyte BCM91120C-CRhine"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100800 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100801 select SIBYTE_BCM1120
802 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100803 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100804 select SYS_SUPPORTS_BIG_ENDIAN
805 select SYS_SUPPORTS_LITTLE_ENDIAN
806
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900807config SIBYTE_CARMEL
808 bool "Sibyte BCM91120x-Carmel"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100809 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100810 select SIBYTE_BCM1120
811 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100812 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100813 select SYS_SUPPORTS_BIG_ENDIAN
814 select SYS_SUPPORTS_LITTLE_ENDIAN
815
816config SIBYTE_CRHONE
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200817 bool "Sibyte BCM91125C-CRhone"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100818 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100819 select SIBYTE_BCM1125
820 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100821 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100822 select SYS_SUPPORTS_BIG_ENDIAN
823 select SYS_SUPPORTS_HIGHMEM
824 select SYS_SUPPORTS_LITTLE_ENDIAN
825
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900826config SIBYTE_RHONE
827 bool "Sibyte BCM91125E-Rhone"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900828 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900829 select SIBYTE_BCM1125H
830 select SWAP_IO_SPACE
831 select SYS_HAS_CPU_SB1
832 select SYS_SUPPORTS_BIG_ENDIAN
833 select SYS_SUPPORTS_LITTLE_ENDIAN
834
835config SIBYTE_SWARM
836 bool "Sibyte BCM91250A-SWARM"
837 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200838 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900839 select SIBYTE_SB1250
840 select SWAP_IO_SPACE
841 select SYS_HAS_CPU_SB1
842 select SYS_SUPPORTS_BIG_ENDIAN
843 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900844 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000845 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000846 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900847
848config SIBYTE_LITTLESUR
849 bool "Sibyte BCM91250C2-LittleSur"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900850 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200851 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900852 select SIBYTE_SB1250
853 select SWAP_IO_SPACE
854 select SYS_HAS_CPU_SB1
855 select SYS_SUPPORTS_BIG_ENDIAN
856 select SYS_SUPPORTS_HIGHMEM
857 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki756d6d82018-11-13 22:42:37 +0000858 select ZONE_DMA32 if 64BIT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900859
860config SIBYTE_SENTOSA
861 bool "Sibyte BCM91250E-Sentosa"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900862 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900863 select SIBYTE_SB1250
864 select SWAP_IO_SPACE
865 select SYS_HAS_CPU_SB1
866 select SYS_SUPPORTS_BIG_ENDIAN
867 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000868 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900869
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900870config SIBYTE_BIGSUR
871 bool "Sibyte BCM91480B-BigSur"
872 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900873 select NR_CPUS_DEFAULT_4
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900874 select SIBYTE_BCM1x80
875 select SWAP_IO_SPACE
876 select SYS_HAS_CPU_SB1
877 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle651194f2007-11-01 21:55:39 +0000878 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900879 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000880 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000881 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900882
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100883config SNI_RM
884 bool "SNI RM200/300/400"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200885 select ARC_MEMORY
886 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100887 select FW_ARC if CPU_LITTLE_ENDIAN
888 select FW_ARC32 if CPU_LITTLE_ENDIAN
Paul Bolleaaa9fad2013-03-25 09:39:54 +0000889 select FW_SNIPROM if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100890 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100891 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100892 select ARCH_MIGHT_HAVE_PC_SERIO
Ralf Baechle5e83d432005-10-29 19:32:41 +0100893 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100894 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000895 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100896 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100897 select DMA_NONCOHERENT
898 select GENERIC_ISA_DMA
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100899 select HAVE_EISA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100900 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100901 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200902 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100903 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100904 select I8259
905 select ISA
Thomas Bogendoerfer564c8362020-09-14 18:05:00 +0200906 select MIPS_L1_CACHE_SHIFT_6
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200907 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
Ralf Baechle7cf80532005-10-20 22:33:09 +0100908 select SYS_HAS_CPU_R4X00
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200909 select SYS_HAS_CPU_R5000
Thomas Bogendoerferc066a322006-12-28 18:22:32 +0100910 select SYS_HAS_CPU_R10000
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200911 select R5000_CPU_SCACHE
Ralf Baechle36a88532007-03-01 11:56:43 +0000912 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700913 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800914 select SYS_SUPPORTS_64BIT_KERNEL
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200915 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100916 select SYS_SUPPORTS_HIGHMEM
917 select SYS_SUPPORTS_LITTLE_ENDIAN
Thomas Bogendoerfer44def342020-08-24 18:32:45 +0200918 select WAR_R4600_V2_HIT_CACHEOP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700919 help
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100920 The SNI RM200/300/400 are MIPS-based machines manufactured by
921 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
Ralf Baechle5e83d432005-10-29 19:32:41 +0100922 Technology and now in turn merged with Fujitsu. Say Y here to
923 support this machine type.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700924
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900925config MACH_TX39XX
926 bool "Toshiba TX39 series based machines"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100927
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900928config MACH_TX49XX
929 bool "Toshiba TX49 series based machines"
Thomas Bogendoerfer24a1c022020-08-24 18:32:47 +0200930 select WAR_TX49XX_ICACHE_INDEX_INV
Ralf Baechle23fbee92005-07-25 22:45:45 +0000931
Ralf Baechle73b43902008-07-16 16:12:25 +0100932config MIKROTIK_RB532
933 bool "Mikrotik RB532 boards"
934 select CEVT_R4K
935 select CSRC_R4K
936 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100937 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200938 select IRQ_MIPS_CPU
Ralf Baechle73b43902008-07-16 16:12:25 +0100939 select SYS_HAS_CPU_MIPS32_R1
940 select SYS_SUPPORTS_32BIT_KERNEL
941 select SYS_SUPPORTS_LITTLE_ENDIAN
942 select SWAP_IO_SPACE
943 select BOOT_RAW
Linus Walleijd30a2b42016-04-19 11:23:22 +0200944 select GPIOLIB
Florian Fainelli930beb52014-01-14 09:54:38 -0800945 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle73b43902008-07-16 16:12:25 +0100946 help
947 Support the Mikrotik(tm) RouterBoard 532 series,
948 based on the IDT RC32434 SoC.
949
David Daney9ddebc42013-05-22 15:10:46 +0000950config CAVIUM_OCTEON_SOC
951 bool "Cavium Networks Octeon SoC based boards"
David Daneya86c7f72008-12-11 15:33:38 -0800952 select CEVT_R4K
Christoph Hellwigea8c64a2018-01-10 16:21:13 +0100953 select ARCH_HAS_PHYS_TO_DMA
Christoph Hellwig1753d502018-11-15 20:05:36 +0100954 select HAVE_RAPIDIO
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200955 select PHYS_ADDR_T_64BIT
David Daneya86c7f72008-12-11 15:33:38 -0800956 select SYS_SUPPORTS_64BIT_KERNEL
957 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechlef65aad42012-10-17 00:39:09 +0200958 select EDAC_SUPPORT
Borislav Petkovb01aec92015-05-21 19:59:31 +0200959 select EDAC_ATOMIC_SCRUB
David Daney73569d82015-03-20 19:11:58 +0300960 select SYS_SUPPORTS_LITTLE_ENDIAN
961 select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
David Daneya86c7f72008-12-11 15:33:38 -0800962 select SYS_HAS_EARLY_PRINTK
David Daney5e683382009-02-02 11:30:59 -0800963 select SYS_HAS_CPU_CAVIUM_OCTEON
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100964 select HAVE_PCI
Masahiro Yamada78bdbba2020-03-25 16:45:29 +0900965 select HAVE_PLAT_DELAY
966 select HAVE_PLAT_FW_INIT_CMDLINE
967 select HAVE_PLAT_MEMCPY
David Daneyf00e0012010-10-01 13:27:30 -0700968 select ZONE_DMA32
David Daney465aaed2011-08-20 08:44:00 -0700969 select HOLES_IN_ZONE
Linus Walleijd30a2b42016-04-19 11:23:22 +0200970 select GPIOLIB
David Daney6e511162014-05-28 23:52:05 +0200971 select USE_OF
972 select ARCH_SPARSEMEM_ENABLE
973 select SYS_SUPPORTS_SMP
David Daney7820b842017-09-28 12:34:04 -0500974 select NR_CPUS_DEFAULT_64
975 select MIPS_NR_CPU_NR_MAP_1024
Andrew Brestickere3264792014-08-21 13:04:22 -0700976 select BUILTIN_DTB
David Daney8c1e6b12015-03-05 17:31:30 +0300977 select MTD_COMPLEX_MAPPINGS
Christoph Hellwig09230cb2018-04-24 09:00:54 +0200978 select SWIOTLB
Steven J. Hill3ff72be2016-12-13 14:25:37 -0600979 select SYS_SUPPORTS_RELOCATABLE
David Daneya86c7f72008-12-11 15:33:38 -0800980 help
981 This option supports all of the Octeon reference boards from Cavium
982 Networks. It builds a kernel that dynamically determines the Octeon
983 CPU type and supports all known board reference implementations.
984 Some of the supported boards are:
985 EBT3000
986 EBH3000
987 EBH3100
988 Thunder
989 Kodama
990 Hikari
991 Say Y here for most Octeon reference boards.
992
Jayachandran C7f058e82011-05-07 01:36:57 +0530993config NLM_XLR_BOARD
994 bool "Netlogic XLR/XLS based systems"
Jayachandran C7f058e82011-05-07 01:36:57 +0530995 select BOOT_ELF32
996 select NLM_COMMON
Jayachandran C7f058e82011-05-07 01:36:57 +0530997 select SYS_HAS_CPU_XLR
998 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100999 select HAVE_PCI
Jayachandran C7f058e82011-05-07 01:36:57 +05301000 select SWAP_IO_SPACE
1001 select SYS_SUPPORTS_32BIT_KERNEL
1002 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001003 select PHYS_ADDR_T_64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +05301004 select SYS_SUPPORTS_BIG_ENDIAN
1005 select SYS_SUPPORTS_HIGHMEM
Jayachandran C7f058e82011-05-07 01:36:57 +05301006 select NR_CPUS_DEFAULT_32
1007 select CEVT_R4K
1008 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001009 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +00001010 select ZONE_DMA32 if 64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +05301011 select SYNC_R4K
1012 select SYS_HAS_EARLY_PRINTK
Jayachandran C8f0b0432013-06-10 06:33:26 +00001013 select SYS_SUPPORTS_ZBOOT
1014 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C7f058e82011-05-07 01:36:57 +05301015 help
1016 Support for systems based on Netlogic XLR and XLS processors.
1017 Say Y here if you have a XLR or XLS based board.
1018
Jayachandran C1c773ea2011-11-16 00:21:28 +00001019config NLM_XLP_BOARD
1020 bool "Netlogic XLP based systems"
Jayachandran C1c773ea2011-11-16 00:21:28 +00001021 select BOOT_ELF32
1022 select NLM_COMMON
1023 select SYS_HAS_CPU_XLP
1024 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +01001025 select HAVE_PCI
Jayachandran C1c773ea2011-11-16 00:21:28 +00001026 select SYS_SUPPORTS_32BIT_KERNEL
1027 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001028 select PHYS_ADDR_T_64BIT
Linus Walleijd30a2b42016-04-19 11:23:22 +02001029 select GPIOLIB
Jayachandran C1c773ea2011-11-16 00:21:28 +00001030 select SYS_SUPPORTS_BIG_ENDIAN
1031 select SYS_SUPPORTS_LITTLE_ENDIAN
1032 select SYS_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +00001033 select NR_CPUS_DEFAULT_32
1034 select CEVT_R4K
1035 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001036 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +00001037 select ZONE_DMA32 if 64BIT
Jayachandran C1c773ea2011-11-16 00:21:28 +00001038 select SYNC_R4K
1039 select SYS_HAS_EARLY_PRINTK
Jayachandran C2f6528e2012-07-13 21:53:22 +05301040 select USE_OF
Jayachandran C8f0b0432013-06-10 06:33:26 +00001041 select SYS_SUPPORTS_ZBOOT
1042 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C1c773ea2011-11-16 00:21:28 +00001043 help
1044 This board is based on Netlogic XLP Processor.
1045 Say Y here if you have a XLP based board.
1046
Linus Torvalds1da177e2005-04-16 15:20:36 -07001047endchoice
1048
Ralf Baechlee8c7c482008-09-16 19:12:16 +02001049source "arch/mips/alchemy/Kconfig"
Sergey Ryazanov3b12308f2014-10-29 03:18:39 +04001050source "arch/mips/ath25/Kconfig"
Gabor Juhosd4a67d92011-01-04 21:28:14 +01001051source "arch/mips/ath79/Kconfig"
Hauke Mehrtensa656ffc2011-07-23 01:20:13 +02001052source "arch/mips/bcm47xx/Kconfig"
Maxime Bizone7300d02009-08-18 13:23:37 +01001053source "arch/mips/bcm63xx/Kconfig"
Kevin Cernekee8945e372014-12-25 09:49:20 -08001054source "arch/mips/bmips/Kconfig"
Paul Burtoneed0eab2016-10-05 18:18:20 +01001055source "arch/mips/generic/Kconfig"
Paul Cercueila103e9b2020-09-06 21:29:33 +02001056source "arch/mips/ingenic/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001057source "arch/mips/jazz/Kconfig"
John Crispin8ec6d932011-03-30 09:27:48 +02001058source "arch/mips/lantiq/Kconfig"
Joshua Henderson2572f002016-01-13 18:15:39 -07001059source "arch/mips/pic32/Kconfig"
Ezequiel Garciaaf0cfb22015-08-06 12:22:43 +01001060source "arch/mips/pistachio/Kconfig"
John Crispinae2b5bb2013-01-20 22:05:30 +01001061source "arch/mips/ralink/Kconfig"
Ralf Baechle29c48692005-02-07 01:27:14 +00001062source "arch/mips/sgi-ip27/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001063source "arch/mips/sibyte/Kconfig"
Atsushi Nemoto22b1d702008-07-11 00:31:36 +09001064source "arch/mips/txx9/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001065source "arch/mips/vr41xx/Kconfig"
David Daneya86c7f72008-12-11 15:33:38 -08001066source "arch/mips/cavium-octeon/Kconfig"
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +08001067source "arch/mips/loongson2ef/Kconfig"
Huacai Chen30ad29b2015-04-21 10:00:35 +08001068source "arch/mips/loongson32/Kconfig"
1069source "arch/mips/loongson64/Kconfig"
Jayachandran C7f058e82011-05-07 01:36:57 +05301070source "arch/mips/netlogic/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001071
Ralf Baechle5e83d432005-10-29 19:32:41 +01001072endmenu
1073
Akinobu Mita3c9ee7e2006-03-26 01:39:30 -08001074config GENERIC_HWEIGHT
1075 bool
1076 default y
1077
Linus Torvalds1da177e2005-04-16 15:20:36 -07001078config GENERIC_CALIBRATE_DELAY
1079 bool
1080 default y
1081
Ingo Molnarae1e9132008-11-11 09:05:16 +01001082config SCHED_OMIT_FRAME_POINTER
Atsushi Nemoto1cc89032006-04-04 13:11:45 +09001083 bool
1084 default y
1085
Linus Torvalds1da177e2005-04-16 15:20:36 -07001086#
1087# Select some configuration options automatically based on user selections.
1088#
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001089config FW_ARC
Linus Torvalds1da177e2005-04-16 15:20:36 -07001090 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001091
Ralf Baechle61ed2422005-09-15 08:52:34 +00001092config ARCH_MAY_HAVE_PC_FDC
1093 bool
1094
Marc St-Jean9267a302007-06-14 15:55:31 -06001095config BOOT_RAW
1096 bool
1097
Ralf Baechle217dd112007-11-01 01:57:55 +00001098config CEVT_BCM1480
1099 bool
1100
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +09001101config CEVT_DS1287
1102 bool
1103
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +09001104config CEVT_GT641XX
1105 bool
1106
Ralf Baechle42f77542007-10-18 17:48:11 +01001107config CEVT_R4K
1108 bool
1109
Ralf Baechle217dd112007-11-01 01:57:55 +00001110config CEVT_SB1250
1111 bool
1112
Atsushi Nemoto229f7732007-10-25 01:34:09 +09001113config CEVT_TXX9
1114 bool
1115
Ralf Baechle217dd112007-11-01 01:57:55 +00001116config CSRC_BCM1480
1117 bool
1118
Yoichi Yuasa42474172008-04-24 09:48:40 +09001119config CSRC_IOASIC
1120 bool
1121
Ralf Baechle940f6b42007-11-24 22:33:28 +00001122config CSRC_R4K
Serge Semin38586422020-05-21 17:07:23 +03001123 select CLOCKSOURCE_WATCHDOG if CPU_FREQ
Ralf Baechle940f6b42007-11-24 22:33:28 +00001124 bool
1125
Ralf Baechle217dd112007-11-01 01:57:55 +00001126config CSRC_SB1250
1127 bool
1128
Alex Smitha7f4df42015-10-21 09:57:44 +01001129config MIPS_CLOCK_VSYSCALL
1130 def_bool CSRC_R4K || CLKSRC_MIPS_GIC
1131
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001132config GPIO_TXX9
Linus Walleijd30a2b42016-04-19 11:23:22 +02001133 select GPIOLIB
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001134 bool
1135
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001136config FW_CFE
Aurelien Jarnodf78b5c2007-09-05 08:58:26 +02001137 bool
1138
Ralf Baechle40e084a2015-07-29 22:44:53 +02001139config ARCH_SUPPORTS_UPROBES
1140 bool
1141
Felix Fietkau885014b2013-09-27 14:41:44 +02001142config DMA_MAYBE_COHERENT
Christoph Hellwigf3ecc0f2018-08-19 14:53:20 +02001143 select ARCH_HAS_DMA_COHERENCE_H
Felix Fietkau885014b2013-09-27 14:41:44 +02001144 select DMA_NONCOHERENT
1145 bool
1146
Paul Burton20d33062016-10-05 18:18:16 +01001147config DMA_PERDEV_COHERENT
1148 bool
Christoph Hellwig347cb6a2019-01-07 13:36:20 -05001149 select ARCH_HAS_SETUP_DMA_OPS
Christoph Hellwig5748e1b2018-08-16 16:47:53 +03001150 select DMA_NONCOHERENT
Paul Burton20d33062016-10-05 18:18:16 +01001151
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001152config DMA_NONCOHERENT
1153 bool
Christoph Hellwigdb914272019-08-26 09:22:13 +02001154 #
1155 # MIPS allows mixing "slightly different" Cacheability and Coherency
1156 # Attribute bits. It is believed that the uncached access through
1157 # KSEG1 and the implementation specific "uncached accelerated" used
1158 # by pgprot_writcombine can be mixed, and the latter sometimes provides
1159 # significant advantages.
1160 #
Christoph Hellwig419e2f12019-08-26 09:03:44 +02001161 select ARCH_HAS_DMA_WRITE_COMBINE
Christoph Hellwigfa7e2242020-02-21 15:55:43 -08001162 select ARCH_HAS_DMA_PREP_COHERENT
Christoph Hellwigf8c55dc2018-06-15 13:08:46 +02001163 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
Christoph Hellwigfa7e2242020-02-21 15:55:43 -08001164 select ARCH_HAS_DMA_SET_UNCACHED
Christoph Hellwig34dc0ea2019-10-29 11:01:37 +01001165 select DMA_NONCOHERENT_MMAP
Christoph Hellwig34dc0ea2019-10-29 11:01:37 +01001166 select NEED_DMA_MAP_STATE
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001167
Ralf Baechle36a88532007-03-01 11:56:43 +00001168config SYS_HAS_EARLY_PRINTK
Linus Torvalds1da177e2005-04-16 15:20:36 -07001169 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001170
Ralf Baechle1b2bc752009-06-23 10:00:31 +01001171config SYS_SUPPORTS_HOTPLUG_CPU
Ralf Baechledbb74542007-08-07 14:52:17 +01001172 bool
Ralf Baechledbb74542007-08-07 14:52:17 +01001173
Linus Torvalds1da177e2005-04-16 15:20:36 -07001174config MIPS_BONITO64
1175 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001176
1177config MIPS_MSC
1178 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001179
Ralf Baechle39b8d522008-04-28 17:14:26 +01001180config SYNC_R4K
1181 bool
1182
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -07001183config NO_IOPORT_MAP
Maciej W. Rozyckid388d682007-05-29 15:08:07 +01001184 def_bool n
1185
Markos Chandras4e0748f2014-11-13 11:25:27 +00001186config GENERIC_CSUM
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001187 def_bool CPU_NO_LOAD_STORE_LR
Markos Chandras4e0748f2014-11-13 11:25:27 +00001188
Ralf Baechle8313da32007-08-24 16:48:30 +01001189config GENERIC_ISA_DMA
1190 bool
1191 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
Namhyung Kima35bee82010-10-18 12:55:21 +09001192 select ISA_DMA_API
Ralf Baechle8313da32007-08-24 16:48:30 +01001193
Ralf Baechleaa414df2006-11-30 01:14:51 +00001194config GENERIC_ISA_DMA_SUPPORT_BROKEN
1195 bool
Ralf Baechle8313da32007-08-24 16:48:30 +01001196 select GENERIC_ISA_DMA
Ralf Baechleaa414df2006-11-30 01:14:51 +00001197
Masahiro Yamada78bdbba2020-03-25 16:45:29 +09001198config HAVE_PLAT_DELAY
1199 bool
1200
1201config HAVE_PLAT_FW_INIT_CMDLINE
1202 bool
1203
1204config HAVE_PLAT_MEMCPY
1205 bool
1206
Namhyung Kima35bee82010-10-18 12:55:21 +09001207config ISA_DMA_API
1208 bool
1209
David Daney465aaed2011-08-20 08:44:00 -07001210config HOLES_IN_ZONE
1211 bool
1212
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001213config SYS_SUPPORTS_RELOCATABLE
1214 bool
1215 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01001216 Selected if the platform supports relocating the kernel.
1217 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
1218 to allow access to command line and entropy sources.
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001219
David Daneyf381bf62017-06-13 15:28:46 -07001220config MIPS_CBPF_JIT
1221 def_bool y
1222 depends on BPF_JIT && HAVE_CBPF_JIT
1223
1224config MIPS_EBPF_JIT
1225 def_bool y
1226 depends on BPF_JIT && HAVE_EBPF_JIT
1227
1228
Ralf Baechle5e83d432005-10-29 19:32:41 +01001229#
Masanari Iida6b2aac42012-04-14 00:14:11 +09001230# Endianness selection. Sufficiently obscure so many users don't know what to
Ralf Baechle5e83d432005-10-29 19:32:41 +01001231# answer,so we try hard to limit the available choices. Also the use of a
1232# choice statement should be more obvious to the user.
1233#
1234choice
Masanari Iida6b2aac42012-04-14 00:14:11 +09001235 prompt "Endianness selection"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001236 help
1237 Some MIPS machines can be configured for either little or big endian
Ralf Baechle5e83d432005-10-29 19:32:41 +01001238 byte order. These modes require different kernels and a different
Matt LaPlante3cb2fcc2006-11-30 05:22:59 +01001239 Linux distribution. In general there is one preferred byteorder for a
Ralf Baechle5e83d432005-10-29 19:32:41 +01001240 particular system but some systems are just as commonly used in the
David Sterba3dde6ad2007-05-09 07:12:20 +02001241 one or the other endianness.
Ralf Baechle5e83d432005-10-29 19:32:41 +01001242
1243config CPU_BIG_ENDIAN
1244 bool "Big endian"
1245 depends on SYS_SUPPORTS_BIG_ENDIAN
1246
1247config CPU_LITTLE_ENDIAN
1248 bool "Little endian"
1249 depends on SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +01001250
1251endchoice
1252
David Daney22b07632010-07-23 18:41:43 -07001253config EXPORT_UASM
1254 bool
1255
Ralf Baechle21162452007-02-09 17:08:58 +00001256config SYS_SUPPORTS_APM_EMULATION
1257 bool
1258
Ralf Baechle5e83d432005-10-29 19:32:41 +01001259config SYS_SUPPORTS_BIG_ENDIAN
1260 bool
1261
1262config SYS_SUPPORTS_LITTLE_ENDIAN
1263 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001264
David Daney9cffd1542009-05-27 17:47:46 -07001265config SYS_SUPPORTS_HUGETLBFS
1266 bool
Daniel Silsby45e03e62019-07-15 17:40:01 -04001267 depends on CPU_SUPPORTS_HUGEPAGES
David Daney9cffd1542009-05-27 17:47:46 -07001268 default y
1269
David Daneyaa1762f2012-10-17 00:48:10 +02001270config MIPS_HUGE_TLB_SUPPORT
1271 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1272
Marc St-Jean9267a302007-06-14 15:55:31 -06001273config IRQ_MSP_SLP
1274 bool
1275
1276config IRQ_MSP_CIC
1277 bool
1278
Atsushi Nemoto8420fd02007-08-02 23:35:53 +09001279config IRQ_TXX9
1280 bool
1281
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +09001282config IRQ_GT641XX
1283 bool
1284
Yoichi Yuasa252161e2007-03-14 21:51:26 +09001285config PCI_GT64XXX_PCI0
Linus Torvalds1da177e2005-04-16 15:20:36 -07001286 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001287
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +02001288config PCI_XTALK_BRIDGE
1289 bool
1290
Marc St-Jean9267a302007-06-14 15:55:31 -06001291config NO_EXCEPT_FILL
1292 bool
1293
Markos Chandrasa7e07b12014-11-13 13:32:03 +00001294config MIPS_SPRAM
1295 bool
1296
Linus Torvalds1da177e2005-04-16 15:20:36 -07001297config SWAP_IO_SPACE
1298 bool
1299
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001300config SGI_HAS_INDYDOG
1301 bool
1302
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +02001303config SGI_HAS_HAL2
1304 bool
1305
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001306config SGI_HAS_SEEQ
1307 bool
1308
1309config SGI_HAS_WD93
1310 bool
1311
1312config SGI_HAS_ZILOG
1313 bool
1314
1315config SGI_HAS_I8042
1316 bool
1317
1318config DEFAULT_SGI_PARTITION
1319 bool
1320
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001321config FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +01001322 bool
1323
Paul Bolleaaa9fad2013-03-25 09:39:54 +00001324config FW_SNIPROM
Thomas Bogendoerfer231a35d2008-01-04 23:31:07 +01001325 bool
1326
Linus Torvalds1da177e2005-04-16 15:20:36 -07001327config BOOT_ELF32
1328 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001329
Florian Fainelli930beb52014-01-14 09:54:38 -08001330config MIPS_L1_CACHE_SHIFT_4
1331 bool
1332
1333config MIPS_L1_CACHE_SHIFT_5
1334 bool
1335
1336config MIPS_L1_CACHE_SHIFT_6
1337 bool
1338
1339config MIPS_L1_CACHE_SHIFT_7
1340 bool
1341
Linus Torvalds1da177e2005-04-16 15:20:36 -07001342config MIPS_L1_CACHE_SHIFT
1343 int
Florian Fainellia4c02012014-01-14 09:54:39 -08001344 default "7" if MIPS_L1_CACHE_SHIFT_7
Kevin Cernekee5432eeb2014-12-25 09:49:09 -08001345 default "6" if MIPS_L1_CACHE_SHIFT_6
1346 default "5" if MIPS_L1_CACHE_SHIFT_5
1347 default "4" if MIPS_L1_CACHE_SHIFT_4
Linus Torvalds1da177e2005-04-16 15:20:36 -07001348 default "5"
1349
Thomas Bogendoerfere9422422019-10-22 18:13:15 +02001350config ARC_CMDLINE_ONLY
1351 bool
1352
Linus Torvalds1da177e2005-04-16 15:20:36 -07001353config ARC_CONSOLE
1354 bool "ARC console support"
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001355 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001356
1357config ARC_MEMORY
1358 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001359
1360config ARC_PROMLIB
1361 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001362
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001363config FW_ARC64
Linus Torvalds1da177e2005-04-16 15:20:36 -07001364 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001365
1366config BOOT_ELF64
1367 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001368
Linus Torvalds1da177e2005-04-16 15:20:36 -07001369menu "CPU selection"
1370
1371choice
1372 prompt "CPU type"
1373 default CPU_R4X00
1374
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001375config CPU_LOONGSON64
Huacai Chencaed1d12019-11-04 14:11:21 +08001376 bool "Loongson 64-bit CPU"
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001377 depends on SYS_HAS_CPU_LOONGSON64
Christoph Hellwigd3bc81b2018-06-15 13:08:41 +02001378 select ARCH_HAS_PHYS_TO_DMA
Jiaxun Yang51522212020-01-13 18:15:00 +08001379 select CPU_MIPSR2
1380 select CPU_HAS_PREFETCH
Huacai Chen0e476d92014-03-21 18:44:07 +08001381 select CPU_SUPPORTS_64BIT_KERNEL
1382 select CPU_SUPPORTS_HIGHMEM
1383 select CPU_SUPPORTS_HUGEPAGES
Huacai Chen75074452019-09-21 21:50:27 +08001384 select CPU_SUPPORTS_MSA
Jiaxun Yang51522212020-01-13 18:15:00 +08001385 select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
1386 select CPU_MIPSR2_IRQ_VI
Huacai Chen0e476d92014-03-21 18:44:07 +08001387 select WEAK_ORDERING
1388 select WEAK_REORDERING_BEYOND_LLSC
Huacai Chen75074452019-09-21 21:50:27 +08001389 select MIPS_ASID_BITS_VARIABLE
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001390 select MIPS_PGD_C0_CONTEXT
Huacai Chen17c99d92017-03-16 21:00:28 +08001391 select MIPS_L1_CACHE_SHIFT_6
Linus Walleijd30a2b42016-04-19 11:23:22 +02001392 select GPIOLIB
Christoph Hellwig09230cb2018-04-24 09:00:54 +02001393 select SWIOTLB
Huacai Chen0f783552020-05-23 15:56:41 +08001394 select HAVE_KVM
Huacai Chen0e476d92014-03-21 18:44:07 +08001395 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001396 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
1397 cores implements the MIPS64R2 instruction set with many extensions,
1398 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
1399 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
1400 Loongson-2E/2F is not covered here and will be removed in future.
Huacai Chen0e476d92014-03-21 18:44:07 +08001401
Huacai Chencaed1d12019-11-04 14:11:21 +08001402config LOONGSON3_ENHANCEMENT
1403 bool "New Loongson-3 CPU Enhancements"
Huacai Chen1e820da32016-03-03 09:45:13 +08001404 default n
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001405 depends on CPU_LOONGSON64
Huacai Chen1e820da32016-03-03 09:45:13 +08001406 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001407 New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
Huacai Chen1e820da32016-03-03 09:45:13 +08001408 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001409 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
Huacai Chen1e820da32016-03-03 09:45:13 +08001410 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
1411 Fast TLB refill support, etc.
1412
1413 This option enable those enhancements which are not probed at run
1414 time. If you want a generic kernel to run on all Loongson 3 machines,
1415 please say 'N' here. If you want a high-performance kernel to run on
Huacai Chencaed1d12019-11-04 14:11:21 +08001416 new Loongson-3 machines only, please say 'Y' here.
Huacai Chen1e820da32016-03-03 09:45:13 +08001417
Huacai Chene02e07e2019-01-15 16:04:54 +08001418config CPU_LOONGSON3_WORKAROUNDS
Huacai Chencaed1d12019-11-04 14:11:21 +08001419 bool "Old Loongson-3 LLSC Workarounds"
Huacai Chene02e07e2019-01-15 16:04:54 +08001420 default y if SMP
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001421 depends on CPU_LOONGSON64
Huacai Chene02e07e2019-01-15 16:04:54 +08001422 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001423 Loongson-3 processors have the llsc issues which require workarounds.
Huacai Chene02e07e2019-01-15 16:04:54 +08001424 Without workarounds the system may hang unexpectedly.
1425
Huacai Chencaed1d12019-11-04 14:11:21 +08001426 Newer Loongson-3 will fix these issues and no workarounds are needed.
Huacai Chene02e07e2019-01-15 16:04:54 +08001427 The workarounds have no significant side effect on them but may
1428 decrease the performance of the system so this option should be
1429 disabled unless the kernel is intended to be run on old systems.
1430
1431 If unsure, please say Y.
1432
WANG Xueruiec7a9312020-05-23 21:37:01 +08001433config CPU_LOONGSON3_CPUCFG_EMULATION
1434 bool "Emulate the CPUCFG instruction on older Loongson cores"
1435 default y
1436 depends on CPU_LOONGSON64
1437 help
1438 Loongson-3A R4 and newer have the CPUCFG instruction available for
1439 userland to query CPU capabilities, much like CPUID on x86. This
1440 option provides emulation of the instruction on older Loongson
1441 cores, back to Loongson-3A1000.
1442
1443 If unsure, please say Y.
1444
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001445config CPU_LOONGSON2E
1446 bool "Loongson 2E"
1447 depends on SYS_HAS_CPU_LOONGSON2E
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001448 select CPU_LOONGSON2EF
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001449 help
1450 The Loongson 2E processor implements the MIPS III instruction set
1451 with many extensions.
1452
Lucas De Marchi25985ed2011-03-30 22:57:33 -03001453 It has an internal FPGA northbridge, which is compatible to
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001454 bonito64.
1455
1456config CPU_LOONGSON2F
1457 bool "Loongson 2F"
1458 depends on SYS_HAS_CPU_LOONGSON2F
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001459 select CPU_LOONGSON2EF
Linus Walleijd30a2b42016-04-19 11:23:22 +02001460 select GPIOLIB
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001461 help
1462 The Loongson 2F processor implements the MIPS III instruction set
1463 with many extensions.
1464
1465 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1466 have a similar programming interface with FPGA northbridge used in
1467 Loongson2E.
1468
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001469config CPU_LOONGSON1B
1470 bool "Loongson 1B"
1471 depends on SYS_HAS_CPU_LOONGSON1B
Huacai Chenb2afb642019-11-04 14:11:20 +08001472 select CPU_LOONGSON32
Kelvin Cheung9ec88b62016-04-06 20:34:54 +08001473 select LEDS_GPIO_REGISTER
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001474 help
1475 The Loongson 1B is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001476 Release 1 instruction set and part of the MIPS32 Release 2
1477 instruction set.
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001478
Yang Ling12e32802016-05-19 12:29:30 +08001479config CPU_LOONGSON1C
1480 bool "Loongson 1C"
1481 depends on SYS_HAS_CPU_LOONGSON1C
Huacai Chenb2afb642019-11-04 14:11:20 +08001482 select CPU_LOONGSON32
Yang Ling12e32802016-05-19 12:29:30 +08001483 select LEDS_GPIO_REGISTER
1484 help
1485 The Loongson 1C is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001486 Release 1 instruction set and part of the MIPS32 Release 2
1487 instruction set.
Yang Ling12e32802016-05-19 12:29:30 +08001488
Ralf Baechle6e760c82005-07-06 12:08:11 +00001489config CPU_MIPS32_R1
1490 bool "MIPS32 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001491 depends on SYS_HAS_CPU_MIPS32_R1
Ralf Baechle6e760c82005-07-06 12:08:11 +00001492 select CPU_HAS_PREFETCH
Ralf Baechle797798c2005-08-10 15:17:11 +00001493 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001494 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle6e760c82005-07-06 12:08:11 +00001495 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001496 Choose this option to build a kernel for release 1 or later of the
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001497 MIPS32 architecture. Most modern embedded systems with a 32-bit
1498 MIPS processor are based on a MIPS32 processor. If you know the
1499 specific type of processor in your system, choose those that one
1500 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1501 Release 2 of the MIPS32 architecture is available since several
1502 years so chances are you even have a MIPS32 Release 2 processor
1503 in which case you should choose CPU_MIPS32_R2 instead for better
1504 performance.
1505
1506config CPU_MIPS32_R2
1507 bool "MIPS32 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001508 depends on SYS_HAS_CPU_MIPS32_R2
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001509 select CPU_HAS_PREFETCH
Ralf Baechle797798c2005-08-10 15:17:11 +00001510 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001511 select CPU_SUPPORTS_HIGHMEM
Paul Burtona5e9a692014-01-27 15:23:10 +00001512 select CPU_SUPPORTS_MSA
Sanjay Lal2235a542012-11-21 18:33:59 -08001513 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001514 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001515 Choose this option to build a kernel for release 2 or later of the
Ralf Baechle6e760c82005-07-06 12:08:11 +00001516 MIPS32 architecture. Most modern embedded systems with a 32-bit
1517 MIPS processor are based on a MIPS32 processor. If you know the
1518 specific type of processor in your system, choose those that one
1519 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001520
Serge Seminab7c01f2020-05-21 17:07:14 +03001521config CPU_MIPS32_R5
1522 bool "MIPS32 Release 5"
1523 depends on SYS_HAS_CPU_MIPS32_R5
1524 select CPU_HAS_PREFETCH
1525 select CPU_SUPPORTS_32BIT_KERNEL
1526 select CPU_SUPPORTS_HIGHMEM
1527 select CPU_SUPPORTS_MSA
1528 select HAVE_KVM
1529 select MIPS_O32_FP64_SUPPORT
1530 help
1531 Choose this option to build a kernel for release 5 or later of the
1532 MIPS32 architecture. New MIPS processors, starting with the Warrior
1533 family, are based on a MIPS32r5 processor. If you own an older
1534 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1535
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001536config CPU_MIPS32_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001537 bool "MIPS32 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001538 depends on SYS_HAS_CPU_MIPS32_R6
1539 select CPU_HAS_PREFETCH
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001540 select CPU_NO_LOAD_STORE_LR
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001541 select CPU_SUPPORTS_32BIT_KERNEL
1542 select CPU_SUPPORTS_HIGHMEM
1543 select CPU_SUPPORTS_MSA
1544 select HAVE_KVM
1545 select MIPS_O32_FP64_SUPPORT
1546 help
1547 Choose this option to build a kernel for release 6 or later of the
1548 MIPS32 architecture. New MIPS processors, starting with the Warrior
1549 family, are based on a MIPS32r6 processor. If you own an older
1550 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1551
Ralf Baechle6e760c82005-07-06 12:08:11 +00001552config CPU_MIPS64_R1
1553 bool "MIPS64 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001554 depends on SYS_HAS_CPU_MIPS64_R1
Ralf Baechle797798c2005-08-10 15:17:11 +00001555 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001556 select CPU_SUPPORTS_32BIT_KERNEL
1557 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001558 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001559 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle6e760c82005-07-06 12:08:11 +00001560 help
1561 Choose this option to build a kernel for release 1 or later of the
1562 MIPS64 architecture. Many modern embedded systems with a 64-bit
1563 MIPS processor are based on a MIPS64 processor. If you know the
1564 specific type of processor in your system, choose those that one
1565 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001566 Release 2 of the MIPS64 architecture is available since several
1567 years so chances are you even have a MIPS64 Release 2 processor
1568 in which case you should choose CPU_MIPS64_R2 instead for better
1569 performance.
1570
1571config CPU_MIPS64_R2
1572 bool "MIPS64 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001573 depends on SYS_HAS_CPU_MIPS64_R2
Ralf Baechle797798c2005-08-10 15:17:11 +00001574 select CPU_HAS_PREFETCH
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001575 select CPU_SUPPORTS_32BIT_KERNEL
1576 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001577 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001578 select CPU_SUPPORTS_HUGEPAGES
Paul Burtona5e9a692014-01-27 15:23:10 +00001579 select CPU_SUPPORTS_MSA
James Hogan40a2df42016-07-08 11:53:31 +01001580 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001581 help
1582 Choose this option to build a kernel for release 2 or later of the
1583 MIPS64 architecture. Many modern embedded systems with a 64-bit
1584 MIPS processor are based on a MIPS64 processor. If you know the
1585 specific type of processor in your system, choose those that one
1586 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001587
Serge Seminab7c01f2020-05-21 17:07:14 +03001588config CPU_MIPS64_R5
1589 bool "MIPS64 Release 5"
1590 depends on SYS_HAS_CPU_MIPS64_R5
1591 select CPU_HAS_PREFETCH
1592 select CPU_SUPPORTS_32BIT_KERNEL
1593 select CPU_SUPPORTS_64BIT_KERNEL
1594 select CPU_SUPPORTS_HIGHMEM
1595 select CPU_SUPPORTS_HUGEPAGES
1596 select CPU_SUPPORTS_MSA
1597 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1598 select HAVE_KVM
1599 help
1600 Choose this option to build a kernel for release 5 or later of the
1601 MIPS64 architecture. This is a intermediate MIPS architecture
1602 release partly implementing release 6 features. Though there is no
1603 any hardware known to be based on this release.
1604
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001605config CPU_MIPS64_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001606 bool "MIPS64 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001607 depends on SYS_HAS_CPU_MIPS64_R6
1608 select CPU_HAS_PREFETCH
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001609 select CPU_NO_LOAD_STORE_LR
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001610 select CPU_SUPPORTS_32BIT_KERNEL
1611 select CPU_SUPPORTS_64BIT_KERNEL
1612 select CPU_SUPPORTS_HIGHMEM
Paul Burtonafd375d2019-02-02 02:21:53 +00001613 select CPU_SUPPORTS_HUGEPAGES
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001614 select CPU_SUPPORTS_MSA
James Hogan2e6c7742017-02-16 12:39:01 +00001615 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
James Hogan40a2df42016-07-08 11:53:31 +01001616 select HAVE_KVM
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001617 help
1618 Choose this option to build a kernel for release 6 or later of the
1619 MIPS64 architecture. New MIPS processors, starting with the Warrior
1620 family, are based on a MIPS64r6 processor. If you own an older
1621 processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1622
Serge Semin281e3ae2020-05-21 17:07:15 +03001623config CPU_P5600
1624 bool "MIPS Warrior P5600"
1625 depends on SYS_HAS_CPU_P5600
1626 select CPU_HAS_PREFETCH
1627 select CPU_SUPPORTS_32BIT_KERNEL
1628 select CPU_SUPPORTS_HIGHMEM
1629 select CPU_SUPPORTS_MSA
Serge Semin281e3ae2020-05-21 17:07:15 +03001630 select CPU_SUPPORTS_CPUFREQ
1631 select CPU_MIPSR2_IRQ_VI
1632 select CPU_MIPSR2_IRQ_EI
1633 select HAVE_KVM
1634 select MIPS_O32_FP64_SUPPORT
1635 help
1636 Choose this option to build a kernel for MIPS Warrior P5600 CPU.
1637 It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
1638 MMU with two-levels TLB, UCA, MSA, MDU core level features and system
1639 level features like up to six P5600 calculation cores, CM2 with L2
1640 cache, IOCU/IOMMU (though might be unused depending on the system-
1641 specific IP core configuration), GIC, CPC, virtualisation module,
1642 eJTAG and PDtrace.
1643
Linus Torvalds1da177e2005-04-16 15:20:36 -07001644config CPU_R3000
1645 bool "R3000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001646 depends on SYS_HAS_CPU_R3000
Ralf Baechlef7062dd2006-04-24 14:58:53 +01001647 select CPU_HAS_WB
Paul Burton54746822019-08-31 15:40:43 +00001648 select CPU_R3K_TLB
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001649 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001650 select CPU_SUPPORTS_HIGHMEM
Linus Torvalds1da177e2005-04-16 15:20:36 -07001651 help
1652 Please make sure to pick the right CPU type. Linux/MIPS is not
1653 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1654 *not* work on R4000 machines and vice versa. However, since most
1655 of the supported machines have an R4000 (or similar) CPU, R4x00
1656 might be a safe bet. If the resulting kernel does not work,
1657 try to recompile with R3000.
1658
1659config CPU_TX39XX
1660 bool "R39XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001661 depends on SYS_HAS_CPU_TX39XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001662 select CPU_SUPPORTS_32BIT_KERNEL
Paul Burton54746822019-08-31 15:40:43 +00001663 select CPU_R3K_TLB
Linus Torvalds1da177e2005-04-16 15:20:36 -07001664
1665config CPU_VR41XX
1666 bool "R41xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001667 depends on SYS_HAS_CPU_VR41XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001668 select CPU_SUPPORTS_32BIT_KERNEL
1669 select CPU_SUPPORTS_64BIT_KERNEL
Linus Torvalds1da177e2005-04-16 15:20:36 -07001670 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001671 The options selects support for the NEC VR4100 series of processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001672 Only choose this option if you have one of these processors as a
1673 kernel built with this option will not run on any other type of
1674 processor or vice versa.
1675
Lauri Kasanen65ce6192021-01-13 17:10:07 +02001676config CPU_R4300
1677 bool "R4300"
1678 depends on SYS_HAS_CPU_R4300
1679 select CPU_SUPPORTS_32BIT_KERNEL
1680 select CPU_SUPPORTS_64BIT_KERNEL
1681 select CPU_HAS_LOAD_STORE_LR
1682 help
1683 MIPS Technologies R4300-series processors.
1684
Linus Torvalds1da177e2005-04-16 15:20:36 -07001685config CPU_R4X00
1686 bool "R4x00"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001687 depends on SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001688 select CPU_SUPPORTS_32BIT_KERNEL
1689 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001690 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001691 help
1692 MIPS Technologies R4000-series processors other than 4300, including
1693 the R4000, R4400, R4600, and 4700.
1694
1695config CPU_TX49XX
1696 bool "R49XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001697 depends on SYS_HAS_CPU_TX49XX
Atsushi Nemotode862b42006-03-17 12:59:22 +09001698 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001699 select CPU_SUPPORTS_32BIT_KERNEL
1700 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001701 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001702
1703config CPU_R5000
1704 bool "R5000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001705 depends on SYS_HAS_CPU_R5000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001706 select CPU_SUPPORTS_32BIT_KERNEL
1707 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001708 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001709 help
1710 MIPS Technologies R5000-series processors other than the Nevada.
1711
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001712config CPU_R5500
1713 bool "R5500"
1714 depends on SYS_HAS_CPU_R5500
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001715 select CPU_SUPPORTS_32BIT_KERNEL
1716 select CPU_SUPPORTS_64BIT_KERNEL
David Daney9cffd1542009-05-27 17:47:46 -07001717 select CPU_SUPPORTS_HUGEPAGES
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001718 help
1719 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1720 instruction set.
1721
Linus Torvalds1da177e2005-04-16 15:20:36 -07001722config CPU_NEVADA
1723 bool "RM52xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001724 depends on SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001725 select CPU_SUPPORTS_32BIT_KERNEL
1726 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001727 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001728 help
1729 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1730
Linus Torvalds1da177e2005-04-16 15:20:36 -07001731config CPU_R10000
1732 bool "R10000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001733 depends on SYS_HAS_CPU_R10000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001734 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001735 select CPU_SUPPORTS_32BIT_KERNEL
1736 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001737 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001738 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001739 help
1740 MIPS Technologies R10000-series processors.
1741
1742config CPU_RM7000
1743 bool "RM7000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001744 depends on SYS_HAS_CPU_RM7000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001745 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001746 select CPU_SUPPORTS_32BIT_KERNEL
1747 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001748 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001749 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001750
1751config CPU_SB1
1752 bool "SB1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001753 depends on SYS_HAS_CPU_SB1
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001754 select CPU_SUPPORTS_32BIT_KERNEL
1755 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001756 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001757 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle0004a9d2006-10-31 03:45:07 +00001758 select WEAK_ORDERING
Linus Torvalds1da177e2005-04-16 15:20:36 -07001759
David Daneya86c7f72008-12-11 15:33:38 -08001760config CPU_CAVIUM_OCTEON
1761 bool "Cavium Octeon processor"
David Daney5e683382009-02-02 11:30:59 -08001762 depends on SYS_HAS_CPU_CAVIUM_OCTEON
David Daneya86c7f72008-12-11 15:33:38 -08001763 select CPU_HAS_PREFETCH
1764 select CPU_SUPPORTS_64BIT_KERNEL
David Daneya86c7f72008-12-11 15:33:38 -08001765 select WEAK_ORDERING
David Daneya86c7f72008-12-11 15:33:38 -08001766 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001767 select CPU_SUPPORTS_HUGEPAGES
Ben Hutchingsdf115f32015-05-25 20:27:29 +01001768 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1769 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Florian Fainelli930beb52014-01-14 09:54:38 -08001770 select MIPS_L1_CACHE_SHIFT_7
James Hogan0ae3abc2017-03-14 10:25:51 +00001771 select HAVE_KVM
David Daneya86c7f72008-12-11 15:33:38 -08001772 help
1773 The Cavium Octeon processor is a highly integrated chip containing
1774 many ethernet hardware widgets for networking tasks. The processor
1775 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1776 Full details can be found at http://www.caviumnetworks.com.
1777
Jonas Gorskicd746242013-12-18 14:12:02 +01001778config CPU_BMIPS
1779 bool "Broadcom BMIPS"
1780 depends on SYS_HAS_CPU_BMIPS
1781 select CPU_MIPS32
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001782 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
Jonas Gorskicd746242013-12-18 14:12:02 +01001783 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1784 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1785 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1786 select CPU_SUPPORTS_32BIT_KERNEL
1787 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001788 select IRQ_MIPS_CPU
Jonas Gorskicd746242013-12-18 14:12:02 +01001789 select SWAP_IO_SPACE
1790 select WEAK_ORDERING
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001791 select CPU_SUPPORTS_HIGHMEM
Jonas Gorski69aaf9c2013-12-18 14:12:04 +01001792 select CPU_HAS_PREFETCH
Markus Mayera8d709b2017-02-07 13:58:54 -08001793 select CPU_SUPPORTS_CPUFREQ
1794 select MIPS_EXTERNAL_TIMER
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001795 help
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001796 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001797
Jayachandran C7f058e82011-05-07 01:36:57 +05301798config CPU_XLR
1799 bool "Netlogic XLR SoC"
1800 depends on SYS_HAS_CPU_XLR
1801 select CPU_SUPPORTS_32BIT_KERNEL
1802 select CPU_SUPPORTS_64BIT_KERNEL
1803 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001804 select CPU_SUPPORTS_HUGEPAGES
Jayachandran C7f058e82011-05-07 01:36:57 +05301805 select WEAK_ORDERING
1806 select WEAK_REORDERING_BEYOND_LLSC
Jayachandran C7f058e82011-05-07 01:36:57 +05301807 help
1808 Netlogic Microsystems XLR/XLS processors.
Jayachandran C1c773ea2011-11-16 00:21:28 +00001809
1810config CPU_XLP
1811 bool "Netlogic XLP SoC"
1812 depends on SYS_HAS_CPU_XLP
1813 select CPU_SUPPORTS_32BIT_KERNEL
1814 select CPU_SUPPORTS_64BIT_KERNEL
1815 select CPU_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +00001816 select WEAK_ORDERING
1817 select WEAK_REORDERING_BEYOND_LLSC
1818 select CPU_HAS_PREFETCH
Jayachandran Cd6504842012-10-31 12:01:29 +00001819 select CPU_MIPSR2
Prem Mallappaddba6832015-01-07 16:58:32 +05301820 select CPU_SUPPORTS_HUGEPAGES
Paul Burton2db003a2016-05-06 14:36:24 +01001821 select MIPS_ASID_BITS_VARIABLE
Jayachandran C1c773ea2011-11-16 00:21:28 +00001822 help
1823 Netlogic Microsystems XLP processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001824endchoice
1825
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001826config CPU_MIPS32_3_5_FEATURES
1827 bool "MIPS32 Release 3.5 Features"
1828 depends on SYS_HAS_CPU_MIPS32_R3_5
Serge Semin281e3ae2020-05-21 17:07:15 +03001829 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
1830 CPU_P5600
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001831 help
1832 Choose this option to build a kernel for release 2 or later of the
1833 MIPS32 architecture including features from the 3.5 release such as
1834 support for Enhanced Virtual Addressing (EVA).
1835
1836config CPU_MIPS32_3_5_EVA
1837 bool "Enhanced Virtual Addressing (EVA)"
1838 depends on CPU_MIPS32_3_5_FEATURES
1839 select EVA
1840 default y
1841 help
1842 Choose this option if you want to enable the Enhanced Virtual
1843 Addressing (EVA) on your MIPS32 core (such as proAptiv).
1844 One of its primary benefits is an increase in the maximum size
1845 of lowmem (up to 3GB). If unsure, say 'N' here.
1846
Steven J. Hillc5b36782015-02-26 18:16:38 -06001847config CPU_MIPS32_R5_FEATURES
1848 bool "MIPS32 Release 5 Features"
1849 depends on SYS_HAS_CPU_MIPS32_R5
Serge Semin281e3ae2020-05-21 17:07:15 +03001850 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
Steven J. Hillc5b36782015-02-26 18:16:38 -06001851 help
1852 Choose this option to build a kernel for release 2 or later of the
1853 MIPS32 architecture including features from release 5 such as
1854 support for Extended Physical Addressing (XPA).
1855
1856config CPU_MIPS32_R5_XPA
1857 bool "Extended Physical Addressing (XPA)"
1858 depends on CPU_MIPS32_R5_FEATURES
1859 depends on !EVA
1860 depends on !PAGE_SIZE_4KB
1861 depends on SYS_SUPPORTS_HIGHMEM
1862 select XPA
1863 select HIGHMEM
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001864 select PHYS_ADDR_T_64BIT
Steven J. Hillc5b36782015-02-26 18:16:38 -06001865 default n
1866 help
1867 Choose this option if you want to enable the Extended Physical
1868 Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1869 benefit is to increase physical addressing equal to or greater
1870 than 40 bits. Note that this has the side effect of turning on
1871 64-bit addressing which in turn makes the PTEs 64-bit in size.
1872 If unsure, say 'N' here.
1873
Wu Zhangjin622844b2010-04-10 20:04:42 +08001874if CPU_LOONGSON2F
1875config CPU_NOP_WORKAROUNDS
1876 bool
1877
1878config CPU_JUMP_WORKAROUNDS
1879 bool
1880
1881config CPU_LOONGSON2F_WORKAROUNDS
1882 bool "Loongson 2F Workarounds"
1883 default y
1884 select CPU_NOP_WORKAROUNDS
1885 select CPU_JUMP_WORKAROUNDS
1886 help
1887 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1888 require workarounds. Without workarounds the system may hang
1889 unexpectedly. For more information please refer to the gas
1890 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1891
1892 Loongson 2F03 and later have fixed these issues and no workarounds
1893 are needed. The workarounds have no significant side effect on them
1894 but may decrease the performance of the system so this option should
1895 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1896 systems.
1897
1898 If unsure, please say Y.
1899endif # CPU_LOONGSON2F
1900
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001901config SYS_SUPPORTS_ZBOOT
1902 bool
1903 select HAVE_KERNEL_GZIP
1904 select HAVE_KERNEL_BZIP2
Florian Fainelli31c48672013-09-16 16:55:20 +01001905 select HAVE_KERNEL_LZ4
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001906 select HAVE_KERNEL_LZMA
Wu Zhangjinfe1d45e2010-01-15 20:34:46 +08001907 select HAVE_KERNEL_LZO
Florian Fainelli4e23eb62013-09-11 11:51:41 +01001908 select HAVE_KERNEL_XZ
Paul Cercueila510b612020-09-01 16:26:51 +02001909 select HAVE_KERNEL_ZSTD
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001910
1911config SYS_SUPPORTS_ZBOOT_UART16550
1912 bool
1913 select SYS_SUPPORTS_ZBOOT
1914
Alban Bedeldbb98312015-12-10 10:57:21 +01001915config SYS_SUPPORTS_ZBOOT_UART_PROM
1916 bool
1917 select SYS_SUPPORTS_ZBOOT
1918
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001919config CPU_LOONGSON2EF
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001920 bool
1921 select CPU_SUPPORTS_32BIT_KERNEL
1922 select CPU_SUPPORTS_64BIT_KERNEL
1923 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001924 select CPU_SUPPORTS_HUGEPAGES
Christoph Hellwige9050862018-06-20 09:11:15 +02001925 select ARCH_HAS_PHYS_TO_DMA
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001926
Huacai Chenb2afb642019-11-04 14:11:20 +08001927config CPU_LOONGSON32
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001928 bool
1929 select CPU_MIPS32
Jiaxun Yang7e280f62019-01-22 21:04:12 +08001930 select CPU_MIPSR2
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001931 select CPU_HAS_PREFETCH
1932 select CPU_SUPPORTS_32BIT_KERNEL
1933 select CPU_SUPPORTS_HIGHMEM
Kelvin Cheungf29ad102014-10-10 11:40:01 +08001934 select CPU_SUPPORTS_CPUFREQ
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001935
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001936config CPU_BMIPS32_3300
Jonas Gorski04fa8bf2013-12-18 14:12:06 +01001937 select SMP_UP if SMP
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001938 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001939
1940config CPU_BMIPS4350
1941 bool
1942 select SYS_SUPPORTS_SMP
1943 select SYS_SUPPORTS_HOTPLUG_CPU
1944
1945config CPU_BMIPS4380
1946 bool
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001947 select MIPS_L1_CACHE_SHIFT_6
Jonas Gorskicd746242013-12-18 14:12:02 +01001948 select SYS_SUPPORTS_SMP
1949 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001950 select CPU_HAS_RIXI
Jonas Gorskicd746242013-12-18 14:12:02 +01001951
1952config CPU_BMIPS5000
1953 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001954 select MIPS_CPU_SCACHE
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001955 select MIPS_L1_CACHE_SHIFT_7
Jonas Gorskicd746242013-12-18 14:12:02 +01001956 select SYS_SUPPORTS_SMP
1957 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001958 select CPU_HAS_RIXI
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001959
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001960config SYS_HAS_CPU_LOONGSON64
Huacai Chen0e476d92014-03-21 18:44:07 +08001961 bool
1962 select CPU_SUPPORTS_CPUFREQ
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001963 select CPU_HAS_RIXI
Huacai Chen0e476d92014-03-21 18:44:07 +08001964
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001965config SYS_HAS_CPU_LOONGSON2E
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001966 bool
1967
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001968config SYS_HAS_CPU_LOONGSON2F
1969 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08001970 select CPU_SUPPORTS_CPUFREQ
1971 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001972
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001973config SYS_HAS_CPU_LOONGSON1B
1974 bool
1975
Yang Ling12e32802016-05-19 12:29:30 +08001976config SYS_HAS_CPU_LOONGSON1C
1977 bool
1978
Ralf Baechle7cf80532005-10-20 22:33:09 +01001979config SYS_HAS_CPU_MIPS32_R1
1980 bool
1981
1982config SYS_HAS_CPU_MIPS32_R2
1983 bool
1984
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001985config SYS_HAS_CPU_MIPS32_R3_5
1986 bool
1987
Steven J. Hillc5b36782015-02-26 18:16:38 -06001988config SYS_HAS_CPU_MIPS32_R5
1989 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08001990 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Steven J. Hillc5b36782015-02-26 18:16:38 -06001991
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001992config SYS_HAS_CPU_MIPS32_R6
1993 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08001994 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001995
Ralf Baechle7cf80532005-10-20 22:33:09 +01001996config SYS_HAS_CPU_MIPS64_R1
1997 bool
1998
1999config SYS_HAS_CPU_MIPS64_R2
2000 bool
2001
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002002config SYS_HAS_CPU_MIPS64_R6
2003 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002004 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002005
Serge Semin281e3ae2020-05-21 17:07:15 +03002006config SYS_HAS_CPU_P5600
2007 bool
2008 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2009
Ralf Baechle7cf80532005-10-20 22:33:09 +01002010config SYS_HAS_CPU_R3000
2011 bool
2012
2013config SYS_HAS_CPU_TX39XX
2014 bool
2015
2016config SYS_HAS_CPU_VR41XX
2017 bool
2018
Lauri Kasanen65ce6192021-01-13 17:10:07 +02002019config SYS_HAS_CPU_R4300
2020 bool
2021
Ralf Baechle7cf80532005-10-20 22:33:09 +01002022config SYS_HAS_CPU_R4X00
2023 bool
2024
2025config SYS_HAS_CPU_TX49XX
2026 bool
2027
2028config SYS_HAS_CPU_R5000
2029 bool
2030
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09002031config SYS_HAS_CPU_R5500
2032 bool
2033
Ralf Baechle7cf80532005-10-20 22:33:09 +01002034config SYS_HAS_CPU_NEVADA
2035 bool
2036
Ralf Baechle7cf80532005-10-20 22:33:09 +01002037config SYS_HAS_CPU_R10000
2038 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002039 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Ralf Baechle7cf80532005-10-20 22:33:09 +01002040
2041config SYS_HAS_CPU_RM7000
2042 bool
2043
Ralf Baechle7cf80532005-10-20 22:33:09 +01002044config SYS_HAS_CPU_SB1
2045 bool
2046
David Daney5e683382009-02-02 11:30:59 -08002047config SYS_HAS_CPU_CAVIUM_OCTEON
2048 bool
2049
Jonas Gorskicd746242013-12-18 14:12:02 +01002050config SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002051 bool
2052
Jonas Gorskife7f62c2013-12-18 14:12:05 +01002053config SYS_HAS_CPU_BMIPS32_3300
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002054 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002055 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002056
2057config SYS_HAS_CPU_BMIPS4350
2058 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002059 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002060
2061config SYS_HAS_CPU_BMIPS4380
2062 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002063 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002064
2065config SYS_HAS_CPU_BMIPS5000
2066 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002067 select SYS_HAS_CPU_BMIPS
Hauke Mehrtensf263f2a2018-12-09 16:49:57 +01002068 select ARCH_HAS_SYNC_DMA_FOR_CPU
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002069
Jayachandran C7f058e82011-05-07 01:36:57 +05302070config SYS_HAS_CPU_XLR
2071 bool
2072
Jayachandran C1c773ea2011-11-16 00:21:28 +00002073config SYS_HAS_CPU_XLP
2074 bool
2075
Ralf Baechle17099b12007-07-14 13:24:05 +01002076#
2077# CPU may reorder R->R, R->W, W->R, W->W
2078# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
2079#
Ralf Baechle0004a9d2006-10-31 03:45:07 +00002080config WEAK_ORDERING
2081 bool
Ralf Baechle17099b12007-07-14 13:24:05 +01002082
2083#
2084# CPU may reorder reads and writes beyond LL/SC
2085# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
2086#
2087config WEAK_REORDERING_BEYOND_LLSC
2088 bool
Ralf Baechle5e83d432005-10-29 19:32:41 +01002089endmenu
2090
2091#
Chris Dearmanc09b47d2006-06-20 17:15:20 +01002092# These two indicate any level of the MIPS32 and MIPS64 architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002093#
2094config CPU_MIPS32
2095 bool
Serge Seminab7c01f2020-05-21 17:07:14 +03002096 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
Serge Semin281e3ae2020-05-21 17:07:15 +03002097 CPU_MIPS32_R6 || CPU_P5600
Ralf Baechle5e83d432005-10-29 19:32:41 +01002098
2099config CPU_MIPS64
2100 bool
Serge Seminab7c01f2020-05-21 17:07:14 +03002101 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
2102 CPU_MIPS64_R6
Ralf Baechle5e83d432005-10-29 19:32:41 +01002103
2104#
Paul Burton57eeaced2018-11-08 23:44:55 +00002105# These indicate the revision of the architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002106#
2107config CPU_MIPSR1
2108 bool
2109 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
2110
2111config CPU_MIPSR2
2112 bool
David Daneya86c7f72008-12-11 15:33:38 -08002113 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
Florian Fainelli8256b172016-02-09 12:55:51 -08002114 select CPU_HAS_RIXI
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002115 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002116 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002117
Serge Seminab7c01f2020-05-21 17:07:14 +03002118config CPU_MIPSR5
2119 bool
Serge Semin281e3ae2020-05-21 17:07:15 +03002120 default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
Serge Seminab7c01f2020-05-21 17:07:14 +03002121 select CPU_HAS_RIXI
2122 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2123 select MIPS_SPRAM
2124
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002125config CPU_MIPSR6
2126 bool
2127 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
Florian Fainelli8256b172016-02-09 12:55:51 -08002128 select CPU_HAS_RIXI
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002129 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
Paul Burton87321fd2016-05-06 13:35:03 +01002130 select HAVE_ARCH_BITREVERSE
Paul Burton2db003a2016-05-06 14:36:24 +01002131 select MIPS_ASID_BITS_VARIABLE
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002132 select MIPS_CRC_SUPPORT
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002133 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002134
Paul Burton57eeaced2018-11-08 23:44:55 +00002135config TARGET_ISA_REV
2136 int
2137 default 1 if CPU_MIPSR1
2138 default 2 if CPU_MIPSR2
Serge Seminab7c01f2020-05-21 17:07:14 +03002139 default 5 if CPU_MIPSR5
Paul Burton57eeaced2018-11-08 23:44:55 +00002140 default 6 if CPU_MIPSR6
2141 default 0
2142 help
2143 Reflects the ISA revision being targeted by the kernel build. This
2144 is effectively the Kconfig equivalent of MIPS_ISA_REV.
2145
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002146config EVA
2147 bool
2148
Steven J. Hillc5b36782015-02-26 18:16:38 -06002149config XPA
2150 bool
2151
Ralf Baechle5e83d432005-10-29 19:32:41 +01002152config SYS_SUPPORTS_32BIT_KERNEL
2153 bool
2154config SYS_SUPPORTS_64BIT_KERNEL
2155 bool
2156config CPU_SUPPORTS_32BIT_KERNEL
2157 bool
2158config CPU_SUPPORTS_64BIT_KERNEL
2159 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08002160config CPU_SUPPORTS_CPUFREQ
2161 bool
2162config CPU_SUPPORTS_ADDRWINCFG
2163 bool
David Daney9cffd1542009-05-27 17:47:46 -07002164config CPU_SUPPORTS_HUGEPAGES
2165 bool
Daniel Silsby171543e2019-07-15 17:39:59 -04002166 depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
David Daney82622282009-10-14 12:16:56 -07002167config MIPS_PGD_C0_CONTEXT
2168 bool
Paul Burtoncebf8c02017-06-02 15:38:03 -07002169 default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
Ralf Baechle5e83d432005-10-29 19:32:41 +01002170
David Daney8192c9e2008-09-23 00:04:26 -07002171#
2172# Set to y for ptrace access to watch registers.
2173#
2174config HARDWARE_WATCHPOINTS
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002175 bool
2176 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
David Daney8192c9e2008-09-23 00:04:26 -07002177
Ralf Baechle5e83d432005-10-29 19:32:41 +01002178menu "Kernel type"
2179
2180choice
Ralf Baechle5e83d432005-10-29 19:32:41 +01002181 prompt "Kernel code model"
2182 help
2183 You should only select this option if you have a workload that
2184 actually benefits from 64-bit processing or if your machine has
2185 large memory. You will only be presented a single option in this
2186 menu if your system does not support both 32-bit and 64-bit kernels.
2187
2188config 32BIT
2189 bool "32-bit kernel"
2190 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2191 select TRAD_SIGNALS
2192 help
2193 Select this option if you want to build a 32-bit kernel.
Ralf Baechlef17c4ca2015-07-23 12:02:09 +02002194
Ralf Baechle5e83d432005-10-29 19:32:41 +01002195config 64BIT
2196 bool "64-bit kernel"
2197 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
2198 help
2199 Select this option if you want to build a 64-bit kernel.
2200
2201endchoice
2202
Sanjay Lal2235a542012-11-21 18:33:59 -08002203config KVM_GUEST
2204 bool "KVM Guest Kernel"
Jiaxun Yang01edc5e2020-07-10 14:30:17 +08002205 depends on CPU_MIPS32_R2
James Hoganf2a5b1d2013-07-12 10:26:11 +00002206 depends on BROKEN_ON_SMP
Sanjay Lal2235a542012-11-21 18:33:59 -08002207 help
James Hogancaa1faa2015-12-16 23:49:26 +00002208 Select this option if building a guest kernel for KVM (Trap & Emulate)
2209 mode.
Sanjay Lal2235a542012-11-21 18:33:59 -08002210
James Hoganeda3d332014-05-29 10:16:36 +01002211config KVM_GUEST_TIMER_FREQ
2212 int "Count/Compare Timer Frequency (MHz)"
Sanjay Lal2235a542012-11-21 18:33:59 -08002213 depends on KVM_GUEST
James Hoganeda3d332014-05-29 10:16:36 +01002214 default 100
Sanjay Lal2235a542012-11-21 18:33:59 -08002215 help
James Hoganeda3d332014-05-29 10:16:36 +01002216 Set this to non-zero if building a guest kernel for KVM to skip RTC
2217 emulation when determining guest CPU Frequency. Instead, the guest's
2218 timer frequency is specified directly.
Sanjay Lal2235a542012-11-21 18:33:59 -08002219
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002220config MIPS_VA_BITS_48
2221 bool "48 bits virtual memory"
2222 depends on 64BIT
2223 help
Alex Belits3377e222017-02-16 17:27:34 -08002224 Support a maximum at least 48 bits of application virtual
2225 memory. Default is 40 bits or less, depending on the CPU.
2226 For page sizes 16k and above, this option results in a small
2227 memory overhead for page tables. For 4k page size, a fourth
2228 level of page tables is added which imposes both a memory
2229 overhead as well as slower TLB fault handling.
2230
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002231 If unsure, say N.
2232
Linus Torvalds1da177e2005-04-16 15:20:36 -07002233choice
2234 prompt "Kernel page size"
2235 default PAGE_SIZE_4KB
2236
2237config PAGE_SIZE_4KB
2238 bool "4kB"
Jiaxun Yang268a2d62019-10-20 22:43:13 +08002239 depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
Linus Torvalds1da177e2005-04-16 15:20:36 -07002240 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002241 This option select the standard 4kB Linux page size. On some
2242 R3000-family processors this is the only available page size. Using
2243 4kB page size will minimize memory consumption and is therefore
2244 recommended for low memory systems.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002245
2246config PAGE_SIZE_8KB
2247 bool "8kB"
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002248 depends on CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002249 depends on !MIPS_VA_BITS_48
Linus Torvalds1da177e2005-04-16 15:20:36 -07002250 help
2251 Using 8kB page size will result in higher performance kernel at
2252 the price of higher memory consumption. This option is available
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002253 only on cnMIPS processors. Note that you will need a suitable Linux
2254 distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002255
2256config PAGE_SIZE_16KB
2257 bool "16kB"
Ralf Baechle714bfad2006-05-17 14:04:30 +01002258 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002259 help
2260 Using 16kB page size will result in higher performance kernel at
2261 the price of higher memory consumption. This option is available on
Ralf Baechle714bfad2006-05-17 14:04:30 +01002262 all non-R3000 family processors. Note that you will need a suitable
2263 Linux distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002264
Ralf Baechlec52399b2009-04-02 14:07:10 +02002265config PAGE_SIZE_32KB
2266 bool "32kB"
2267 depends on CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002268 depends on !MIPS_VA_BITS_48
Ralf Baechlec52399b2009-04-02 14:07:10 +02002269 help
2270 Using 32kB page size will result in higher performance kernel at
2271 the price of higher memory consumption. This option is available
2272 only on cnMIPS cores. Note that you will need a suitable Linux
2273 distribution to support this.
2274
Linus Torvalds1da177e2005-04-16 15:20:36 -07002275config PAGE_SIZE_64KB
2276 bool "64kB"
Paul Burton3b2db172017-06-05 11:21:27 -07002277 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002278 help
2279 Using 64kB page size will result in higher performance kernel at
2280 the price of higher memory consumption. This option is available on
2281 all non-R3000 family processor. Not that at the time of this
Ralf Baechle714bfad2006-05-17 14:04:30 +01002282 writing this option is still high experimental.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002283
2284endchoice
2285
David Daneyc9bace72010-10-11 14:52:45 -07002286config FORCE_MAX_ZONEORDER
2287 int "Maximum zone order"
Alex Smithe4362d12014-01-21 11:22:35 +00002288 range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2289 default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2290 range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2291 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2292 range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2293 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
Paul Cercueilef923a72020-09-17 15:35:28 +02002294 range 0 64
David Daneyc9bace72010-10-11 14:52:45 -07002295 default "11"
2296 help
2297 The kernel memory allocator divides physically contiguous memory
2298 blocks into "zones", where each zone is a power of two number of
2299 pages. This option selects the largest power of two that the kernel
2300 keeps in the memory allocator. If you need to allocate very large
2301 blocks of physically contiguous memory, then you may need to
2302 increase this value.
2303
2304 This config option is actually maximum order plus one. For example,
2305 a value of 11 means that the largest free memory block is 2^10 pages.
2306
2307 The page size is not necessarily 4KB. Keep this in mind
2308 when choosing a value for this option.
2309
Linus Torvalds1da177e2005-04-16 15:20:36 -07002310config BOARD_SCACHE
2311 bool
2312
2313config IP22_CPU_SCACHE
2314 bool
2315 select BOARD_SCACHE
2316
Chris Dearman9318c512006-06-20 17:15:20 +01002317#
2318# Support for a MIPS32 / MIPS64 style S-caches
2319#
2320config MIPS_CPU_SCACHE
2321 bool
2322 select BOARD_SCACHE
2323
Linus Torvalds1da177e2005-04-16 15:20:36 -07002324config R5000_CPU_SCACHE
2325 bool
2326 select BOARD_SCACHE
2327
2328config RM7000_CPU_SCACHE
2329 bool
2330 select BOARD_SCACHE
2331
2332config SIBYTE_DMA_PAGEOPS
2333 bool "Use DMA to clear/copy pages"
2334 depends on CPU_SB1
2335 help
2336 Instead of using the CPU to zero and copy pages, use a Data Mover
2337 channel. These DMA channels are otherwise unused by the standard
2338 SiByte Linux port. Seems to give a small performance benefit.
2339
2340config CPU_HAS_PREFETCH
Ralf Baechlec8094b52005-08-05 14:28:54 +00002341 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002342
Florian Fainelli3165c842012-01-31 18:18:43 +01002343config CPU_GENERIC_DUMP_TLB
2344 bool
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002345 default y if !(CPU_R3000 || CPU_TX39XX)
Florian Fainelli3165c842012-01-31 18:18:43 +01002346
Paul Burtonc92e47e2018-11-07 23:14:02 +00002347config MIPS_FP_SUPPORT
Paul Burton183b40f2018-11-07 23:14:11 +00002348 bool "Floating Point support" if EXPERT
2349 default y
2350 help
2351 Select y to include support for floating point in the kernel
2352 including initialization of FPU hardware, FP context save & restore
2353 and emulation of an FPU where necessary. Without this support any
2354 userland program attempting to use floating point instructions will
2355 receive a SIGILL.
2356
2357 If you know that your userland will not attempt to use floating point
2358 instructions then you can say n here to shrink the kernel a little.
2359
2360 If unsure, say y.
Paul Burtonc92e47e2018-11-07 23:14:02 +00002361
Paul Burton97f7dcb2018-11-07 23:14:02 +00002362config CPU_R2300_FPU
2363 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002364 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002365 default y if CPU_R3000 || CPU_TX39XX
2366
Paul Burton54746822019-08-31 15:40:43 +00002367config CPU_R3K_TLB
2368 bool
2369
Florian Fainelli91405eb2012-01-31 18:18:44 +01002370config CPU_R4K_FPU
2371 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002372 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002373 default y if !CPU_R2300_FPU
Florian Fainelli91405eb2012-01-31 18:18:44 +01002374
Florian Fainelli62cedc42012-01-31 18:18:45 +01002375config CPU_R4K_CACHE_TLB
2376 bool
Paul Burton54746822019-08-31 15:40:43 +00002377 default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
Florian Fainelli62cedc42012-01-31 18:18:45 +01002378
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002379config MIPS_MT_SMP
Markos Chandrasa92b7f82014-04-08 11:59:10 +01002380 bool "MIPS MT SMP support (1 TC on each available VPE)"
Paul Burton5cbf9682017-08-07 16:01:16 -07002381 default y
Paul Burton527f1022017-08-07 16:18:04 -07002382 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002383 select CPU_MIPSR2_IRQ_VI
Chris Dearmand725cf32007-05-08 14:05:39 +01002384 select CPU_MIPSR2_IRQ_EI
Steven J. Hillc080faa2013-10-04 16:23:28 -05002385 select SYNC_R4K
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002386 select MIPS_MT
2387 select SMP
Ralf Baechle87353d82007-11-19 12:23:51 +00002388 select SMP_UP
Steven J. Hillc080faa2013-10-04 16:23:28 -05002389 select SYS_SUPPORTS_SMP
2390 select SYS_SUPPORTS_SCHED_SMT
Al Cooper399aaa22012-07-13 16:44:53 -04002391 select MIPS_PERF_SHARED_TC_COUNTERS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002392 help
Steven J. Hillc080faa2013-10-04 16:23:28 -05002393 This is a kernel model which is known as SMVP. This is supported
2394 on cores with the MT ASE and uses the available VPEs to implement
2395 virtual processors which supports SMP. This is equivalent to the
2396 Intel Hyperthreading feature. For further information go to
2397 <http://www.imgtec.com/mips/mips-multithreading.asp>.
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002398
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002399config MIPS_MT
2400 bool
2401
Ralf Baechle0ab7aef2007-03-02 20:42:04 +00002402config SCHED_SMT
2403 bool "SMT (multithreading) scheduler support"
2404 depends on SYS_SUPPORTS_SCHED_SMT
2405 default n
2406 help
2407 SMT scheduler support improves the CPU scheduler's decision making
2408 when dealing with MIPS MT enabled cores at a cost of slightly
2409 increased overhead in some places. If unsure say N here.
2410
2411config SYS_SUPPORTS_SCHED_SMT
2412 bool
2413
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002414config SYS_SUPPORTS_MULTITHREADING
2415 bool
2416
Ralf Baechlef088fc82006-04-05 09:45:47 +01002417config MIPS_MT_FPAFF
2418 bool "Dynamic FPU affinity for FP-intensive threads"
Ralf Baechlef088fc82006-04-05 09:45:47 +01002419 default y
Ralf Baechleb6336482014-05-23 16:29:44 +02002420 depends on MIPS_MT_SMP
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002421
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002422config MIPSR2_TO_R6_EMULATOR
2423 bool "MIPS R2-to-R6 emulator"
Paul Burton9eaa9a82016-10-17 15:34:37 +01002424 depends on CPU_MIPSR6
Paul Burtonc92e47e2018-11-07 23:14:02 +00002425 depends on MIPS_FP_SUPPORT
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002426 default y
2427 help
2428 Choose this option if you want to run non-R6 MIPS userland code.
2429 Even if you say 'Y' here, the emulator will still be disabled by
Markos Chandras07edf0d2015-03-10 12:30:56 +00002430 default. You can enable it using the 'mipsr2emu' kernel option.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002431 The only reason this is a build-time option is to save ~14K from the
2432 final kernel image.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002433
James Hoganf35764e2018-01-15 20:54:35 +00002434config SYS_SUPPORTS_VPE_LOADER
2435 bool
2436 depends on SYS_SUPPORTS_MULTITHREADING
2437 help
2438 Indicates that the platform supports the VPE loader, and provides
2439 physical_memsize.
2440
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002441config MIPS_VPE_LOADER
2442 bool "VPE loader support."
James Hoganf35764e2018-01-15 20:54:35 +00002443 depends on SYS_SUPPORTS_VPE_LOADER && MODULES
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002444 select CPU_MIPSR2_IRQ_VI
2445 select CPU_MIPSR2_IRQ_EI
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002446 select MIPS_MT
2447 help
2448 Includes a loader for loading an elf relocatable object
2449 onto another VPE and running it.
Ralf Baechlef088fc82006-04-05 09:45:47 +01002450
Deng-Cheng Zhu17a1d522013-10-30 15:52:07 -05002451config MIPS_VPE_LOADER_CMP
2452 bool
2453 default "y"
2454 depends on MIPS_VPE_LOADER && MIPS_CMP
2455
Deng-Cheng Zhu1a2a6d72013-10-30 15:52:06 -05002456config MIPS_VPE_LOADER_MT
2457 bool
2458 default "y"
2459 depends on MIPS_VPE_LOADER && !MIPS_CMP
2460
Ralf Baechlee01402b2005-07-14 15:57:16 +00002461config MIPS_VPE_LOADER_TOM
2462 bool "Load VPE program into memory hidden from linux"
2463 depends on MIPS_VPE_LOADER
2464 default y
2465 help
2466 The loader can use memory that is present but has been hidden from
2467 Linux using the kernel command line option "mem=xxMB". It's up to
2468 you to ensure the amount you put in the option and the space your
2469 program requires is less or equal to the amount physically present.
2470
Ralf Baechlee01402b2005-07-14 15:57:16 +00002471config MIPS_VPE_APSP_API
Ralf Baechle5e83d432005-10-29 19:32:41 +01002472 bool "Enable support for AP/SP API (RTLX)"
2473 depends on MIPS_VPE_LOADER
Ralf Baechlee01402b2005-07-14 15:57:16 +00002474
Deng-Cheng Zhuda615cf2014-01-01 16:29:03 +01002475config MIPS_VPE_APSP_API_CMP
2476 bool
2477 default "y"
2478 depends on MIPS_VPE_APSP_API && MIPS_CMP
2479
Deng-Cheng Zhu2c973ef2014-01-01 16:26:46 +01002480config MIPS_VPE_APSP_API_MT
2481 bool
2482 default "y"
2483 depends on MIPS_VPE_APSP_API && !MIPS_CMP
2484
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002485config MIPS_CMP
Paul Burton5cac93b2014-01-15 10:32:00 +00002486 bool "MIPS CMP framework support (DEPRECATED)"
Markos Chandras56763192015-07-09 10:40:38 +01002487 depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002488 select SMP
Tim Andersoneb9b5142009-06-17 16:40:34 -07002489 select SYNC_R4K
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002490 select SYS_SUPPORTS_SMP
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002491 select WEAK_ORDERING
2492 default n
2493 help
Paul Burton044505c2014-01-15 10:31:58 +00002494 Select this if you are using a bootloader which implements the "CMP
2495 framework" protocol (ie. YAMON) and want your kernel to make use of
2496 its ability to start secondary CPUs.
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002497
Paul Burton5cac93b2014-01-15 10:32:00 +00002498 Unless you have a specific need, you should use CONFIG_MIPS_CPS
2499 instead of this.
2500
Paul Burton0ee958e2014-01-15 10:31:53 +00002501config MIPS_CPS
2502 bool "MIPS Coherent Processing System support"
Paul Burton5a3e7c02016-02-03 03:15:33 +00002503 depends on SYS_SUPPORTS_MIPS_CPS
Paul Burton0ee958e2014-01-15 10:31:53 +00002504 select MIPS_CM
Paul Burton1d8f1f52014-04-14 14:13:57 +01002505 select MIPS_CPS_PM if HOTPLUG_CPU
Paul Burton0ee958e2014-01-15 10:31:53 +00002506 select SMP
2507 select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
Paul Burton1d8f1f52014-04-14 14:13:57 +01002508 select SYS_SUPPORTS_HOTPLUG_CPU
Paul Burtonc8b77122017-06-02 14:48:52 -07002509 select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
Paul Burton0ee958e2014-01-15 10:31:53 +00002510 select SYS_SUPPORTS_SMP
2511 select WEAK_ORDERING
Wei Lid8d32762020-12-03 14:54:43 +08002512 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
Paul Burton0ee958e2014-01-15 10:31:53 +00002513 help
2514 Select this if you wish to run an SMP kernel across multiple cores
2515 within a MIPS Coherent Processing System. When this option is
2516 enabled the kernel will probe for other cores and boot them with
2517 no external assistance. It is safe to enable this when hardware
2518 support is unavailable.
2519
Paul Burton3179d372014-04-14 11:00:56 +01002520config MIPS_CPS_PM
Markos Chandras39a59592014-09-18 16:09:49 +01002521 depends on MIPS_CPS
Paul Burton3179d372014-04-14 11:00:56 +01002522 bool
2523
Paul Burton9f98f3d2014-01-15 10:31:51 +00002524config MIPS_CM
2525 bool
Paul Burton3c9b4162017-08-12 19:49:42 -07002526 select MIPS_CPC
Paul Burton9f98f3d2014-01-15 10:31:51 +00002527
Paul Burton9c38cf42014-01-15 10:31:52 +00002528config MIPS_CPC
2529 bool
Ralf Baechle26009902006-04-05 09:45:45 +01002530
Linus Torvalds1da177e2005-04-16 15:20:36 -07002531config SB1_PASS_2_WORKAROUNDS
2532 bool
2533 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2534 default y
2535
2536config SB1_PASS_2_1_WORKAROUNDS
2537 bool
2538 depends on CPU_SB1 && CPU_SB1_PASS_2
2539 default y
2540
Markos Chandras9e2b5372014-07-21 08:46:14 +01002541choice
2542 prompt "SmartMIPS or microMIPS ASE support"
2543
2544config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2545 bool "None"
2546 help
2547 Select this if you want neither microMIPS nor SmartMIPS support
2548
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002549config CPU_HAS_SMARTMIPS
2550 depends on SYS_SUPPORTS_SMARTMIPS
Markos Chandras9e2b5372014-07-21 08:46:14 +01002551 bool "SmartMIPS"
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002552 help
2553 SmartMIPS is a extension of the MIPS32 architecture aimed at
2554 increased security at both hardware and software level for
2555 smartcards. Enabling this option will allow proper use of the
2556 SmartMIPS instructions by Linux applications. However a kernel with
2557 this option will not work on a MIPS core without SmartMIPS core. If
2558 you don't know you probably don't have SmartMIPS and should say N
2559 here.
2560
Steven J. Hillbce86082013-03-25 13:27:11 -05002561config CPU_MICROMIPS
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002562 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
Markos Chandras9e2b5372014-07-21 08:46:14 +01002563 bool "microMIPS"
Steven J. Hillbce86082013-03-25 13:27:11 -05002564 help
2565 When this option is enabled the kernel will be built using the
2566 microMIPS ISA
2567
Markos Chandras9e2b5372014-07-21 08:46:14 +01002568endchoice
2569
Paul Burtona5e9a692014-01-27 15:23:10 +00002570config CPU_HAS_MSA
Paul Burton0ce34172015-07-27 12:58:27 -07002571 bool "Support for the MIPS SIMD Architecture"
Paul Burtona5e9a692014-01-27 15:23:10 +00002572 depends on CPU_SUPPORTS_MSA
Paul Burtonc92e47e2018-11-07 23:14:02 +00002573 depends on MIPS_FP_SUPPORT
Paul Burton2a6cb6692014-07-11 16:47:14 +01002574 depends on 64BIT || MIPS_O32_FP64_SUPPORT
Paul Burtona5e9a692014-01-27 15:23:10 +00002575 help
2576 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2577 and a set of SIMD instructions to operate on them. When this option
Paul Burton1db1af82014-01-27 15:23:11 +00002578 is enabled the kernel will support allocating & switching MSA
2579 vector register contexts. If you know that your kernel will only be
2580 running on CPUs which do not support MSA or that your userland will
2581 not be making use of it then you may wish to say N here to reduce
2582 the size & complexity of your kernel.
Paul Burtona5e9a692014-01-27 15:23:10 +00002583
2584 If unsure, say Y.
2585
Linus Torvalds1da177e2005-04-16 15:20:36 -07002586config CPU_HAS_WB
Ralf Baechlef7062dd2006-04-24 14:58:53 +01002587 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002588
Kevin Cernekeedf0ac8a2011-11-16 01:25:45 +00002589config XKS01
2590 bool
2591
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002592config CPU_HAS_DIEI
2593 depends on !CPU_DIEI_BROKEN
2594 bool
2595
2596config CPU_DIEI_BROKEN
2597 bool
2598
Florian Fainelli8256b172016-02-09 12:55:51 -08002599config CPU_HAS_RIXI
2600 bool
2601
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002602config CPU_NO_LOAD_STORE_LR
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002603 bool
2604 help
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002605 CPU lacks support for unaligned load and store instructions:
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002606 LWL, LWR, SWL, SWR (Load/store word left/right).
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002607 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
2608 systems).
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002609
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002610#
2611# Vectored interrupt mode is an R2 feature
2612#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002613config CPU_MIPSR2_IRQ_VI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002614 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002615
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002616#
2617# Extended interrupt mode is an R2 feature
2618#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002619config CPU_MIPSR2_IRQ_EI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002620 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002621
Linus Torvalds1da177e2005-04-16 15:20:36 -07002622config CPU_HAS_SYNC
2623 bool
2624 depends on !CPU_R3000
2625 default y
2626
2627#
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002628# CPU non-features
2629#
2630config CPU_DADDI_WORKAROUNDS
2631 bool
2632
2633config CPU_R4000_WORKAROUNDS
2634 bool
2635 select CPU_R4400_WORKAROUNDS
2636
2637config CPU_R4400_WORKAROUNDS
2638 bool
2639
Paul Burton071d2f02019-10-01 23:04:32 +00002640config CPU_R4X00_BUGS64
2641 bool
2642 default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
2643
Paul Burton4edf00a2016-05-06 14:36:23 +01002644config MIPS_ASID_SHIFT
2645 int
2646 default 6 if CPU_R3000 || CPU_TX39XX
Paul Burton4edf00a2016-05-06 14:36:23 +01002647 default 0
2648
2649config MIPS_ASID_BITS
2650 int
Paul Burton2db003a2016-05-06 14:36:24 +01002651 default 0 if MIPS_ASID_BITS_VARIABLE
Paul Burton4edf00a2016-05-06 14:36:23 +01002652 default 6 if CPU_R3000 || CPU_TX39XX
2653 default 8
2654
Paul Burton2db003a2016-05-06 14:36:24 +01002655config MIPS_ASID_BITS_VARIABLE
2656 bool
2657
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002658config MIPS_CRC_SUPPORT
2659 bool
2660
Thomas Bogendoerfer802b83622020-08-24 18:32:43 +02002661# R4600 erratum. Due to the lack of errata information the exact
2662# technical details aren't known. I've experimentally found that disabling
2663# interrupts during indexed I-cache flushes seems to be sufficient to deal
2664# with the issue.
2665config WAR_R4600_V1_INDEX_ICACHEOP
2666 bool
2667
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +02002668# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata:
2669#
2670# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
2671# Hit_Invalidate_D and Create_Dirty_Excl_D should only be
2672# executed if there is no other dcache activity. If the dcache is
Colin Ian King18ff14c2020-10-27 18:34:30 +00002673# accessed for another instruction immediately preceding when these
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +02002674# cache instructions are executing, it is possible that the dcache
2675# tag match outputs used by these cache instructions will be
2676# incorrect. These cache instructions should be preceded by at least
2677# four instructions that are not any kind of load or store
2678# instruction.
2679#
2680# This is not allowed: lw
2681# nop
2682# nop
2683# nop
2684# cache Hit_Writeback_Invalidate_D
2685#
2686# This is allowed: lw
2687# nop
2688# nop
2689# nop
2690# nop
2691# cache Hit_Writeback_Invalidate_D
2692config WAR_R4600_V1_HIT_CACHEOP
2693 bool
2694
Thomas Bogendoerfer44def342020-08-24 18:32:45 +02002695# Writeback and invalidate the primary cache dcache before DMA.
2696#
2697# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
2698# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
2699# operate correctly if the internal data cache refill buffer is empty. These
2700# CACHE instructions should be separated from any potential data cache miss
2701# by a load instruction to an uncached address to empty the response buffer."
2702# (Revision 2.0 device errata from IDT available on https://www.idt.com/
2703# in .pdf format.)
2704config WAR_R4600_V2_HIT_CACHEOP
2705 bool
2706
Thomas Bogendoerfer24a1c022020-08-24 18:32:47 +02002707# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
2708# the line which this instruction itself exists, the following
2709# operation is not guaranteed."
2710#
2711# Workaround: do two phase flushing for Index_Invalidate_I
2712config WAR_TX49XX_ICACHE_INDEX_INV
2713 bool
2714
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +02002715# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
2716# opposes it being called that) where invalid instructions in the same
2717# I-cache line worth of instructions being fetched may case spurious
2718# exceptions.
2719config WAR_ICACHE_REFILLS
2720 bool
2721
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +02002722# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
2723# may cause ll / sc and lld / scd sequences to execute non-atomically.
2724config WAR_R10000_LLSC
2725 bool
2726
Thomas Bogendoerfera7fbed92020-08-24 18:32:50 +02002727# 34K core erratum: "Problems Executing the TLBR Instruction"
2728config WAR_MIPS34K_MISSED_ITLB
2729 bool
2730
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002731#
Linus Torvalds1da177e2005-04-16 15:20:36 -07002732# - Highmem only makes sense for the 32-bit kernel.
2733# - The current highmem code will only work properly on physically indexed
2734# caches such as R3000, SB1, R7000 or those that look like they're virtually
2735# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
2736# moment we protect the user and offer the highmem option only on machines
2737# where it's known to be safe. This will not offer highmem on a few systems
2738# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2739# indexed CPUs but we're playing safe.
Ralf Baechle797798c2005-08-10 15:17:11 +00002740# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2741# know they might have memory configurations that could make use of highmem
2742# support.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002743#
2744config HIGHMEM
2745 bool "High Memory Support"
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002746 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
Thomas Gleixnera4c33e82020-11-03 10:27:25 +01002747 select KMAP_LOCAL
Ralf Baechle797798c2005-08-10 15:17:11 +00002748
2749config CPU_SUPPORTS_HIGHMEM
2750 bool
2751
2752config SYS_SUPPORTS_HIGHMEM
2753 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002754
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002755config SYS_SUPPORTS_SMARTMIPS
2756 bool
2757
Steven J. Hilla6a48342013-02-05 16:52:02 -06002758config SYS_SUPPORTS_MICROMIPS
2759 bool
2760
Ralf Baechle377cb1b2014-04-29 01:49:24 +02002761config SYS_SUPPORTS_MIPS16
2762 bool
2763 help
2764 This option must be set if a kernel might be executed on a MIPS16-
2765 enabled CPU even if MIPS16 is not actually being used. In other
2766 words, it makes the kernel MIPS16-tolerant.
2767
Paul Burtona5e9a692014-01-27 15:23:10 +00002768config CPU_SUPPORTS_MSA
2769 bool
2770
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002771config ARCH_FLATMEM_ENABLE
2772 def_bool y
Jiaxun Yang268a2d62019-10-20 22:43:13 +08002773 depends on !NUMA && !CPU_LOONGSON2EF
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002774
Atsushi Nemotob1c6cd42006-07-03 00:09:47 +09002775config ARCH_SPARSEMEM_ENABLE
2776 bool
Mike Rapoport397dc002019-09-16 14:13:10 +03002777 select SPARSEMEM_STATIC if !SGI_IP27
Atsushi Nemoto31473742006-07-03 00:09:47 +09002778
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002779config NUMA
2780 bool "NUMA Support"
2781 depends on SYS_SUPPORTS_NUMA
Tiezhu Yangcf8194e2020-12-03 20:32:52 +08002782 select SMP
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002783 help
2784 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2785 Access). This option improves performance on systems with more
2786 than two nodes; on two node systems it is generally better to
Randy Dunlap172a37e2020-01-31 17:55:43 -08002787 leave it disabled; on single node systems leave this option
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002788 disabled.
2789
2790config SYS_SUPPORTS_NUMA
2791 bool
2792
Thomas Bogendoerferf3c560a2020-01-09 13:23:31 +01002793config HAVE_SETUP_PER_CPU_AREA
2794 def_bool y
2795 depends on NUMA
2796
2797config NEED_PER_CPU_EMBED_FIRST_CHUNK
2798 def_bool y
2799 depends on NUMA
2800
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002801config RELOCATABLE
2802 bool "Relocatable kernel"
Serge Seminab7c01f2020-05-21 17:07:14 +03002803 depends on SYS_SUPPORTS_RELOCATABLE
2804 depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
2805 CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
2806 CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
Jinyang Hea307a4c2020-11-25 18:07:46 +08002807 CPU_P5600 || CAVIUM_OCTEON_SOC || \
2808 CPU_LOONGSON64
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002809 help
2810 This builds a kernel image that retains relocation information
2811 so it can be loaded someplace besides the default 1MB.
2812 The relocations make the kernel binary about 15% larger,
2813 but are discarded at runtime
2814
Matt Redfearn069fd762016-03-31 10:05:34 +01002815config RELOCATION_TABLE_SIZE
2816 hex "Relocation table size"
2817 depends on RELOCATABLE
2818 range 0x0 0x01000000
Jinyang Hea307a4c2020-11-25 18:07:46 +08002819 default "0x00200000" if CPU_LOONGSON64
Matt Redfearn069fd762016-03-31 10:05:34 +01002820 default "0x00100000"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002821 help
Matt Redfearn069fd762016-03-31 10:05:34 +01002822 A table of relocation data will be appended to the kernel binary
2823 and parsed at boot to fix up the relocated kernel.
2824
2825 This option allows the amount of space reserved for the table to be
2826 adjusted, although the default of 1Mb should be ok in most cases.
2827
2828 The build will fail and a valid size suggested if this is too small.
2829
2830 If unsure, leave at the default value.
2831
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002832config RANDOMIZE_BASE
2833 bool "Randomize the address of the kernel image"
2834 depends on RELOCATABLE
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002835 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002836 Randomizes the physical and virtual address at which the
2837 kernel image is loaded, as a security feature that
2838 deters exploit attempts relying on knowledge of the location
2839 of kernel internals.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002840
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002841 Entropy is generated using any coprocessor 0 registers available.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002842
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002843 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002844
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002845 If unsure, say N.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002846
2847config RANDOMIZE_BASE_MAX_OFFSET
2848 hex "Maximum kASLR offset" if EXPERT
2849 depends on RANDOMIZE_BASE
2850 range 0x0 0x40000000 if EVA || 64BIT
2851 range 0x0 0x08000000
2852 default "0x01000000"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002853 help
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002854 When kASLR is active, this provides the maximum offset that will
2855 be applied to the kernel image. It should be set according to the
2856 amount of physical RAM available in the target system minus
2857 PHYSICAL_START and must be a power of 2.
2858
2859 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2860 EVA or 64-bit. The default is 16Mb.
2861
Yasunori Gotoc80d79d2006-04-10 22:53:53 -07002862config NODES_SHIFT
2863 int
2864 default "6"
2865 depends on NEED_MULTIPLE_NODES
2866
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002867config HW_PERF_EVENTS
2868 bool "Enable hardware performance counter support for perf events"
Jiaxun Yang268a2d62019-10-20 22:43:13 +08002869 depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON64)
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002870 default y
2871 help
2872 Enable hardware performance counter support for perf events. If
2873 disabled, perf events will use software events only.
2874
Tiezhu Yangbe8fa1c2020-02-05 12:08:33 +08002875config DMI
2876 bool "Enable DMI scanning"
2877 depends on MACH_LOONGSON64
2878 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
2879 default y
2880 help
2881 Enabled scanning of DMI to identify machine quirks. Say Y
2882 here unless you have verified that your setup is not
2883 affected by entries in the DMI blacklist. Required by PNP
2884 BIOS code.
2885
Linus Torvalds1da177e2005-04-16 15:20:36 -07002886config SMP
2887 bool "Multi-Processing support"
Ralf Baechlee73ea272006-06-04 11:51:46 +01002888 depends on SYS_SUPPORTS_SMP
2889 help
Linus Torvalds1da177e2005-04-16 15:20:36 -07002890 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -08002891 a system with only one CPU, say N. If you have a system with more
2892 than one CPU, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002893
Robert Graffham4a474152014-01-23 15:55:29 -08002894 If you say N here, the kernel will run on uni- and multiprocessor
Linus Torvalds1da177e2005-04-16 15:20:36 -07002895 machines, but will use only one CPU of a multiprocessor machine. If
2896 you say Y here, the kernel will run on many, but not all,
Robert Graffham4a474152014-01-23 15:55:29 -08002897 uniprocessor machines. On a uniprocessor machine, the kernel
Linus Torvalds1da177e2005-04-16 15:20:36 -07002898 will run faster if you say N here.
2899
2900 People using multiprocessor machines who say Y here should also say
2901 Y to "Enhanced Real Time Clock Support", below.
2902
Adrian Bunk03502fa2008-02-03 15:50:21 +02002903 See also the SMP-HOWTO available at
Alexander A. Klimovef054ad2020-07-14 21:12:26 +02002904 <https://www.tldp.org/docs.html#howto>.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002905
2906 If you don't know what to do here, say N.
2907
Matt Redfearn7840d612016-07-07 08:50:40 +01002908config HOTPLUG_CPU
2909 bool "Support for hot-pluggable CPUs"
2910 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2911 help
2912 Say Y here to allow turning CPUs off and on. CPUs can be
2913 controlled through /sys/devices/system/cpu.
2914 (Note: power management support will enable this option
2915 automatically on SMP systems. )
2916 Say N if you want to disable CPU hotplug.
2917
Ralf Baechle87353d82007-11-19 12:23:51 +00002918config SMP_UP
2919 bool
2920
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002921config SYS_SUPPORTS_MIPS_CMP
2922 bool
2923
Paul Burton0ee958e2014-01-15 10:31:53 +00002924config SYS_SUPPORTS_MIPS_CPS
2925 bool
2926
Ralf Baechlee73ea272006-06-04 11:51:46 +01002927config SYS_SUPPORTS_SMP
2928 bool
2929
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002930config NR_CPUS_DEFAULT_4
2931 bool
2932
2933config NR_CPUS_DEFAULT_8
2934 bool
2935
2936config NR_CPUS_DEFAULT_16
2937 bool
2938
2939config NR_CPUS_DEFAULT_32
2940 bool
2941
2942config NR_CPUS_DEFAULT_64
2943 bool
2944
Linus Torvalds1da177e2005-04-16 15:20:36 -07002945config NR_CPUS
Jayachandran Ca91796a2014-04-29 20:07:40 +05302946 int "Maximum number of CPUs (2-256)"
2947 range 2 256
Linus Torvalds1da177e2005-04-16 15:20:36 -07002948 depends on SMP
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002949 default "4" if NR_CPUS_DEFAULT_4
2950 default "8" if NR_CPUS_DEFAULT_8
2951 default "16" if NR_CPUS_DEFAULT_16
2952 default "32" if NR_CPUS_DEFAULT_32
2953 default "64" if NR_CPUS_DEFAULT_64
Linus Torvalds1da177e2005-04-16 15:20:36 -07002954 help
2955 This allows you to specify the maximum number of CPUs which this
2956 kernel will support. The maximum supported value is 32 for 32-bit
2957 kernel and 64 for 64-bit kernels; the minimum value which makes
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002958 sense is 1 for Qemu (useful only for kernel debugging purposes)
2959 and 2 for all others.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002960
2961 This is purely to save memory - each supported CPU adds
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002962 approximately eight kilobytes to the kernel image. For best
2963 performance should round up your number of processors to the next
2964 power of two.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002965
Al Cooper399aaa22012-07-13 16:44:53 -04002966config MIPS_PERF_SHARED_TC_COUNTERS
2967 bool
2968
David Daney7820b842017-09-28 12:34:04 -05002969config MIPS_NR_CPU_NR_MAP_1024
2970 bool
2971
2972config MIPS_NR_CPU_NR_MAP
2973 int
2974 depends on SMP
2975 default 1024 if MIPS_NR_CPU_NR_MAP_1024
2976 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2977
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002978#
2979# Timer Interrupt Frequency Configuration
2980#
2981
2982choice
2983 prompt "Timer frequency"
2984 default HZ_250
2985 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002986 Allows the configuration of the timer frequency.
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002987
Paul Burton67596572015-09-22 10:16:39 -07002988 config HZ_24
2989 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2990
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002991 config HZ_48
Ralf Baechle0f873582008-02-25 16:55:29 +00002992 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002993
2994 config HZ_100
2995 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2996
2997 config HZ_128
2998 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2999
3000 config HZ_250
3001 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
3002
3003 config HZ_256
3004 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
3005
3006 config HZ_1000
3007 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
3008
3009 config HZ_1024
3010 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
3011
3012endchoice
3013
Paul Burton67596572015-09-22 10:16:39 -07003014config SYS_SUPPORTS_24HZ
3015 bool
3016
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003017config SYS_SUPPORTS_48HZ
3018 bool
3019
3020config SYS_SUPPORTS_100HZ
3021 bool
3022
3023config SYS_SUPPORTS_128HZ
3024 bool
3025
3026config SYS_SUPPORTS_250HZ
3027 bool
3028
3029config SYS_SUPPORTS_256HZ
3030 bool
3031
3032config SYS_SUPPORTS_1000HZ
3033 bool
3034
3035config SYS_SUPPORTS_1024HZ
3036 bool
3037
3038config SYS_SUPPORTS_ARBIT_HZ
3039 bool
Paul Burton67596572015-09-22 10:16:39 -07003040 default y if !SYS_SUPPORTS_24HZ && \
3041 !SYS_SUPPORTS_48HZ && \
3042 !SYS_SUPPORTS_100HZ && \
3043 !SYS_SUPPORTS_128HZ && \
3044 !SYS_SUPPORTS_250HZ && \
3045 !SYS_SUPPORTS_256HZ && \
3046 !SYS_SUPPORTS_1000HZ && \
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003047 !SYS_SUPPORTS_1024HZ
3048
3049config HZ
3050 int
Paul Burton67596572015-09-22 10:16:39 -07003051 default 24 if HZ_24
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003052 default 48 if HZ_48
3053 default 100 if HZ_100
3054 default 128 if HZ_128
3055 default 250 if HZ_250
3056 default 256 if HZ_256
3057 default 1000 if HZ_1000
3058 default 1024 if HZ_1024
3059
Deng-Cheng Zhu96685b12015-03-07 10:30:19 -08003060config SCHED_HRTICK
3061 def_bool HIGH_RES_TIMERS
3062
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003063config KEXEC
Kees Cook7d607172013-01-16 18:53:19 -08003064 bool "Kexec system call"
Dave Young2965faa2015-09-09 15:38:55 -07003065 select KEXEC_CORE
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003066 help
3067 kexec is a system call that implements the ability to shutdown your
3068 current kernel, and to start another kernel. It is like a reboot
David Sterba3dde6ad2007-05-09 07:12:20 +02003069 but it is independent of the system firmware. And like a reboot
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003070 you can start any kernel with it, not just Linux.
3071
Matt LaPlante01dd2fb2007-10-20 01:34:40 +02003072 The name comes from the similarity to the exec system call.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003073
3074 It is an ongoing process to be certain the hardware in a machine
3075 is properly shutdown, so do not be surprised if this code does not
Geert Uytterhoevenbf220692013-08-20 21:38:03 +02003076 initially work for you. As of this writing the exact hardware
3077 interface is strongly in flux, so no good recommendation can be
3078 made.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003079
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003080config CRASH_DUMP
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003081 bool "Kernel crash dumps"
3082 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003083 Generate crash dump after being started by kexec.
3084 This should be normally only set in special crash dump kernels
3085 which are loaded in the main kernel with kexec-tools into
3086 a specially reserved region and then later executed after
3087 a crash by kdump/kexec. The crash dump kernel must be compiled
3088 to a memory address not used by the main kernel or firmware using
3089 PHYSICAL_START.
3090
3091config PHYSICAL_START
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003092 hex "Physical address where the kernel is loaded"
Maciej W. Rozycki8bda3e22018-03-26 19:11:51 +01003093 default "0xffffffff84000000"
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003094 depends on CRASH_DUMP
3095 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003096 This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
3097 If you plan to use kernel for capturing the crash dump change
3098 this value to start of the reserved region (the "X" value as
3099 specified in the "crashkernel=YM@XM" command line boot parameter
3100 passed to the panic-ed kernel).
3101
Paul Burton597ce172013-11-22 13:12:07 +00003102config MIPS_O32_FP64_SUPPORT
Paul Burtonb7f1e272018-11-07 23:13:58 +00003103 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
Paul Burton597ce172013-11-22 13:12:07 +00003104 depends on 32BIT || MIPS32_O32
Paul Burton597ce172013-11-22 13:12:07 +00003105 help
3106 When this is enabled, the kernel will support use of 64-bit floating
3107 point registers with binaries using the O32 ABI along with the
3108 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
3109 32-bit MIPS systems this support is at the cost of increasing the
3110 size and complexity of the compiled FPU emulator. Thus if you are
3111 running a MIPS32 system and know that none of your userland binaries
3112 will require 64-bit floating point, you may wish to reduce the size
3113 of your kernel & potentially improve FP emulation performance by
3114 saying N here.
3115
Paul Burton06e2e882014-02-14 17:55:18 +00003116 Although binutils currently supports use of this flag the details
3117 concerning its effect upon the O32 ABI in userland are still being
Colin Ian King18ff14c2020-10-27 18:34:30 +00003118 worked on. In order to avoid userland becoming dependent upon current
Paul Burton06e2e882014-02-14 17:55:18 +00003119 behaviour before the details have been finalised, this option should
3120 be considered experimental and only enabled by those working upon
3121 said details.
3122
3123 If unsure, say N.
Paul Burton597ce172013-11-22 13:12:07 +00003124
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003125config USE_OF
Jonas Gorski0b3e06f2012-09-18 11:28:54 +02003126 bool
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003127 select OF
Stephen Neuendorffere6ce1322010-11-18 15:54:56 -08003128 select OF_EARLY_FLATTREE
Grant Likelyabd23632012-02-24 08:07:06 -07003129 select IRQ_DOMAIN
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003130
Dengcheng Zhu2fe8ea32018-09-11 14:49:24 -07003131config UHI_BOOT
3132 bool
3133
Andrew Bresticker7fafb062014-08-21 13:04:20 -07003134config BUILTIN_DTB
3135 bool
3136
Jonas Gorski1da8f172015-04-12 12:24:58 +02003137choice
Jonas Gorski5b24d522015-10-12 13:13:01 +02003138 prompt "Kernel appended dtb support" if USE_OF
Jonas Gorski1da8f172015-04-12 12:24:58 +02003139 default MIPS_NO_APPENDED_DTB
3140
3141 config MIPS_NO_APPENDED_DTB
3142 bool "None"
3143 help
3144 Do not enable appended dtb support.
3145
Aaro Koskinen87db5372015-09-11 17:46:14 +03003146 config MIPS_ELF_APPENDED_DTB
3147 bool "vmlinux"
3148 help
3149 With this option, the boot code will look for a device tree binary
3150 DTB) included in the vmlinux ELF section .appended_dtb. By default
3151 it is empty and the DTB can be appended using binutils command
3152 objcopy:
3153
3154 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
3155
Colin Ian King18ff14c2020-10-27 18:34:30 +00003156 This is meant as a backward compatibility convenience for those
Aaro Koskinen87db5372015-09-11 17:46:14 +03003157 systems with a bootloader that can't be upgraded to accommodate
3158 the documented boot protocol using a device tree.
3159
Jonas Gorski1da8f172015-04-12 12:24:58 +02003160 config MIPS_RAW_APPENDED_DTB
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003161 bool "vmlinux.bin or vmlinuz.bin"
Jonas Gorski1da8f172015-04-12 12:24:58 +02003162 help
3163 With this option, the boot code will look for a device tree binary
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003164 DTB) appended to raw vmlinux.bin or vmlinuz.bin.
Jonas Gorski1da8f172015-04-12 12:24:58 +02003165 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
3166
3167 This is meant as a backward compatibility convenience for those
3168 systems with a bootloader that can't be upgraded to accommodate
3169 the documented boot protocol using a device tree.
3170
3171 Beware that there is very little in terms of protection against
3172 this option being confused by leftover garbage in memory that might
3173 look like a DTB header after a reboot if no actual DTB is appended
3174 to vmlinux.bin. Do not leave this option active in a production kernel
3175 if you don't intend to always append a DTB.
3176endchoice
3177
Jonas Gorski20249722015-10-12 13:13:02 +02003178choice
3179 prompt "Kernel command line type" if !CMDLINE_OVERRIDE
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003180 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
Jiaxun Yang87fcfa72020-03-25 11:55:02 +08003181 !MACH_LOONGSON64 && !MIPS_MALTA && \
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003182 !CAVIUM_OCTEON_SOC
Jonas Gorski20249722015-10-12 13:13:02 +02003183 default MIPS_CMDLINE_FROM_BOOTLOADER
3184
3185 config MIPS_CMDLINE_FROM_DTB
3186 depends on USE_OF
3187 bool "Dtb kernel arguments if available"
3188
3189 config MIPS_CMDLINE_DTB_EXTEND
3190 depends on USE_OF
3191 bool "Extend dtb kernel arguments with bootloader arguments"
3192
3193 config MIPS_CMDLINE_FROM_BOOTLOADER
3194 bool "Bootloader kernel arguments if available"
Rabin Vincented47e152016-04-28 11:03:09 +02003195
3196 config MIPS_CMDLINE_BUILTIN_EXTEND
3197 depends on CMDLINE_BOOL
3198 bool "Extend builtin kernel arguments with bootloader arguments"
Jonas Gorski20249722015-10-12 13:13:02 +02003199endchoice
3200
Ralf Baechle5e83d432005-10-29 19:32:41 +01003201endmenu
3202
Atsushi Nemoto1df0f0f2006-09-26 23:44:01 +09003203config LOCKDEP_SUPPORT
3204 bool
3205 default y
3206
3207config STACKTRACE_SUPPORT
3208 bool
3209 default y
3210
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003211config PGTABLE_LEVELS
3212 int
Alex Belits3377e222017-02-16 17:27:34 -08003213 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003214 default 3 if 64BIT && !PAGE_SIZE_64KB
3215 default 2
3216
Paul Burton6c359eb2018-07-27 18:23:20 -07003217config MIPS_AUTO_PFN_OFFSET
3218 bool
3219
Linus Torvalds1da177e2005-04-16 15:20:36 -07003220menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3221
Paul Burtonc5611df2016-10-05 18:18:12 +01003222config PCI_DRIVERS_GENERIC
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003223 select PCI_DOMAINS_GENERIC if PCI
Paul Burtonc5611df2016-10-05 18:18:12 +01003224 bool
3225
3226config PCI_DRIVERS_LEGACY
3227 def_bool !PCI_DRIVERS_GENERIC
3228 select NO_GENERIC_PCI_IOPORT_MAP
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003229 select PCI_DOMAINS if PCI
Linus Torvalds1da177e2005-04-16 15:20:36 -07003230
3231#
3232# ISA support is now enabled via select. Too many systems still have the one
3233# or other ISA chip on the board that users don't know about so don't expect
3234# users to choose the right thing ...
3235#
3236config ISA
3237 bool
3238
Linus Torvalds1da177e2005-04-16 15:20:36 -07003239config TC
3240 bool "TURBOchannel support"
3241 depends on MACH_DECSTATION
3242 help
Justin P. Mattock50a23e62010-10-16 10:36:23 -07003243 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3244 processors. TURBOchannel programming specifications are available
3245 at:
3246 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3247 and:
3248 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3249 Linux driver support status is documented at:
3250 <http://www.linux-mips.org/wiki/DECstation>
Linus Torvalds1da177e2005-04-16 15:20:36 -07003251
Linus Torvalds1da177e2005-04-16 15:20:36 -07003252config MMU
3253 bool
3254 default y
3255
Matt Redfearn109c32f2016-11-24 17:32:45 +00003256config ARCH_MMAP_RND_BITS_MIN
3257 default 12 if 64BIT
3258 default 8
3259
3260config ARCH_MMAP_RND_BITS_MAX
3261 default 18 if 64BIT
3262 default 15
3263
3264config ARCH_MMAP_RND_COMPAT_BITS_MIN
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003265 default 8
Matt Redfearn109c32f2016-11-24 17:32:45 +00003266
3267config ARCH_MMAP_RND_COMPAT_BITS_MAX
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003268 default 15
Matt Redfearn109c32f2016-11-24 17:32:45 +00003269
Ralf Baechled865bea2007-10-11 23:46:10 +01003270config I8253
3271 bool
Russell King798778b2011-05-08 19:03:03 +01003272 select CLKSRC_I8253
Thomas Gleixner2d026122011-06-09 13:08:27 +00003273 select CLKEVT_I8253
Wu Zhangjin9726b432009-11-17 01:32:58 +08003274 select MIPS_EXTERNAL_TIMER
Ralf Baechled865bea2007-10-11 23:46:10 +01003275
Ralf Baechlee05eb3f2013-06-12 10:54:11 +02003276config ZONE_DMA
3277 bool
3278
Ralf Baechlecce335a2007-11-03 02:05:43 +00003279config ZONE_DMA32
3280 bool
3281
Linus Torvalds1da177e2005-04-16 15:20:36 -07003282endmenu
3283
Linus Torvalds1da177e2005-04-16 15:20:36 -07003284config TRAD_SIGNALS
3285 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003286
Linus Torvalds1da177e2005-04-16 15:20:36 -07003287config MIPS32_COMPAT
Ralf Baechle78aaf952014-12-19 01:18:03 +01003288 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003289
3290config COMPAT
3291 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003292
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003293config SYSVIPC_COMPAT
3294 bool
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003295
Linus Torvalds1da177e2005-04-16 15:20:36 -07003296config MIPS32_O32
3297 bool "Kernel support for o32 binaries"
Ralf Baechle78aaf952014-12-19 01:18:03 +01003298 depends on 64BIT
3299 select ARCH_WANT_OLD_COMPAT_IPC
3300 select COMPAT
3301 select MIPS32_COMPAT
3302 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003303 help
3304 Select this option if you want to run o32 binaries. These are pure
3305 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
3306 existing binaries are in this format.
3307
3308 If unsure, say Y.
3309
3310config MIPS32_N32
3311 bool "Kernel support for n32 binaries"
Ralf Baechlec22eacf2015-01-03 12:10:23 +01003312 depends on 64BIT
Arnd Bergmann5a9372f2019-01-10 17:24:31 +01003313 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
Ralf Baechle78aaf952014-12-19 01:18:03 +01003314 select COMPAT
3315 select MIPS32_COMPAT
3316 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003317 help
3318 Select this option if you want to run n32 binaries. These are
3319 64-bit binaries using 32-bit quantities for addressing and certain
3320 data that would normally be 64-bit. They are used in special
3321 cases.
3322
3323 If unsure, say N.
3324
3325config BINFMT_ELF32
3326 bool
3327 default y if MIPS32_O32 || MIPS32_N32
Ralf Baechlef43edca2016-05-23 16:22:26 -07003328 select ELFCORE
Linus Torvalds1da177e2005-04-16 15:20:36 -07003329
Ralf Baechle21162452007-02-09 17:08:58 +00003330menu "Power management options"
Rodolfo Giometti952fa952006-06-05 17:43:10 +02003331
Wu Zhangjin363c55c2009-06-04 20:27:10 +08003332config ARCH_HIBERNATION_POSSIBLE
3333 def_bool y
Ralf Baechle3f5b3e12009-07-02 11:48:07 +01003334 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
Wu Zhangjin363c55c2009-06-04 20:27:10 +08003335
Johannes Bergf4cb5702007-12-08 02:14:00 +01003336config ARCH_SUSPEND_POSSIBLE
3337 def_bool y
Ralf Baechle3f5b3e12009-07-02 11:48:07 +01003338 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
Johannes Bergf4cb5702007-12-08 02:14:00 +01003339
Ralf Baechle21162452007-02-09 17:08:58 +00003340source "kernel/power/Kconfig"
Rodolfo Giometti952fa952006-06-05 17:43:10 +02003341
Linus Torvalds1da177e2005-04-16 15:20:36 -07003342endmenu
3343
Viresh Kumar7a998932013-04-04 12:54:21 +00003344config MIPS_EXTERNAL_TIMER
3345 bool
3346
Viresh Kumar7a998932013-04-04 12:54:21 +00003347menu "CPU Power Management"
Paul Burtonc095eba2014-04-14 16:24:22 +01003348
3349if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
Viresh Kumar7a998932013-04-04 12:54:21 +00003350source "drivers/cpufreq/Kconfig"
Viresh Kumar7a998932013-04-04 12:54:21 +00003351endif
Wu Zhangjin9726b432009-11-17 01:32:58 +08003352
Paul Burtonc095eba2014-04-14 16:24:22 +01003353source "drivers/cpuidle/Kconfig"
3354
3355endmenu
3356
Ralf Baechle98cdee02012-11-15 10:35:42 +01003357source "drivers/firmware/Kconfig"
3358
Sanjay Lal2235a542012-11-21 18:33:59 -08003359source "arch/mips/kvm/Kconfig"
Nathan Chancellore91946d2020-04-28 15:14:16 -07003360
3361source "arch/mips/vdso/Kconfig"