blob: ed51970c08e75c683e1872261cd2152f4546e101 [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
Florian Fainellidfad83c2021-03-30 20:22:07 -07007 select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
Alexander Lobakin34c01e42020-01-22 13:58:51 +03008 select ARCH_HAS_FORTIFY_SOURCE
9 select ARCH_HAS_KCOV
Tiezhu Yang66633ab2021-03-25 20:50:01 +080010 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
Alexander Lobakin34c01e42020-01-22 13:58:51 +030011 select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
Matt Redfearn12597982017-05-15 10:46:35 +010012 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
Hassan Naveed1e359182018-11-19 16:49:37 -080013 select ARCH_HAS_UBSAN_SANITIZE_ALL
Xingxing Su8b3165e2020-12-03 15:22:51 +080014 select ARCH_HAS_GCOV_PROFILE_ALL
Nick Desaulniersc55944c2021-04-07 10:35:43 -070015 select ARCH_KEEP_MEMBLOCK
Matt Redfearn12597982017-05-15 10:46:35 +010016 select ARCH_SUPPORTS_UPROBES
Ralf Baechle1ee36302015-09-29 12:19:48 +020017 select ARCH_USE_BUILTIN_BSWAP
Matt Redfearn12597982017-05-15 10:46:35 +010018 select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
Anshuman Khandualdce44562021-04-29 22:55:15 -070019 select ARCH_USE_MEMTEST
Paul Burton25da4e92017-06-09 17:26:42 -070020 select ARCH_USE_QUEUED_RWLOCKS
Paul Burton0b17c962017-06-09 17:26:43 -070021 select ARCH_USE_QUEUED_SPINLOCKS
Anshuman Khandual855f9a82021-05-04 18:38:13 -070022 select ARCH_SUPPORTS_HUGETLBFS if CPU_SUPPORTS_HUGEPAGES
Alexandre Ghiti9035bd22019-09-23 15:39:18 -070023 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
Matt Redfearn12597982017-05-15 10:46:35 +010024 select ARCH_WANT_IPC_PARSE_VERSION
Alexander Lobakind3a4e0f2021-01-10 11:57:01 +000025 select ARCH_WANT_LD_ORPHAN_WARN
Shile Zhang10916702019-12-04 08:46:31 +080026 select BUILDTIME_TABLE_SORT
Matt Redfearn12597982017-05-15 10:46:35 +010027 select CLONE_BACKWARDS
Paul Burton57eeaced2018-11-08 23:44:55 +000028 select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
Matt Redfearn12597982017-05-15 10:46:35 +010029 select CPU_PM if CPU_IDLE
30 select GENERIC_ATOMIC64 if !64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010031 select GENERIC_CMOS_UPDATE
32 select GENERIC_CPU_AUTOPROBE
Alexander Lobakinbab1dde2021-02-25 05:57:00 -080033 select GENERIC_FIND_FIRST_BIT
Vincenzo Frascino24640f22019-06-21 10:52:46 +010034 select GENERIC_GETTIMEOFDAY
Paul Burtonb962aeb2018-08-29 14:54:00 -070035 select GENERIC_IOMAP
Matt Redfearn12597982017-05-15 10:46:35 +010036 select GENERIC_IRQ_PROBE
37 select GENERIC_IRQ_SHOW
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010038 select GENERIC_ISA_DMA if EISA
Antony Pavlov740129b2018-04-11 08:50:19 +010039 select GENERIC_LIB_ASHLDI3
40 select GENERIC_LIB_ASHRDI3
41 select GENERIC_LIB_CMPDI2
42 select GENERIC_LIB_LSHRDI3
43 select GENERIC_LIB_UCMPDI2
Matt Redfearn12597982017-05-15 10:46:35 +010044 select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
45 select GENERIC_SMP_IDLE_THREAD
46 select GENERIC_TIME_VSYSCALL
Christoph Hellwig446f0622019-07-11 20:56:52 -070047 select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010048 select HANDLE_DOMAIN_IRQ
Paul Burton906d4412018-08-20 15:36:18 -070049 select HAVE_ARCH_COMPILER_H
Matt Redfearn12597982017-05-15 10:46:35 +010050 select HAVE_ARCH_JUMP_LABEL
Arnd Bergmann42b20992021-01-22 12:02:51 +010051 select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
Matt Redfearn109c32f2016-11-24 17:32:45 +000052 select HAVE_ARCH_MMAP_RND_BITS if MMU
53 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
Markos Chandras490b0042014-01-22 14:40:04 +000054 select HAVE_ARCH_SECCOMP_FILTER
Ralf Baechlec0ff3c52012-08-17 08:22:04 +020055 select HAVE_ARCH_TRACEHOOK
Daniel Silsby45e03e62019-07-15 17:40:01 -040056 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
Masahiro Yamada2ff2b7e2019-08-19 14:54:20 +090057 select HAVE_ASM_MODVERSIONS
Paul Burton36366e32019-12-05 10:23:18 -080058 select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
Matt Redfearn12597982017-05-15 10:46:35 +010059 select HAVE_CONTEXT_TRACKING
Frederic Weisbecker490f5612020-01-27 16:41:52 +010060 select HAVE_TIF_NOHZ
Wu Zhangjin64575f92010-10-27 18:59:09 +080061 select HAVE_C_RECORDMCOUNT
Matt Redfearn12597982017-05-15 10:46:35 +010062 select HAVE_DEBUG_KMEMLEAK
63 select HAVE_DEBUG_STACKOVERFLOW
Matt Redfearn12597982017-05-15 10:46:35 +010064 select HAVE_DMA_CONTIGUOUS
65 select HAVE_DYNAMIC_FTRACE
Alexander Lobakin34c01e42020-01-22 13:58:51 +030066 select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
Matt Redfearn12597982017-05-15 10:46:35 +010067 select HAVE_EXIT_THREAD
Christoph Hellwig67a929e2019-07-11 20:57:14 -070068 select HAVE_FAST_GUP
Matt Redfearn12597982017-05-15 10:46:35 +010069 select HAVE_FTRACE_MCOUNT_RECORD
Wu Zhangjin29c5d342009-11-20 20:34:34 +080070 select HAVE_FUNCTION_GRAPH_TRACER
Matt Redfearn12597982017-05-15 10:46:35 +010071 select HAVE_FUNCTION_TRACER
Alexander Lobakin34c01e42020-01-22 13:58:51 +030072 select HAVE_GCC_PLUGINS
73 select HAVE_GENERIC_VDSO
Matt Redfearn12597982017-05-15 10:46:35 +010074 select HAVE_IDE
Hassan Naveedb3a428b2018-10-29 18:27:41 -070075 select HAVE_IOREMAP_PROT
Matt Redfearn12597982017-05-15 10:46:35 +010076 select HAVE_IRQ_EXIT_ON_IRQ_STACK
77 select HAVE_IRQ_TIME_ACCOUNTING
David Daneyc1bf2072010-08-03 11:22:20 -070078 select HAVE_KPROBES
79 select HAVE_KRETPROBES
Paul Burtonc0436b52018-11-21 21:56:36 +000080 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
David Howells786d35d2012-09-28 14:31:03 +093081 select HAVE_MOD_ARCH_SPECIFIC
Petr Mladek42a0bb32016-05-20 17:00:33 -070082 select HAVE_NMI
Matt Redfearn12597982017-05-15 10:46:35 +010083 select HAVE_PERF_EVENTS
Tiezhu Yang1ddc96b2021-02-04 11:35:22 +080084 select HAVE_PERF_REGS
85 select HAVE_PERF_USER_STACK_DUMP
Marcin Nowakowski08bccf42016-09-02 10:13:21 +020086 select HAVE_REGS_AND_STACK_ACCESS_API
Paul Burton9ea141a2018-06-14 10:13:53 -070087 select HAVE_RSEQ
Hassan Naveed16c0f032019-11-15 23:44:49 +000088 select HAVE_SPARSE_SYSCALL_NR
Masahiro Yamadad148eac2018-06-14 19:36:45 +090089 select HAVE_STACKPROTECTOR
Matt Redfearn12597982017-05-15 10:46:35 +010090 select HAVE_SYSCALL_TRACEPOINTS
Ben Hutchingsa3f14312017-10-04 03:46:14 +010091 select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
Matt Redfearn12597982017-05-15 10:46:35 +010092 select IRQ_FORCED_THREADING
Christoph Hellwig6630a8e2018-11-15 20:05:37 +010093 select ISA if EISA
Matt Redfearn12597982017-05-15 10:46:35 +010094 select MODULES_USE_ELF_REL if MODULES
Alexander Lobakin34c01e42020-01-22 13:58:51 +030095 select MODULES_USE_ELF_RELA if MODULES && 64BIT
Matt Redfearn12597982017-05-15 10:46:35 +010096 select PERF_USE_VMALLOC
Thomas Gleixner981aa1d2020-09-28 12:13:07 +020097 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
Arnd Bergmann05a0a342018-08-28 16:26:30 +020098 select RTC_LIB
Matt Redfearn12597982017-05-15 10:46:35 +010099 select SYSCTL_EXCEPTION_TRACE
100 select VIRT_TO_BUS
Al Viro0bb87f02020-06-14 00:18:12 -0400101 select ARCH_HAS_ELFCORE_COMPAT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700102
Christoph Hellwigd3991572020-04-16 17:00:07 +0200103config MIPS_FIXUP_BIGPHYS_ADDR
104 bool
105
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200106config MIPS_GENERIC
107 bool
108
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200109config MACH_INGENIC
110 bool
111 select SYS_SUPPORTS_32BIT_KERNEL
112 select SYS_SUPPORTS_LITTLE_ENDIAN
113 select SYS_SUPPORTS_ZBOOT
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200114 select DMA_NONCOHERENT
115 select IRQ_MIPS_CPU
116 select PINCTRL
117 select GPIOLIB
118 select COMMON_CLK
119 select GENERIC_IRQ_CHIP
120 select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
121 select USE_OF
122 select CPU_SUPPORTS_CPUFREQ
123 select MIPS_EXTERNAL_TIMER
124
Linus Torvalds1da177e2005-04-16 15:20:36 -0700125menu "Machine selection"
126
Ralf Baechle5e83d432005-10-29 19:32:41 +0100127choice
128 prompt "System type"
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200129 default MIPS_GENERIC_KERNEL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700130
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200131config MIPS_GENERIC_KERNEL
Paul Burtoneed0eab2016-10-05 18:18:20 +0100132 bool "Generic board-agnostic MIPS kernel"
Christoph Hellwig4e066442021-02-10 10:56:41 +0100133 select ARCH_HAS_SETUP_DMA_OPS
Paul Cercueilc434b9f2020-09-06 21:29:25 +0200134 select MIPS_GENERIC
Paul Burtoneed0eab2016-10-05 18:18:20 +0100135 select BOOT_RAW
136 select BUILTIN_DTB
137 select CEVT_R4K
138 select CLKSRC_MIPS_GIC
139 select COMMON_CLK
Paul Burtoneed0eab2016-10-05 18:18:20 +0100140 select CPU_MIPSR2_IRQ_EI
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300141 select CPU_MIPSR2_IRQ_VI
Paul Burtoneed0eab2016-10-05 18:18:20 +0100142 select CSRC_R4K
Christoph Hellwig4e066442021-02-10 10:56:41 +0100143 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100144 select HAVE_PCI
Paul Burtoneed0eab2016-10-05 18:18:20 +0100145 select IRQ_MIPS_CPU
Paul Burton0211d492018-07-27 18:23:21 -0700146 select MIPS_AUTO_PFN_OFFSET
Paul Burtoneed0eab2016-10-05 18:18:20 +0100147 select MIPS_CPU_SCACHE
148 select MIPS_GIC
149 select MIPS_L1_CACHE_SHIFT_7
150 select NO_EXCEPT_FILL
151 select PCI_DRIVERS_GENERIC
Paul Burtoneed0eab2016-10-05 18:18:20 +0100152 select SMP_UP if SMP
Matt Redfearna3078e52017-01-23 14:08:13 +0000153 select SWAP_IO_SPACE
Paul Burtoneed0eab2016-10-05 18:18:20 +0100154 select SYS_HAS_CPU_MIPS32_R1
155 select SYS_HAS_CPU_MIPS32_R2
156 select SYS_HAS_CPU_MIPS32_R6
157 select SYS_HAS_CPU_MIPS64_R1
158 select SYS_HAS_CPU_MIPS64_R2
159 select SYS_HAS_CPU_MIPS64_R6
160 select SYS_SUPPORTS_32BIT_KERNEL
161 select SYS_SUPPORTS_64BIT_KERNEL
162 select SYS_SUPPORTS_BIG_ENDIAN
163 select SYS_SUPPORTS_HIGHMEM
164 select SYS_SUPPORTS_LITTLE_ENDIAN
165 select SYS_SUPPORTS_MICROMIPS
Paul Burtoneed0eab2016-10-05 18:18:20 +0100166 select SYS_SUPPORTS_MIPS16
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300167 select SYS_SUPPORTS_MIPS_CPS
Paul Burtoneed0eab2016-10-05 18:18:20 +0100168 select SYS_SUPPORTS_MULTITHREADING
169 select SYS_SUPPORTS_RELOCATABLE
170 select SYS_SUPPORTS_SMARTMIPS
Paul Cercueilc3e2ee62020-09-06 21:29:29 +0200171 select SYS_SUPPORTS_ZBOOT
Alexander Lobakin34c01e42020-01-22 13:58:51 +0300172 select UHI_BOOT
Corentin Labbe2e6522c2018-01-17 19:56:38 +0100173 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
174 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
175 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
176 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
177 select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
178 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Paul Burtoneed0eab2016-10-05 18:18:20 +0100179 select USE_OF
180 help
181 Select this to build a kernel which aims to support multiple boards,
182 generally using a flattened device tree passed from the bootloader
183 using the boot protocol defined in the UHI (Unified Hosting
184 Interface) specification.
185
Manuel Lauss42a4f172010-07-15 21:45:04 +0200186config MIPS_ALCHEMY
Yoichi Yuasac3543e22007-05-11 20:44:30 +0900187 bool "Alchemy processor based machines"
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200188 select PHYS_ADDR_T_64BIT
Ralf Baechlef772cdb2012-11-30 17:27:27 +0100189 select CEVT_R4K
Steven J. Hilld7ea3352012-11-14 23:34:17 -0600190 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200191 select IRQ_MIPS_CPU
Christoph Hellwiga86497d2021-02-10 10:56:40 +0100192 select DMA_NONCOHERENT # Au1000,1500,1100 aren't, rest is
Christoph Hellwigd3991572020-04-16 17:00:07 +0200193 select MIPS_FIXUP_BIGPHYS_ADDR if PCI
Manuel Lauss42a4f172010-07-15 21:45:04 +0200194 select SYS_HAS_CPU_MIPS32_R1
195 select SYS_SUPPORTS_32BIT_KERNEL
196 select SYS_SUPPORTS_APM_EMULATION
Linus Walleijd30a2b42016-04-19 11:23:22 +0200197 select GPIOLIB
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800198 select SYS_SUPPORTS_ZBOOT
Manuel Lauss47440222014-07-23 16:36:48 +0200199 select COMMON_CLK
Linus Torvalds1da177e2005-04-16 15:20:36 -0700200
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200201config AR7
202 bool "Texas Instruments AR7"
203 select BOOT_ELF32
204 select DMA_NONCOHERENT
205 select CEVT_R4K
206 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200207 select IRQ_MIPS_CPU
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200208 select NO_EXCEPT_FILL
209 select SWAP_IO_SPACE
210 select SYS_HAS_CPU_MIPS32_R1
211 select SYS_HAS_EARLY_PRINTK
212 select SYS_SUPPORTS_32BIT_KERNEL
213 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200214 select SYS_SUPPORTS_MIPS16
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800215 select SYS_SUPPORTS_ZBOOT_UART16550
Linus Walleijd30a2b42016-04-19 11:23:22 +0200216 select GPIOLIB
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200217 select VLYNQ
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700218 select HAVE_LEGACY_CLK
Florian Fainelli7ca5dc12009-06-24 11:12:57 +0200219 help
220 Support for the Texas Instruments AR7 System-on-a-Chip
221 family: TNETD7100, 7200 and 7300.
222
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400223config ATH25
224 bool "Atheros AR231x/AR531x SoC support"
225 select CEVT_R4K
226 select CSRC_R4K
227 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200228 select IRQ_MIPS_CPU
Sergey Ryazanov1753e742014-10-29 03:18:41 +0400229 select IRQ_DOMAIN
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400230 select SYS_HAS_CPU_MIPS32_R1
231 select SYS_SUPPORTS_BIG_ENDIAN
232 select SYS_SUPPORTS_32BIT_KERNEL
Sergey Ryazanov8aaa7272014-10-29 03:18:42 +0400233 select SYS_HAS_EARLY_PRINTK
Sergey Ryazanov43cc7392014-10-29 03:18:38 +0400234 help
235 Support for Atheros AR231x and Atheros AR531x based boards
236
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100237config ATH79
238 bool "Atheros AR71XX/AR724X/AR913X based boards"
Alban Bedelff591a92015-08-03 19:23:52 +0200239 select ARCH_HAS_RESET_CONTROLLER
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100240 select BOOT_RAW
241 select CEVT_R4K
242 select CSRC_R4K
243 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200244 select GPIOLIB
John Crispina08227a2018-07-20 13:58:20 +0200245 select PINCTRL
Alban Bedel411520a2015-04-19 14:30:04 +0200246 select COMMON_CLK
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200247 select IRQ_MIPS_CPU
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100248 select SYS_HAS_CPU_MIPS32_R2
249 select SYS_HAS_EARLY_PRINTK
250 select SYS_SUPPORTS_32BIT_KERNEL
251 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200252 select SYS_SUPPORTS_MIPS16
Alban Bedelb3f0a252016-01-26 09:38:29 +0100253 select SYS_SUPPORTS_ZBOOT_UART_PROM
Alban Bedel03c8c402015-05-31 01:52:25 +0200254 select USE_OF
Alban Bedel53d473f2018-03-24 23:47:22 +0100255 select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
Gabor Juhosd4a67d92011-01-04 21:28:14 +0100256 help
257 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
258
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800259config BMIPS_GENERIC
260 bool "Broadcom Generic BMIPS kernel"
Álvaro Fernández Rojas29906e12020-06-17 12:50:33 +0200261 select ARCH_HAS_RESET_CONTROLLER
Christoph Hellwigd59098a2018-06-15 13:08:52 +0200262 select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
263 select ARCH_HAS_PHYS_TO_DMA
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700264 select BOOT_RAW
265 select NO_EXCEPT_FILL
266 select USE_OF
267 select CEVT_R4K
268 select CSRC_R4K
269 select SYNC_R4K
270 select COMMON_CLK
Simon Arlottc7c42ec2015-11-22 14:30:14 +0000271 select BCM6345_L1_IRQ
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800272 select BCM7038_L1_IRQ
273 select BCM7120_L2_IRQ
274 select BRCMSTB_L2_IRQ
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200275 select IRQ_MIPS_CPU
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800276 select DMA_NONCOHERENT
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700277 select SYS_SUPPORTS_32BIT_KERNEL
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800278 select SYS_SUPPORTS_LITTLE_ENDIAN
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700279 select SYS_SUPPORTS_BIG_ENDIAN
280 select SYS_SUPPORTS_HIGHMEM
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800281 select SYS_HAS_CPU_BMIPS32_3300
282 select SYS_HAS_CPU_BMIPS4350
283 select SYS_HAS_CPU_BMIPS4380
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700284 select SYS_HAS_CPU_BMIPS5000
285 select SWAP_IO_SPACE
Kevin Cernekee60b858f2014-12-25 09:49:17 -0800286 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
287 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
288 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
289 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Justin Chen4dc47042017-05-24 10:55:16 -0700290 select HARDIRQS_SW_RESEND
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700291 help
Kevin Cernekee5f2d4452014-12-25 09:49:00 -0800292 Build a generic DT-based kernel image that boots on select
293 BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
294 box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
295 must be set appropriately for your board.
Kevin Cernekeed666cd02014-10-20 21:28:05 -0700296
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200297config BCM47XX
Florian Fainellic6193662010-03-25 11:42:41 +0100298 bool "Broadcom BCM47XX based boards"
Hauke Mehrtensfe08f8c2012-12-26 20:06:17 +0000299 select BOOT_RAW
Ralf Baechle42f77542007-10-18 17:48:11 +0100300 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000301 select CSRC_R4K
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200302 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100303 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200304 select IRQ_MIPS_CPU
Markos Chandras314878d2013-07-23 15:40:37 +0100305 select SYS_HAS_CPU_MIPS32_R1
Hauke Mehrtensdd54ded2012-12-26 20:06:18 +0000306 select NO_EXCEPT_FILL
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200307 select SYS_SUPPORTS_32BIT_KERNEL
308 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200309 select SYS_SUPPORTS_MIPS16
Aaro Koskinen65078312018-01-17 00:21:44 +0200310 select SYS_SUPPORTS_ZBOOT
Aurelien Jarno25e5fb92007-09-25 15:41:24 +0200311 select SYS_HAS_EARLY_PRINTK
Ralf Baechlee6086552014-03-26 21:40:25 +0100312 select USE_GENERIC_EARLY_PRINTK_8250
Rafał Miłeckic949c0b2014-06-17 16:36:50 +0200313 select GPIOLIB
314 select LEDS_GPIO_REGISTER
Rafał Miłeckif6e734a2015-06-10 23:05:08 +0200315 select BCM47XX_NVRAM
Rafał Miłecki2ab71a02016-01-25 09:50:29 +0100316 select BCM47XX_SPROM
Matt Redfearndfe00492017-11-14 17:16:27 +0000317 select BCM47XX_SSB if !BCM47XX_BCMA
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200318 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100319 Support for BCM47XX based boards
Aurelien Jarno1c0c13e2007-09-25 15:40:12 +0200320
Maxime Bizone7300d02009-08-18 13:23:37 +0100321config BCM63XX
322 bool "Broadcom BCM63XX based boards"
Florian Fainelliae8de612013-06-18 16:55:39 +0000323 select BOOT_RAW
Maxime Bizone7300d02009-08-18 13:23:37 +0100324 select CEVT_R4K
325 select CSRC_R4K
Jonas Gorskifc264022014-07-08 16:26:13 +0200326 select SYNC_R4K
Maxime Bizone7300d02009-08-18 13:23:37 +0100327 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200328 select IRQ_MIPS_CPU
Maxime Bizone7300d02009-08-18 13:23:37 +0100329 select SYS_SUPPORTS_32BIT_KERNEL
330 select SYS_SUPPORTS_BIG_ENDIAN
331 select SYS_HAS_EARLY_PRINTK
332 select SWAP_IO_SPACE
Linus Walleijd30a2b42016-04-19 11:23:22 +0200333 select GPIOLIB
Florian Fainelliaf2418b2014-01-14 09:54:40 -0800334 select MIPS_L1_CACHE_SHIFT_4
Jonas Gorskic5af3c22017-09-20 13:14:01 +0200335 select CLKDEV_LOOKUP
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700336 select HAVE_LEGACY_CLK
Maxime Bizone7300d02009-08-18 13:23:37 +0100337 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100338 Support for BCM63XX based boards
Maxime Bizone7300d02009-08-18 13:23:37 +0100339
Linus Torvalds1da177e2005-04-16 15:20:36 -0700340config MIPS_COBALT
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200341 bool "Cobalt Server"
Ralf Baechle42f77542007-10-18 17:48:11 +0100342 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000343 select CSRC_R4K
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +0900344 select CEVT_GT641XX
Linus Torvalds1da177e2005-04-16 15:20:36 -0700345 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100346 select FORCE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100347 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700348 select I8259
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200349 select IRQ_MIPS_CPU
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +0900350 select IRQ_GT641XX
Yoichi Yuasa252161e2007-03-14 21:51:26 +0900351 select PCI_GT64XXX_PCI0
Ralf Baechle7cf80532005-10-20 22:33:09 +0100352 select SYS_HAS_CPU_NEVADA
Yoichi Yuasa0a22e0d2007-03-02 12:42:33 +0900353 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700354 select SYS_SUPPORTS_32BIT_KERNEL
Florian Fainelli0e8774b2008-01-15 19:42:57 +0100355 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100356 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlee6086552014-03-26 21:40:25 +0100357 select USE_GENERIC_EARLY_PRINTK_8250
Linus Torvalds1da177e2005-04-16 15:20:36 -0700358
359config MACH_DECSTATION
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200360 bool "DECstations"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361 select BOOT_ELF32
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +0900362 select CEVT_DS1287
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100363 select CEVT_R4K if CPU_R4X00
Yoichi Yuasa42474172008-04-24 09:48:40 +0900364 select CSRC_IOASIC
Maciej W. Rozycki81d10ba2014-04-06 21:46:05 +0100365 select CSRC_R4K if CPU_R4X00
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +0100366 select CPU_DADDI_WORKAROUNDS if 64BIT
367 select CPU_R4000_WORKAROUNDS if 64BIT
368 select CPU_R4400_WORKAROUNDS if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369 select DMA_NONCOHERENT
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700370 select NO_IOPORT_MAP
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200371 select IRQ_MIPS_CPU
Ralf Baechle7cf80532005-10-20 22:33:09 +0100372 select SYS_HAS_CPU_R3000
373 select SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700374 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800375 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100376 select SYS_SUPPORTS_LITTLE_ENDIAN
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900377 select SYS_SUPPORTS_128HZ
378 select SYS_SUPPORTS_256HZ
379 select SYS_SUPPORTS_1024HZ
Florian Fainelli930beb52014-01-14 09:54:38 -0800380 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle5e83d432005-10-29 19:32:41 +0100381 help
Linus Torvalds1da177e2005-04-16 15:20:36 -0700382 This enables support for DEC's MIPS based workstations. For details
383 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
384 DECstation porting pages on <http://decstation.unix-ag.org/>.
385
386 If you have one of the following DECstation Models you definitely
387 want to choose R4xx0 for the CPU Type:
388
Ralf Baechle93088162007-08-29 14:21:45 +0100389 DECstation 5000/50
390 DECstation 5000/150
391 DECstation 5000/260
392 DECsystem 5900/260
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393
394 otherwise choose R3000.
395
Ralf Baechle5e83d432005-10-29 19:32:41 +0100396config MACH_JAZZ
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200397 bool "Jazz family of machines"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200398 select ARC_MEMORY
399 select ARC_PROMLIB
Ralf Baechlea211a0822018-02-05 15:37:43 +0100400 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100401 select ARCH_MIGHT_HAVE_PC_SERIO
Christoph Hellwig2f9237d2020-07-08 09:30:00 +0200402 select DMA_OPS
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100403 select FW_ARC
404 select FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100405 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechle42f77542007-10-18 17:48:11 +0100406 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000407 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100408 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100409 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100410 select HAVE_PCSPKR_PLATFORM
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200411 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100412 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100413 select I8259
414 select ISA
Ralf Baechle7cf80532005-10-20 22:33:09 +0100415 select SYS_HAS_CPU_R4X00
Ralf Baechle5e83d432005-10-29 19:32:41 +0100416 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800417 select SYS_SUPPORTS_64BIT_KERNEL
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +0900418 select SYS_SUPPORTS_100HZ
Arnd Bergmannaadfe4b2021-01-22 12:02:50 +0100419 select SYS_SUPPORTS_LITTLE_ENDIAN
Linus Torvalds1da177e2005-04-16 15:20:36 -0700420 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100421 This a family of machines based on the MIPS R4030 chipset which was
422 used by several vendors to build RISC/os and Windows NT workstations.
423 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
424 Olivetti M700-10 workstations.
Ralf Baechle5e83d432005-10-29 19:32:41 +0100425
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200426config MACH_INGENIC_SOC
Paul Burtonde361e82015-05-24 16:11:13 +0100427 bool "Ingenic SoC based machines"
Paul Cercueilf0f4a752020-09-06 21:29:31 +0200428 select MIPS_GENERIC
429 select MACH_INGENIC
Lluís Batlle i Rossellf9c9aff2012-03-30 16:48:05 +0200430 select SYS_SUPPORTS_ZBOOT_UART16550
Lars-Peter Clausen5ebabe52010-06-19 04:08:19 +0000431
John Crispin171bb2f2011-03-30 09:27:47 +0200432config LANTIQ
433 bool "Lantiq based platforms"
434 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200435 select IRQ_MIPS_CPU
John Crispin171bb2f2011-03-30 09:27:47 +0200436 select CEVT_R4K
437 select CSRC_R4K
438 select SYS_HAS_CPU_MIPS32_R1
439 select SYS_HAS_CPU_MIPS32_R2
440 select SYS_SUPPORTS_BIG_ENDIAN
441 select SYS_SUPPORTS_32BIT_KERNEL
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200442 select SYS_SUPPORTS_MIPS16
John Crispin171bb2f2011-03-30 09:27:47 +0200443 select SYS_SUPPORTS_MULTITHREADING
James Hoganf35764e2018-01-15 20:54:35 +0000444 select SYS_SUPPORTS_VPE_LOADER
John Crispin171bb2f2011-03-30 09:27:47 +0200445 select SYS_HAS_EARLY_PRINTK
Linus Walleijd30a2b42016-04-19 11:23:22 +0200446 select GPIOLIB
John Crispin171bb2f2011-03-30 09:27:47 +0200447 select SWAP_IO_SPACE
448 select BOOT_RAW
John Crispin287e3f32012-04-17 15:53:19 +0200449 select CLKDEV_LOOKUP
Stephen Boydbbd7ffd2020-04-08 23:44:13 -0700450 select HAVE_LEGACY_CLK
John Crispina0392222012-04-13 20:56:13 +0200451 select USE_OF
John Crispin3f8c50c2012-08-28 12:44:59 +0200452 select PINCTRL
453 select PINCTRL_LANTIQ
John Crispinc5307812013-09-03 13:18:12 +0200454 select ARCH_HAS_RESET_CONTROLLER
455 select RESET_CONTROLLER
John Crispin171bb2f2011-03-30 09:27:47 +0200456
Huacai Chen30ad29b2015-04-21 10:00:35 +0800457config MACH_LOONGSON32
Huacai Chencaed1d12019-11-04 14:11:21 +0800458 bool "Loongson 32-bit family of machines"
Wu Zhangjinc7e8c662010-01-04 17:16:46 +0800459 select SYS_SUPPORTS_ZBOOT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900460 help
Huacai Chen30ad29b2015-04-21 10:00:35 +0800461 This enables support for the Loongson-1 family of machines.
Wu Zhangjin85749d22009-07-02 23:26:45 +0800462
Huacai Chen30ad29b2015-04-21 10:00:35 +0800463 Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
464 the Institute of Computing Technology (ICT), Chinese Academy of
465 Sciences (CAS).
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900466
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800467config MACH_LOONGSON2EF
468 bool "Loongson-2E/F family of machines"
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200469 select SYS_SUPPORTS_ZBOOT
470 help
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800471 This enables the support of early Loongson-2E/F family of machines.
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200472
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800473config MACH_LOONGSON64
Huacai Chencaed1d12019-11-04 14:11:21 +0800474 bool "Loongson 64-bit family of machines"
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800475 select ARCH_SPARSEMEM_ENABLE
476 select ARCH_MIGHT_HAVE_PC_PARPORT
477 select ARCH_MIGHT_HAVE_PC_SERIO
478 select GENERIC_ISA_DMA_SUPPORT_BROKEN
479 select BOOT_ELF32
480 select BOARD_SCACHE
481 select CSRC_R4K
482 select CEVT_R4K
483 select CPU_HAS_WB
484 select FORCE_PCI
485 select ISA
486 select I8259
487 select IRQ_MIPS_CPU
Jiaxun Yang7d6d2832020-05-27 14:34:34 +0800488 select NO_EXCEPT_FILL
Tiezhu Yang5125bfe2020-03-31 15:00:06 +0800489 select NR_CPUS_DEFAULT_64
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800490 select USE_GENERIC_EARLY_PRINTK_8250
Jiaxun Yang6423e592020-05-26 17:21:16 +0800491 select PCI_DRIVERS_GENERIC
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800492 select SYS_HAS_CPU_LOONGSON64
493 select SYS_HAS_EARLY_PRINTK
494 select SYS_SUPPORTS_SMP
495 select SYS_SUPPORTS_HOTPLUG_CPU
496 select SYS_SUPPORTS_NUMA
497 select SYS_SUPPORTS_64BIT_KERNEL
498 select SYS_SUPPORTS_HIGHMEM
499 select SYS_SUPPORTS_LITTLE_ENDIAN
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800500 select SYS_SUPPORTS_ZBOOT
Jinyang Hea307a4c2020-11-25 18:07:46 +0800501 select SYS_SUPPORTS_RELOCATABLE
Jiaxun Yang6fbde6b2019-10-20 23:01:36 +0800502 select ZONE_DMA32
Jiaxun Yang87fcfa72020-03-25 11:55:02 +0800503 select COMMON_CLK
504 select USE_OF
505 select BUILTIN_DTB
Huacai Chen39c14852020-07-29 14:58:37 +0800506 select PCI_HOST_GENERIC
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +0800507 help
Huacai Chencaed1d12019-11-04 14:11:21 +0800508 This enables the support of Loongson-2/3 family of machines.
509
510 Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
511 GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
512 and Loongson-2F which will be removed), developed by the Institute
513 of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
Kelvin Cheungca585cf2012-07-25 16:17:24 +0200514
Andrew Bresticker6a438302015-03-16 14:43:10 -0700515config MACH_PISTACHIO
516 bool "IMG Pistachio SoC based boards"
Andrew Bresticker6a438302015-03-16 14:43:10 -0700517 select BOOT_ELF32
518 select BOOT_RAW
519 select CEVT_R4K
520 select CLKSRC_MIPS_GIC
521 select COMMON_CLK
522 select CSRC_R4K
Zubair Lutfullah Kakakhel645c7822016-06-03 09:35:00 +0100523 select DMA_NONCOHERENT
Linus Walleijd30a2b42016-04-19 11:23:22 +0200524 select GPIOLIB
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200525 select IRQ_MIPS_CPU
Andrew Bresticker6a438302015-03-16 14:43:10 -0700526 select MFD_SYSCON
527 select MIPS_CPU_SCACHE
528 select MIPS_GIC
529 select PINCTRL
530 select REGULATOR
531 select SYS_HAS_CPU_MIPS32_R2
532 select SYS_SUPPORTS_32BIT_KERNEL
533 select SYS_SUPPORTS_LITTLE_ENDIAN
534 select SYS_SUPPORTS_MIPS_CPS
535 select SYS_SUPPORTS_MULTITHREADING
Matt Redfearn41cc07b2016-05-25 12:58:40 +0100536 select SYS_SUPPORTS_RELOCATABLE
Andrew Bresticker6a438302015-03-16 14:43:10 -0700537 select SYS_SUPPORTS_ZBOOT
Ezequiel Garcia018f62e2015-04-28 19:08:35 -0300538 select SYS_HAS_EARLY_PRINTK
539 select USE_GENERIC_EARLY_PRINTK_8250
Andrew Bresticker6a438302015-03-16 14:43:10 -0700540 select USE_OF
541 help
542 This enables support for the IMG Pistachio SoC platform.
543
Linus Torvalds1da177e2005-04-16 15:20:36 -0700544config MIPS_MALTA
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200545 bool "MIPS Malta board"
Ralf Baechle61ed2422005-09-15 08:52:34 +0000546 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100547 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100548 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700549 select BOOT_ELF32
Ralf Baechlefa71c962008-01-29 10:15:00 +0000550 select BOOT_RAW
Paul Burtone8823d22015-05-22 16:51:02 +0100551 select BUILTIN_DTB
Ralf Baechle42f77542007-10-18 17:48:11 +0100552 select CEVT_R4K
Andrew Brestickerfa5635a2014-10-20 12:03:58 -0700553 select CLKSRC_MIPS_GIC
Guenter Roeck42b002a2015-08-22 02:40:41 -0700554 select COMMON_CLK
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200555 select CSRC_R4K
Christoph Hellwiga86497d2021-02-10 10:56:40 +0100556 select DMA_NONCOHERENT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700557 select GENERIC_ISA_DMA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100558 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100559 select HAVE_PCI
Ralf Baechled865bea2007-10-11 23:46:10 +0100560 select I8253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700561 select I8259
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200562 select IRQ_MIPS_CPU
Ralf Baechle5e83d432005-10-29 19:32:41 +0100563 select MIPS_BONITO64
Chris Dearman9318c512006-06-20 17:15:20 +0100564 select MIPS_CPU_SCACHE
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200565 select MIPS_GIC
Kevin Cernekeea7ef1ea2014-10-20 21:27:57 -0700566 select MIPS_L1_CACHE_SHIFT_6
Ralf Baechle5e83d432005-10-29 19:32:41 +0100567 select MIPS_MSC
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200568 select PCI_GT64XXX_PCI0
Paul Burtonecafe3e2015-09-22 11:58:43 -0700569 select SMP_UP if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700570 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100571 select SYS_HAS_CPU_MIPS32_R1
572 select SYS_HAS_CPU_MIPS32_R2
Markos Chandrasbfc3c5a2014-01-16 13:12:36 +0000573 select SYS_HAS_CPU_MIPS32_R3_5
Steven J. Hillc5b36782015-02-26 18:16:38 -0600574 select SYS_HAS_CPU_MIPS32_R5
Markos Chandras575509b2014-11-19 11:31:56 +0000575 select SYS_HAS_CPU_MIPS32_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100576 select SYS_HAS_CPU_MIPS64_R1
Leonid Yegoshin5d9fbed2012-07-19 09:11:15 +0200577 select SYS_HAS_CPU_MIPS64_R2
Markos Chandras575509b2014-11-19 11:31:56 +0000578 select SYS_HAS_CPU_MIPS64_R6
Ralf Baechle7cf80532005-10-20 22:33:09 +0100579 select SYS_HAS_CPU_NEVADA
580 select SYS_HAS_CPU_RM7000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700581 select SYS_SUPPORTS_32BIT_KERNEL
582 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100583 select SYS_SUPPORTS_BIG_ENDIAN
Steven J. Hillc5b36782015-02-26 18:16:38 -0600584 select SYS_SUPPORTS_HIGHMEM
Ralf Baechle5e83d432005-10-29 19:32:41 +0100585 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki424ebcd2014-11-15 22:07:07 +0000586 select SYS_SUPPORTS_MICROMIPS
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200587 select SYS_SUPPORTS_MIPS16
Tim Anderson03650702009-06-17 16:22:53 -0700588 select SYS_SUPPORTS_MIPS_CMP
Paul Burtone56b6aa2014-01-15 10:31:56 +0000589 select SYS_SUPPORTS_MIPS_CPS
Ralf Baechlef41ae0b2006-06-05 17:24:46 +0100590 select SYS_SUPPORTS_MULTITHREADING
Maksym Kokhan47bf2b02018-11-12 19:00:59 +0200591 select SYS_SUPPORTS_RELOCATABLE
Franck Bui-Huu9693a852007-02-02 17:41:47 +0100592 select SYS_SUPPORTS_SMARTMIPS
James Hoganf35764e2018-01-15 20:54:35 +0000593 select SYS_SUPPORTS_VPE_LOADER
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +0800594 select SYS_SUPPORTS_ZBOOT
Paul Burtone8823d22015-05-22 16:51:02 +0100595 select USE_OF
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +0200596 select WAR_ICACHE_REFILLS
James Hoganabcc82b2015-04-27 15:07:19 +0100597 select ZONE_DMA32 if 64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700598 help
Maciej W. Rozyckif638d192005-02-02 22:23:46 +0000599 This enables support for the MIPS Technologies Malta evaluation
Linus Torvalds1da177e2005-04-16 15:20:36 -0700600 board.
601
Joshua Henderson2572f002016-01-13 18:15:39 -0700602config MACH_PIC32
603 bool "Microchip PIC32 Family"
604 help
605 This enables support for the Microchip PIC32 family of platforms.
606
607 Microchip PIC32 is a family of general-purpose 32 bit MIPS core
608 microcontrollers.
609
Ralf Baechle5e83d432005-10-29 19:32:41 +0100610config MACH_VR41XX
Yoichi Yuasa74142d62007-04-26 19:45:09 +0900611 bool "NEC VR4100 series based machines"
Ralf Baechle42f77542007-10-18 17:48:11 +0100612 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000613 select CSRC_R4K
Ralf Baechle7cf80532005-10-20 22:33:09 +0100614 select SYS_HAS_CPU_VR41XX
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200615 select SYS_SUPPORTS_MIPS16
Linus Walleijd30a2b42016-04-19 11:23:22 +0200616 select GPIOLIB
Ralf Baechle5e83d432005-10-29 19:32:41 +0100617
Lauri Kasanenbaec9702021-01-13 17:11:23 +0200618config MACH_NINTENDO64
619 bool "Nintendo 64 console"
620 select CEVT_R4K
621 select CSRC_R4K
622 select SYS_HAS_CPU_R4300
623 select SYS_SUPPORTS_BIG_ENDIAN
624 select SYS_SUPPORTS_ZBOOT
625 select SYS_SUPPORTS_32BIT_KERNEL
626 select SYS_SUPPORTS_64BIT_KERNEL
627 select DMA_NONCOHERENT
628 select IRQ_MIPS_CPU
629
John Crispinae2b5bb2013-01-20 22:05:30 +0100630config RALINK
631 bool "Ralink based machines"
632 select CEVT_R4K
633 select CSRC_R4K
634 select BOOT_RAW
635 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200636 select IRQ_MIPS_CPU
John Crispinae2b5bb2013-01-20 22:05:30 +0100637 select USE_OF
638 select SYS_HAS_CPU_MIPS32_R1
639 select SYS_HAS_CPU_MIPS32_R2
640 select SYS_SUPPORTS_32BIT_KERNEL
641 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle377cb1b2014-04-29 01:49:24 +0200642 select SYS_SUPPORTS_MIPS16
Chuanhong Guo1f0400d2020-10-13 10:05:47 +0800643 select SYS_SUPPORTS_ZBOOT
John Crispinae2b5bb2013-01-20 22:05:30 +0100644 select SYS_HAS_EARLY_PRINTK
John Crispinae2b5bb2013-01-20 22:05:30 +0100645 select CLKDEV_LOOKUP
John Crispin2a153f12013-09-04 00:16:59 +0200646 select ARCH_HAS_RESET_CONTROLLER
647 select RESET_CONTROLLER
John Crispinae2b5bb2013-01-20 22:05:30 +0100648
Bert Vermeulen40421472021-01-19 10:21:07 +0100649config MACH_REALTEK_RTL
650 bool "Realtek RTL838x/RTL839x based machines"
651 select MIPS_GENERIC
652 select DMA_NONCOHERENT
653 select IRQ_MIPS_CPU
654 select CSRC_R4K
655 select CEVT_R4K
656 select SYS_HAS_CPU_MIPS32_R1
657 select SYS_HAS_CPU_MIPS32_R2
658 select SYS_SUPPORTS_BIG_ENDIAN
659 select SYS_SUPPORTS_32BIT_KERNEL
660 select SYS_SUPPORTS_MIPS16
661 select SYS_SUPPORTS_MULTITHREADING
662 select SYS_SUPPORTS_VPE_LOADER
663 select SYS_HAS_EARLY_PRINTK
664 select SYS_HAS_EARLY_PRINTK_8250
665 select USE_GENERIC_EARLY_PRINTK_8250
666 select BOOT_RAW
667 select PINCTRL
668 select USE_OF
669
Linus Torvalds1da177e2005-04-16 15:20:36 -0700670config SGI_IP22
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200671 bool "SGI IP22 (Indy/Indigo2)"
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200672 select ARC_MEMORY
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200673 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100674 select FW_ARC
675 select FW_ARC32
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100676 select ARCH_MIGHT_HAVE_PC_SERIO
Linus Torvalds1da177e2005-04-16 15:20:36 -0700677 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100678 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000679 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100680 select DEFAULT_SGI_PARTITION
Linus Torvalds1da177e2005-04-16 15:20:36 -0700681 select DMA_NONCOHERENT
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100682 select HAVE_EISA
Ralf Baechled865bea2007-10-11 23:46:10 +0100683 select I8253
Thomas Bogendoerfer68de4802007-11-23 20:34:16 +0100684 select I8259
Linus Torvalds1da177e2005-04-16 15:20:36 -0700685 select IP22_CPU_SCACHE
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200686 select IRQ_MIPS_CPU
Ralf Baechleaa414df2006-11-30 01:14:51 +0000687 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100688 select SGI_HAS_I8042
689 select SGI_HAS_INDYDOG
Thomas Bogendoerfer36e5c212008-07-16 14:06:15 +0200690 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100691 select SGI_HAS_SEEQ
692 select SGI_HAS_WD93
693 select SGI_HAS_ZILOG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700694 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100695 select SYS_HAS_CPU_R4X00
696 select SYS_HAS_CPU_R5000
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200697 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700698 select SYS_SUPPORTS_32BIT_KERNEL
699 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100700 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer802b83622020-08-24 18:32:43 +0200701 select WAR_R4600_V1_INDEX_ICACHEOP
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +0200702 select WAR_R4600_V1_HIT_CACHEOP
Thomas Bogendoerfer44def342020-08-24 18:32:45 +0200703 select WAR_R4600_V2_HIT_CACHEOP
Florian Fainelli930beb52014-01-14 09:54:38 -0800704 select MIPS_L1_CACHE_SHIFT_7
Linus Torvalds1da177e2005-04-16 15:20:36 -0700705 help
706 This are the SGI Indy, Challenge S and Indigo2, as well as certain
707 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
708 that runs on these, say Y here.
709
710config SGI_IP27
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200711 bool "SGI IP27 (Origin200/2000)"
Christoph Hellwig54aed4d2018-06-15 13:08:44 +0200712 select ARCH_HAS_PHYS_TO_DMA
Mike Rapoport397dc002019-09-16 14:13:10 +0300713 select ARCH_SPARSEMEM_ENABLE
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100714 select FW_ARC
715 select FW_ARC64
Thomas Bogendoerfere9422422019-10-22 18:13:15 +0200716 select ARC_CMDLINE_ONLY
Ralf Baechle5e83d432005-10-29 19:32:41 +0100717 select BOOT_ELF64
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100718 select DEFAULT_SGI_PARTITION
Christoph Hellwig04100452021-03-01 08:38:32 +0100719 select FORCE_PCI
Ralf Baechle36a88532007-03-01 11:56:43 +0000720 select SYS_HAS_EARLY_PRINTK
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100721 select HAVE_PCI
Thomas Bogendoerfer69a07a42019-02-19 16:57:20 +0100722 select IRQ_MIPS_CPU
Thomas Bogendoerfere6308b62019-05-07 23:09:15 +0200723 select IRQ_DOMAIN_HIERARCHY
Ralf Baechle130e2fb2007-02-06 16:53:15 +0000724 select NR_CPUS_DEFAULT_64
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +0200725 select PCI_DRIVERS_GENERIC
726 select PCI_XTALK_BRIDGE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100727 select SYS_HAS_CPU_R10000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700728 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100729 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechled8cb4e12006-06-11 23:03:08 +0100730 select SYS_SUPPORTS_NUMA
Ralf Baechle1a5c5de2006-11-02 17:23:33 +0000731 select SYS_SUPPORTS_SMP
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200732 select WAR_R10000_LLSC
Florian Fainelli930beb52014-01-14 09:54:38 -0800733 select MIPS_L1_CACHE_SHIFT_7
Mike Rapoport6c86a302020-08-05 15:51:41 +0300734 select NUMA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700735 help
736 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
737 workstations. To compile a Linux kernel that runs on these, say Y
738 here.
739
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100740config SGI_IP28
Kees Cook7d607172013-01-16 18:53:19 -0800741 bool "SGI IP28 (Indigo2 R10k)"
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200742 select ARC_MEMORY
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200743 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100744 select FW_ARC
745 select FW_ARC64
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100746 select ARCH_MIGHT_HAVE_PC_SERIO
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100747 select BOOT_ELF64
748 select CEVT_R4K
749 select CSRC_R4K
750 select DEFAULT_SGI_PARTITION
751 select DMA_NONCOHERENT
752 select GENERIC_ISA_DMA_SUPPORT_BROKEN
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200753 select IRQ_MIPS_CPU
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100754 select HAVE_EISA
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100755 select I8253
756 select I8259
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100757 select SGI_HAS_I8042
758 select SGI_HAS_INDYDOG
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +0200759 select SGI_HAS_HAL2
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100760 select SGI_HAS_SEEQ
761 select SGI_HAS_WD93
762 select SGI_HAS_ZILOG
763 select SWAP_IO_SPACE
764 select SYS_HAS_CPU_R10000
Thomas Bogendoerferc0de00b2019-10-09 15:27:17 +0200765 select SYS_HAS_EARLY_PRINTK
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100766 select SYS_SUPPORTS_64BIT_KERNEL
767 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200768 select WAR_R10000_LLSC
Thomas Bogendoerferdc24d682014-08-19 22:00:07 +0200769 select MIPS_L1_CACHE_SHIFT_7
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +0100770 help
771 This is the SGI Indigo2 with R10000 processor. To compile a Linux
772 kernel that runs on these, say Y here.
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100773
Thomas Bogendoerfer75055762019-10-24 12:18:29 +0200774config SGI_IP30
775 bool "SGI IP30 (Octane/Octane2)"
776 select ARCH_HAS_PHYS_TO_DMA
777 select FW_ARC
778 select FW_ARC64
779 select BOOT_ELF64
780 select CEVT_R4K
781 select CSRC_R4K
Christoph Hellwig04100452021-03-01 08:38:32 +0100782 select FORCE_PCI
Thomas Bogendoerfer75055762019-10-24 12:18:29 +0200783 select SYNC_R4K if SMP
784 select ZONE_DMA32
785 select HAVE_PCI
786 select IRQ_MIPS_CPU
787 select IRQ_DOMAIN_HIERARCHY
788 select NR_CPUS_DEFAULT_2
789 select PCI_DRIVERS_GENERIC
790 select PCI_XTALK_BRIDGE
791 select SYS_HAS_EARLY_PRINTK
792 select SYS_HAS_CPU_R10000
793 select SYS_SUPPORTS_64BIT_KERNEL
794 select SYS_SUPPORTS_BIG_ENDIAN
795 select SYS_SUPPORTS_SMP
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +0200796 select WAR_R10000_LLSC
Thomas Bogendoerfer75055762019-10-24 12:18:29 +0200797 select MIPS_L1_CACHE_SHIFT_7
798 select ARC_MEMORY
799 help
800 These are the SGI Octane and Octane2 graphics workstations. To
801 compile a Linux kernel that runs on these, say Y here.
802
Linus Torvalds1da177e2005-04-16 15:20:36 -0700803config SGI_IP32
Ralf Baechlecfd2afc2007-07-10 17:33:00 +0100804 bool "SGI IP32 (O2)"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200805 select ARC_MEMORY
806 select ARC_PROMLIB
Christoph Hellwig03df8222018-06-15 13:08:48 +0200807 select ARCH_HAS_PHYS_TO_DMA
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100808 select FW_ARC
809 select FW_ARC32
Linus Torvalds1da177e2005-04-16 15:20:36 -0700810 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100811 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000812 select CSRC_R4K
Linus Torvalds1da177e2005-04-16 15:20:36 -0700813 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100814 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200815 select IRQ_MIPS_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700816 select R5000_CPU_SCACHE
817 select RM7000_CPU_SCACHE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100818 select SYS_HAS_CPU_R5000
819 select SYS_HAS_CPU_R10000 if BROKEN
820 select SYS_HAS_CPU_RM7000
Ralf Baechledd2f18f2006-01-19 14:55:42 +0000821 select SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700822 select SYS_SUPPORTS_64BIT_KERNEL
Ralf Baechle5e83d432005-10-29 19:32:41 +0100823 select SYS_SUPPORTS_BIG_ENDIAN
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +0200824 select WAR_ICACHE_REFILLS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700825 help
826 If you want this kernel to run on SGI O2 workstation, say Y here.
827
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900828config SIBYTE_CRHINE
829 bool "Sibyte BCM91120C-CRhine"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100830 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100831 select SIBYTE_BCM1120
832 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100833 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100834 select SYS_SUPPORTS_BIG_ENDIAN
835 select SYS_SUPPORTS_LITTLE_ENDIAN
836
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900837config SIBYTE_CARMEL
838 bool "Sibyte BCM91120x-Carmel"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100839 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100840 select SIBYTE_BCM1120
841 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100842 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100843 select SYS_SUPPORTS_BIG_ENDIAN
844 select SYS_SUPPORTS_LITTLE_ENDIAN
845
846config SIBYTE_CRHONE
Martin Michlmayr3fa986f2006-05-09 23:34:53 +0200847 bool "Sibyte BCM91125C-CRhone"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100848 select BOOT_ELF32
Ralf Baechle5e83d432005-10-29 19:32:41 +0100849 select SIBYTE_BCM1125
850 select SWAP_IO_SPACE
Ralf Baechle7cf80532005-10-20 22:33:09 +0100851 select SYS_HAS_CPU_SB1
Ralf Baechle5e83d432005-10-29 19:32:41 +0100852 select SYS_SUPPORTS_BIG_ENDIAN
853 select SYS_SUPPORTS_HIGHMEM
854 select SYS_SUPPORTS_LITTLE_ENDIAN
855
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900856config SIBYTE_RHONE
857 bool "Sibyte BCM91125E-Rhone"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900858 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900859 select SIBYTE_BCM1125H
860 select SWAP_IO_SPACE
861 select SYS_HAS_CPU_SB1
862 select SYS_SUPPORTS_BIG_ENDIAN
863 select SYS_SUPPORTS_LITTLE_ENDIAN
864
865config SIBYTE_SWARM
866 bool "Sibyte BCM91250A-SWARM"
867 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200868 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900869 select SIBYTE_SB1250
870 select SWAP_IO_SPACE
871 select SYS_HAS_CPU_SB1
872 select SYS_SUPPORTS_BIG_ENDIAN
873 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900874 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000875 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000876 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900877
878config SIBYTE_LITTLESUR
879 bool "Sibyte BCM91250C2-LittleSur"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900880 select BOOT_ELF32
Sebastian Andrzej Siewiorfcf3ca42010-04-18 15:26:36 +0200881 select HAVE_PATA_PLATFORM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900882 select SIBYTE_SB1250
883 select SWAP_IO_SPACE
884 select SYS_HAS_CPU_SB1
885 select SYS_SUPPORTS_BIG_ENDIAN
886 select SYS_SUPPORTS_HIGHMEM
887 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozycki756d6d82018-11-13 22:42:37 +0000888 select ZONE_DMA32 if 64BIT
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900889
890config SIBYTE_SENTOSA
891 bool "Sibyte BCM91250E-Sentosa"
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900892 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900893 select SIBYTE_SB1250
894 select SWAP_IO_SPACE
895 select SYS_HAS_CPU_SB1
896 select SYS_SUPPORTS_BIG_ENDIAN
897 select SYS_SUPPORTS_LITTLE_ENDIAN
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000898 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900899
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900900config SIBYTE_BIGSUR
901 bool "Sibyte BCM91480B-BigSur"
902 select BOOT_ELF32
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900903 select NR_CPUS_DEFAULT_4
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900904 select SIBYTE_BCM1x80
905 select SWAP_IO_SPACE
906 select SYS_HAS_CPU_SB1
907 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle651194f2007-11-01 21:55:39 +0000908 select SYS_SUPPORTS_HIGHMEM
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900909 select SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechlecce335a2007-11-03 02:05:43 +0000910 select ZONE_DMA32 if 64BIT
Maciej W. Rozyckie4849af2018-11-13 22:42:44 +0000911 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
Yoichi Yuasaade299d2007-07-27 15:25:43 +0900912
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100913config SNI_RM
914 bool "SNI RM200/300/400"
Thomas Bogendoerfer39b2d752019-10-09 15:27:14 +0200915 select ARC_MEMORY
916 select ARC_PROMLIB
Ralf Baechle0e2794b2012-11-15 20:48:50 +0100917 select FW_ARC if CPU_LITTLE_ENDIAN
918 select FW_ARC32 if CPU_LITTLE_ENDIAN
Paul Bolleaaa9fad2013-03-25 09:39:54 +0000919 select FW_SNIPROM if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100920 select ARCH_MAY_HAVE_PC_FDC
Ralf Baechlea211a0822018-02-05 15:37:43 +0100921 select ARCH_MIGHT_HAVE_PC_PARPORT
Ralf Baechle7a407aa2018-02-05 16:40:00 +0100922 select ARCH_MIGHT_HAVE_PC_SERIO
Ralf Baechle5e83d432005-10-29 19:32:41 +0100923 select BOOT_ELF32
Ralf Baechle42f77542007-10-18 17:48:11 +0100924 select CEVT_R4K
Ralf Baechle940f6b42007-11-24 22:33:28 +0000925 select CSRC_R4K
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +0100926 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100927 select DMA_NONCOHERENT
928 select GENERIC_ISA_DMA
Christoph Hellwig6630a8e2018-11-15 20:05:37 +0100929 select HAVE_EISA
Ralf Baechle8a118c32011-06-01 19:05:10 +0100930 select HAVE_PCSPKR_PLATFORM
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100931 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200932 select IRQ_MIPS_CPU
Ralf Baechled865bea2007-10-11 23:46:10 +0100933 select I8253
Ralf Baechle5e83d432005-10-29 19:32:41 +0100934 select I8259
935 select ISA
Thomas Bogendoerfer564c8362020-09-14 18:05:00 +0200936 select MIPS_L1_CACHE_SHIFT_6
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200937 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
Ralf Baechle7cf80532005-10-20 22:33:09 +0100938 select SYS_HAS_CPU_R4X00
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200939 select SYS_HAS_CPU_R5000
Thomas Bogendoerferc066a322006-12-28 18:22:32 +0100940 select SYS_HAS_CPU_R10000
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200941 select R5000_CPU_SCACHE
Ralf Baechle36a88532007-03-01 11:56:43 +0000942 select SYS_HAS_EARLY_PRINTK
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -0700943 select SYS_SUPPORTS_32BIT_KERNEL
Kees Cook7d607172013-01-16 18:53:19 -0800944 select SYS_SUPPORTS_64BIT_KERNEL
Thomas Bogendoerfer4a0312f2006-06-13 13:59:01 +0200945 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +0100946 select SYS_SUPPORTS_HIGHMEM
947 select SYS_SUPPORTS_LITTLE_ENDIAN
Thomas Bogendoerfer44def342020-08-24 18:32:45 +0200948 select WAR_R4600_V2_HIT_CACHEOP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700949 help
Thomas Bogendoerfer14b36af2006-12-05 17:05:44 +0100950 The SNI RM200/300/400 are MIPS-based machines manufactured by
951 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
Ralf Baechle5e83d432005-10-29 19:32:41 +0100952 Technology and now in turn merged with Fujitsu. Say Y here to
953 support this machine type.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700954
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900955config MACH_TX39XX
956 bool "Toshiba TX39 series based machines"
Ralf Baechle5e83d432005-10-29 19:32:41 +0100957
Atsushi Nemotoedcaf1a2008-07-11 23:27:54 +0900958config MACH_TX49XX
959 bool "Toshiba TX49 series based machines"
Thomas Bogendoerfer24a1c022020-08-24 18:32:47 +0200960 select WAR_TX49XX_ICACHE_INDEX_INV
Ralf Baechle23fbee92005-07-25 22:45:45 +0000961
Ralf Baechle73b43902008-07-16 16:12:25 +0100962config MIKROTIK_RB532
963 bool "Mikrotik RB532 boards"
964 select CEVT_R4K
965 select CSRC_R4K
966 select DMA_NONCOHERENT
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100967 select HAVE_PCI
Ralf Baechle67e38cf2015-05-26 18:20:06 +0200968 select IRQ_MIPS_CPU
Ralf Baechle73b43902008-07-16 16:12:25 +0100969 select SYS_HAS_CPU_MIPS32_R1
970 select SYS_SUPPORTS_32BIT_KERNEL
971 select SYS_SUPPORTS_LITTLE_ENDIAN
972 select SWAP_IO_SPACE
973 select BOOT_RAW
Linus Walleijd30a2b42016-04-19 11:23:22 +0200974 select GPIOLIB
Florian Fainelli930beb52014-01-14 09:54:38 -0800975 select MIPS_L1_CACHE_SHIFT_4
Ralf Baechle73b43902008-07-16 16:12:25 +0100976 help
977 Support the Mikrotik(tm) RouterBoard 532 series,
978 based on the IDT RC32434 SoC.
979
David Daney9ddebc42013-05-22 15:10:46 +0000980config CAVIUM_OCTEON_SOC
981 bool "Cavium Networks Octeon SoC based boards"
David Daneya86c7f72008-12-11 15:33:38 -0800982 select CEVT_R4K
Christoph Hellwigea8c64a2018-01-10 16:21:13 +0100983 select ARCH_HAS_PHYS_TO_DMA
Christoph Hellwig1753d502018-11-15 20:05:36 +0100984 select HAVE_RAPIDIO
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200985 select PHYS_ADDR_T_64BIT
David Daneya86c7f72008-12-11 15:33:38 -0800986 select SYS_SUPPORTS_64BIT_KERNEL
987 select SYS_SUPPORTS_BIG_ENDIAN
Ralf Baechlef65aad42012-10-17 00:39:09 +0200988 select EDAC_SUPPORT
Borislav Petkovb01aec92015-05-21 19:59:31 +0200989 select EDAC_ATOMIC_SCRUB
David Daney73569d82015-03-20 19:11:58 +0300990 select SYS_SUPPORTS_LITTLE_ENDIAN
991 select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
David Daneya86c7f72008-12-11 15:33:38 -0800992 select SYS_HAS_EARLY_PRINTK
David Daney5e683382009-02-02 11:30:59 -0800993 select SYS_HAS_CPU_CAVIUM_OCTEON
Christoph Hellwigeb01d422018-11-15 20:05:32 +0100994 select HAVE_PCI
Masahiro Yamada78bdbba2020-03-25 16:45:29 +0900995 select HAVE_PLAT_DELAY
996 select HAVE_PLAT_FW_INIT_CMDLINE
997 select HAVE_PLAT_MEMCPY
David Daneyf00e0012010-10-01 13:27:30 -0700998 select ZONE_DMA32
David Daney465aaed2011-08-20 08:44:00 -0700999 select HOLES_IN_ZONE
Linus Walleijd30a2b42016-04-19 11:23:22 +02001000 select GPIOLIB
David Daney6e511162014-05-28 23:52:05 +02001001 select USE_OF
1002 select ARCH_SPARSEMEM_ENABLE
1003 select SYS_SUPPORTS_SMP
David Daney7820b842017-09-28 12:34:04 -05001004 select NR_CPUS_DEFAULT_64
1005 select MIPS_NR_CPU_NR_MAP_1024
Andrew Brestickere3264792014-08-21 13:04:22 -07001006 select BUILTIN_DTB
Julian Brahaf766b282021-03-26 01:34:56 -04001007 select MTD
David Daney8c1e6b12015-03-05 17:31:30 +03001008 select MTD_COMPLEX_MAPPINGS
Christoph Hellwig09230cb2018-04-24 09:00:54 +02001009 select SWIOTLB
Steven J. Hill3ff72be2016-12-13 14:25:37 -06001010 select SYS_SUPPORTS_RELOCATABLE
David Daneya86c7f72008-12-11 15:33:38 -08001011 help
1012 This option supports all of the Octeon reference boards from Cavium
1013 Networks. It builds a kernel that dynamically determines the Octeon
1014 CPU type and supports all known board reference implementations.
1015 Some of the supported boards are:
1016 EBT3000
1017 EBH3000
1018 EBH3100
1019 Thunder
1020 Kodama
1021 Hikari
1022 Say Y here for most Octeon reference boards.
1023
Jayachandran C7f058e82011-05-07 01:36:57 +05301024config NLM_XLR_BOARD
1025 bool "Netlogic XLR/XLS based systems"
Jayachandran C7f058e82011-05-07 01:36:57 +05301026 select BOOT_ELF32
1027 select NLM_COMMON
Jayachandran C7f058e82011-05-07 01:36:57 +05301028 select SYS_HAS_CPU_XLR
1029 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +01001030 select HAVE_PCI
Jayachandran C7f058e82011-05-07 01:36:57 +05301031 select SWAP_IO_SPACE
1032 select SYS_SUPPORTS_32BIT_KERNEL
1033 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001034 select PHYS_ADDR_T_64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +05301035 select SYS_SUPPORTS_BIG_ENDIAN
1036 select SYS_SUPPORTS_HIGHMEM
Jayachandran C7f058e82011-05-07 01:36:57 +05301037 select NR_CPUS_DEFAULT_32
1038 select CEVT_R4K
1039 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001040 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +00001041 select ZONE_DMA32 if 64BIT
Jayachandran C7f058e82011-05-07 01:36:57 +05301042 select SYNC_R4K
1043 select SYS_HAS_EARLY_PRINTK
Jayachandran C8f0b0432013-06-10 06:33:26 +00001044 select SYS_SUPPORTS_ZBOOT
1045 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C7f058e82011-05-07 01:36:57 +05301046 help
1047 Support for systems based on Netlogic XLR and XLS processors.
1048 Say Y here if you have a XLR or XLS based board.
1049
Jayachandran C1c773ea2011-11-16 00:21:28 +00001050config NLM_XLP_BOARD
1051 bool "Netlogic XLP based systems"
Jayachandran C1c773ea2011-11-16 00:21:28 +00001052 select BOOT_ELF32
1053 select NLM_COMMON
1054 select SYS_HAS_CPU_XLP
1055 select SYS_SUPPORTS_SMP
Christoph Hellwigeb01d422018-11-15 20:05:32 +01001056 select HAVE_PCI
Jayachandran C1c773ea2011-11-16 00:21:28 +00001057 select SYS_SUPPORTS_32BIT_KERNEL
1058 select SYS_SUPPORTS_64BIT_KERNEL
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001059 select PHYS_ADDR_T_64BIT
Linus Walleijd30a2b42016-04-19 11:23:22 +02001060 select GPIOLIB
Jayachandran C1c773ea2011-11-16 00:21:28 +00001061 select SYS_SUPPORTS_BIG_ENDIAN
1062 select SYS_SUPPORTS_LITTLE_ENDIAN
1063 select SYS_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +00001064 select NR_CPUS_DEFAULT_32
1065 select CEVT_R4K
1066 select CSRC_R4K
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001067 select IRQ_MIPS_CPU
Jayachandran Cb97215f2012-10-31 12:01:33 +00001068 select ZONE_DMA32 if 64BIT
Jayachandran C1c773ea2011-11-16 00:21:28 +00001069 select SYNC_R4K
1070 select SYS_HAS_EARLY_PRINTK
Jayachandran C2f6528e2012-07-13 21:53:22 +05301071 select USE_OF
Jayachandran C8f0b0432013-06-10 06:33:26 +00001072 select SYS_SUPPORTS_ZBOOT
1073 select SYS_SUPPORTS_ZBOOT_UART16550
Jayachandran C1c773ea2011-11-16 00:21:28 +00001074 help
1075 This board is based on Netlogic XLP Processor.
1076 Say Y here if you have a XLP based board.
1077
Linus Torvalds1da177e2005-04-16 15:20:36 -07001078endchoice
1079
Ralf Baechlee8c7c482008-09-16 19:12:16 +02001080source "arch/mips/alchemy/Kconfig"
Sergey Ryazanov3b12308f2014-10-29 03:18:39 +04001081source "arch/mips/ath25/Kconfig"
Gabor Juhosd4a67d92011-01-04 21:28:14 +01001082source "arch/mips/ath79/Kconfig"
Hauke Mehrtensa656ffc2011-07-23 01:20:13 +02001083source "arch/mips/bcm47xx/Kconfig"
Maxime Bizone7300d02009-08-18 13:23:37 +01001084source "arch/mips/bcm63xx/Kconfig"
Kevin Cernekee8945e372014-12-25 09:49:20 -08001085source "arch/mips/bmips/Kconfig"
Paul Burtoneed0eab2016-10-05 18:18:20 +01001086source "arch/mips/generic/Kconfig"
Paul Cercueila103e9b2020-09-06 21:29:33 +02001087source "arch/mips/ingenic/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001088source "arch/mips/jazz/Kconfig"
John Crispin8ec6d932011-03-30 09:27:48 +02001089source "arch/mips/lantiq/Kconfig"
Joshua Henderson2572f002016-01-13 18:15:39 -07001090source "arch/mips/pic32/Kconfig"
Ezequiel Garciaaf0cfb22015-08-06 12:22:43 +01001091source "arch/mips/pistachio/Kconfig"
John Crispinae2b5bb2013-01-20 22:05:30 +01001092source "arch/mips/ralink/Kconfig"
Ralf Baechle29c48692005-02-07 01:27:14 +00001093source "arch/mips/sgi-ip27/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001094source "arch/mips/sibyte/Kconfig"
Atsushi Nemoto22b1d702008-07-11 00:31:36 +09001095source "arch/mips/txx9/Kconfig"
Ralf Baechle5e83d432005-10-29 19:32:41 +01001096source "arch/mips/vr41xx/Kconfig"
David Daneya86c7f72008-12-11 15:33:38 -08001097source "arch/mips/cavium-octeon/Kconfig"
Jiaxun Yang71e2f4d2019-10-20 22:43:14 +08001098source "arch/mips/loongson2ef/Kconfig"
Huacai Chen30ad29b2015-04-21 10:00:35 +08001099source "arch/mips/loongson32/Kconfig"
1100source "arch/mips/loongson64/Kconfig"
Jayachandran C7f058e82011-05-07 01:36:57 +05301101source "arch/mips/netlogic/Kconfig"
Ralf Baechle38b18f722005-02-03 14:28:23 +00001102
Ralf Baechle5e83d432005-10-29 19:32:41 +01001103endmenu
1104
Akinobu Mita3c9ee7e2006-03-26 01:39:30 -08001105config GENERIC_HWEIGHT
1106 bool
1107 default y
1108
Linus Torvalds1da177e2005-04-16 15:20:36 -07001109config GENERIC_CALIBRATE_DELAY
1110 bool
1111 default y
1112
Ingo Molnarae1e9132008-11-11 09:05:16 +01001113config SCHED_OMIT_FRAME_POINTER
Atsushi Nemoto1cc89032006-04-04 13:11:45 +09001114 bool
1115 default y
1116
Linus Torvalds1da177e2005-04-16 15:20:36 -07001117#
1118# Select some configuration options automatically based on user selections.
1119#
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001120config FW_ARC
Linus Torvalds1da177e2005-04-16 15:20:36 -07001121 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001122
Ralf Baechle61ed2422005-09-15 08:52:34 +00001123config ARCH_MAY_HAVE_PC_FDC
1124 bool
1125
Marc St-Jean9267a302007-06-14 15:55:31 -06001126config BOOT_RAW
1127 bool
1128
Ralf Baechle217dd112007-11-01 01:57:55 +00001129config CEVT_BCM1480
1130 bool
1131
Yoichi Yuasa6457d9f2008-04-25 12:11:44 +09001132config CEVT_DS1287
1133 bool
1134
Yoichi Yuasa1097c6a2007-10-22 19:43:15 +09001135config CEVT_GT641XX
1136 bool
1137
Ralf Baechle42f77542007-10-18 17:48:11 +01001138config CEVT_R4K
1139 bool
1140
Ralf Baechle217dd112007-11-01 01:57:55 +00001141config CEVT_SB1250
1142 bool
1143
Atsushi Nemoto229f7732007-10-25 01:34:09 +09001144config CEVT_TXX9
1145 bool
1146
Ralf Baechle217dd112007-11-01 01:57:55 +00001147config CSRC_BCM1480
1148 bool
1149
Yoichi Yuasa42474172008-04-24 09:48:40 +09001150config CSRC_IOASIC
1151 bool
1152
Ralf Baechle940f6b42007-11-24 22:33:28 +00001153config CSRC_R4K
Serge Semin38586422020-05-21 17:07:23 +03001154 select CLOCKSOURCE_WATCHDOG if CPU_FREQ
Ralf Baechle940f6b42007-11-24 22:33:28 +00001155 bool
1156
Ralf Baechle217dd112007-11-01 01:57:55 +00001157config CSRC_SB1250
1158 bool
1159
Alex Smitha7f4df42015-10-21 09:57:44 +01001160config MIPS_CLOCK_VSYSCALL
1161 def_bool CSRC_R4K || CLKSRC_MIPS_GIC
1162
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001163config GPIO_TXX9
Linus Walleijd30a2b42016-04-19 11:23:22 +02001164 select GPIOLIB
Atsushi Nemotoa9aec7f2008-04-05 00:55:41 +09001165 bool
1166
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001167config FW_CFE
Aurelien Jarnodf78b5c2007-09-05 08:58:26 +02001168 bool
1169
Ralf Baechle40e084a2015-07-29 22:44:53 +02001170config ARCH_SUPPORTS_UPROBES
1171 bool
1172
Paul Burton20d33062016-10-05 18:18:16 +01001173config DMA_PERDEV_COHERENT
1174 bool
Christoph Hellwig347cb6a2019-01-07 13:36:20 -05001175 select ARCH_HAS_SETUP_DMA_OPS
Christoph Hellwig5748e1b2018-08-16 16:47:53 +03001176 select DMA_NONCOHERENT
Paul Burton20d33062016-10-05 18:18:16 +01001177
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001178config DMA_NONCOHERENT
1179 bool
Christoph Hellwigdb914272019-08-26 09:22:13 +02001180 #
1181 # MIPS allows mixing "slightly different" Cacheability and Coherency
1182 # Attribute bits. It is believed that the uncached access through
1183 # KSEG1 and the implementation specific "uncached accelerated" used
1184 # by pgprot_writcombine can be mixed, and the latter sometimes provides
1185 # significant advantages.
1186 #
Christoph Hellwig419e2f12019-08-26 09:03:44 +02001187 select ARCH_HAS_DMA_WRITE_COMBINE
Christoph Hellwigfa7e2242020-02-21 15:55:43 -08001188 select ARCH_HAS_DMA_PREP_COHERENT
Christoph Hellwigf8c55dc2018-06-15 13:08:46 +02001189 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
Christoph Hellwigfa7e2242020-02-21 15:55:43 -08001190 select ARCH_HAS_DMA_SET_UNCACHED
Christoph Hellwig34dc0ea2019-10-29 11:01:37 +01001191 select DMA_NONCOHERENT_MMAP
Christoph Hellwig34dc0ea2019-10-29 11:01:37 +01001192 select NEED_DMA_MAP_STATE
Ralf Baechle4ce588c2005-09-03 15:56:19 -07001193
Ralf Baechle36a88532007-03-01 11:56:43 +00001194config SYS_HAS_EARLY_PRINTK
Linus Torvalds1da177e2005-04-16 15:20:36 -07001195 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001196
Ralf Baechle1b2bc752009-06-23 10:00:31 +01001197config SYS_SUPPORTS_HOTPLUG_CPU
Ralf Baechledbb74542007-08-07 14:52:17 +01001198 bool
Ralf Baechledbb74542007-08-07 14:52:17 +01001199
Linus Torvalds1da177e2005-04-16 15:20:36 -07001200config MIPS_BONITO64
1201 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001202
1203config MIPS_MSC
1204 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001205
Ralf Baechle39b8d522008-04-28 17:14:26 +01001206config SYNC_R4K
1207 bool
1208
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -07001209config NO_IOPORT_MAP
Maciej W. Rozyckid388d682007-05-29 15:08:07 +01001210 def_bool n
1211
Markos Chandras4e0748f2014-11-13 11:25:27 +00001212config GENERIC_CSUM
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001213 def_bool CPU_NO_LOAD_STORE_LR
Markos Chandras4e0748f2014-11-13 11:25:27 +00001214
Ralf Baechle8313da32007-08-24 16:48:30 +01001215config GENERIC_ISA_DMA
1216 bool
1217 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
Namhyung Kima35bee82010-10-18 12:55:21 +09001218 select ISA_DMA_API
Ralf Baechle8313da32007-08-24 16:48:30 +01001219
Ralf Baechleaa414df2006-11-30 01:14:51 +00001220config GENERIC_ISA_DMA_SUPPORT_BROKEN
1221 bool
Ralf Baechle8313da32007-08-24 16:48:30 +01001222 select GENERIC_ISA_DMA
Ralf Baechleaa414df2006-11-30 01:14:51 +00001223
Masahiro Yamada78bdbba2020-03-25 16:45:29 +09001224config HAVE_PLAT_DELAY
1225 bool
1226
1227config HAVE_PLAT_FW_INIT_CMDLINE
1228 bool
1229
1230config HAVE_PLAT_MEMCPY
1231 bool
1232
Namhyung Kima35bee82010-10-18 12:55:21 +09001233config ISA_DMA_API
1234 bool
1235
David Daney465aaed2011-08-20 08:44:00 -07001236config HOLES_IN_ZONE
1237 bool
1238
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001239config SYS_SUPPORTS_RELOCATABLE
1240 bool
1241 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01001242 Selected if the platform supports relocating the kernel.
1243 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
1244 to allow access to command line and entropy sources.
Matt Redfearn8c530ea2016-03-31 10:05:39 +01001245
David Daneyf381bf62017-06-13 15:28:46 -07001246config MIPS_CBPF_JIT
1247 def_bool y
1248 depends on BPF_JIT && HAVE_CBPF_JIT
1249
1250config MIPS_EBPF_JIT
1251 def_bool y
1252 depends on BPF_JIT && HAVE_EBPF_JIT
1253
1254
Ralf Baechle5e83d432005-10-29 19:32:41 +01001255#
Masanari Iida6b2aac42012-04-14 00:14:11 +09001256# Endianness selection. Sufficiently obscure so many users don't know what to
Ralf Baechle5e83d432005-10-29 19:32:41 +01001257# answer,so we try hard to limit the available choices. Also the use of a
1258# choice statement should be more obvious to the user.
1259#
1260choice
Masanari Iida6b2aac42012-04-14 00:14:11 +09001261 prompt "Endianness selection"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001262 help
1263 Some MIPS machines can be configured for either little or big endian
Ralf Baechle5e83d432005-10-29 19:32:41 +01001264 byte order. These modes require different kernels and a different
Matt LaPlante3cb2fcc2006-11-30 05:22:59 +01001265 Linux distribution. In general there is one preferred byteorder for a
Ralf Baechle5e83d432005-10-29 19:32:41 +01001266 particular system but some systems are just as commonly used in the
David Sterba3dde6ad2007-05-09 07:12:20 +02001267 one or the other endianness.
Ralf Baechle5e83d432005-10-29 19:32:41 +01001268
1269config CPU_BIG_ENDIAN
1270 bool "Big endian"
1271 depends on SYS_SUPPORTS_BIG_ENDIAN
1272
1273config CPU_LITTLE_ENDIAN
1274 bool "Little endian"
1275 depends on SYS_SUPPORTS_LITTLE_ENDIAN
Ralf Baechle5e83d432005-10-29 19:32:41 +01001276
1277endchoice
1278
David Daney22b07632010-07-23 18:41:43 -07001279config EXPORT_UASM
1280 bool
1281
Ralf Baechle21162452007-02-09 17:08:58 +00001282config SYS_SUPPORTS_APM_EMULATION
1283 bool
1284
Ralf Baechle5e83d432005-10-29 19:32:41 +01001285config SYS_SUPPORTS_BIG_ENDIAN
1286 bool
1287
1288config SYS_SUPPORTS_LITTLE_ENDIAN
1289 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001290
David Daneyaa1762f2012-10-17 00:48:10 +02001291config MIPS_HUGE_TLB_SUPPORT
1292 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1293
Marc St-Jean9267a302007-06-14 15:55:31 -06001294config IRQ_MSP_SLP
1295 bool
1296
1297config IRQ_MSP_CIC
1298 bool
1299
Atsushi Nemoto8420fd02007-08-02 23:35:53 +09001300config IRQ_TXX9
1301 bool
1302
Yoichi Yuasad5ab1a62007-09-13 23:51:26 +09001303config IRQ_GT641XX
1304 bool
1305
Yoichi Yuasa252161e2007-03-14 21:51:26 +09001306config PCI_GT64XXX_PCI0
Linus Torvalds1da177e2005-04-16 15:20:36 -07001307 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001308
Thomas Bogendoerfera57140e2019-05-07 23:09:13 +02001309config PCI_XTALK_BRIDGE
1310 bool
1311
Marc St-Jean9267a302007-06-14 15:55:31 -06001312config NO_EXCEPT_FILL
1313 bool
1314
Markos Chandrasa7e07b12014-11-13 13:32:03 +00001315config MIPS_SPRAM
1316 bool
1317
Linus Torvalds1da177e2005-04-16 15:20:36 -07001318config SWAP_IO_SPACE
1319 bool
1320
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001321config SGI_HAS_INDYDOG
1322 bool
1323
Thomas Bogendoerfer5b438c42008-07-10 20:29:55 +02001324config SGI_HAS_HAL2
1325 bool
1326
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001327config SGI_HAS_SEEQ
1328 bool
1329
1330config SGI_HAS_WD93
1331 bool
1332
1333config SGI_HAS_ZILOG
1334 bool
1335
1336config SGI_HAS_I8042
1337 bool
1338
1339config DEFAULT_SGI_PARTITION
1340 bool
1341
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001342config FW_ARC32
Ralf Baechle5e83d432005-10-29 19:32:41 +01001343 bool
1344
Paul Bolleaaa9fad2013-03-25 09:39:54 +00001345config FW_SNIPROM
Thomas Bogendoerfer231a35d2008-01-04 23:31:07 +01001346 bool
1347
Linus Torvalds1da177e2005-04-16 15:20:36 -07001348config BOOT_ELF32
1349 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001350
Florian Fainelli930beb52014-01-14 09:54:38 -08001351config MIPS_L1_CACHE_SHIFT_4
1352 bool
1353
1354config MIPS_L1_CACHE_SHIFT_5
1355 bool
1356
1357config MIPS_L1_CACHE_SHIFT_6
1358 bool
1359
1360config MIPS_L1_CACHE_SHIFT_7
1361 bool
1362
Linus Torvalds1da177e2005-04-16 15:20:36 -07001363config MIPS_L1_CACHE_SHIFT
1364 int
Florian Fainellia4c02012014-01-14 09:54:39 -08001365 default "7" if MIPS_L1_CACHE_SHIFT_7
Kevin Cernekee5432eeb2014-12-25 09:49:09 -08001366 default "6" if MIPS_L1_CACHE_SHIFT_6
1367 default "5" if MIPS_L1_CACHE_SHIFT_5
1368 default "4" if MIPS_L1_CACHE_SHIFT_4
Linus Torvalds1da177e2005-04-16 15:20:36 -07001369 default "5"
1370
Thomas Bogendoerfere9422422019-10-22 18:13:15 +02001371config ARC_CMDLINE_ONLY
1372 bool
1373
Linus Torvalds1da177e2005-04-16 15:20:36 -07001374config ARC_CONSOLE
1375 bool "ARC console support"
Thomas Bogendoerfere2defae2007-12-02 13:00:32 +01001376 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001377
1378config ARC_MEMORY
1379 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001380
1381config ARC_PROMLIB
1382 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001383
Ralf Baechle0e2794b2012-11-15 20:48:50 +01001384config FW_ARC64
Linus Torvalds1da177e2005-04-16 15:20:36 -07001385 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001386
1387config BOOT_ELF64
1388 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07001389
Linus Torvalds1da177e2005-04-16 15:20:36 -07001390menu "CPU selection"
1391
1392choice
1393 prompt "CPU type"
1394 default CPU_R4X00
1395
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001396config CPU_LOONGSON64
Huacai Chencaed1d12019-11-04 14:11:21 +08001397 bool "Loongson 64-bit CPU"
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001398 depends on SYS_HAS_CPU_LOONGSON64
Christoph Hellwigd3bc81b2018-06-15 13:08:41 +02001399 select ARCH_HAS_PHYS_TO_DMA
Jiaxun Yang51522212020-01-13 18:15:00 +08001400 select CPU_MIPSR2
1401 select CPU_HAS_PREFETCH
Huacai Chen0e476d92014-03-21 18:44:07 +08001402 select CPU_SUPPORTS_64BIT_KERNEL
1403 select CPU_SUPPORTS_HIGHMEM
1404 select CPU_SUPPORTS_HUGEPAGES
Huacai Chen75074452019-09-21 21:50:27 +08001405 select CPU_SUPPORTS_MSA
Jiaxun Yang51522212020-01-13 18:15:00 +08001406 select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
1407 select CPU_MIPSR2_IRQ_VI
Huacai Chen0e476d92014-03-21 18:44:07 +08001408 select WEAK_ORDERING
1409 select WEAK_REORDERING_BEYOND_LLSC
Huacai Chen75074452019-09-21 21:50:27 +08001410 select MIPS_ASID_BITS_VARIABLE
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001411 select MIPS_PGD_C0_CONTEXT
Huacai Chen17c99d92017-03-16 21:00:28 +08001412 select MIPS_L1_CACHE_SHIFT_6
Linus Walleijd30a2b42016-04-19 11:23:22 +02001413 select GPIOLIB
Christoph Hellwig09230cb2018-04-24 09:00:54 +02001414 select SWIOTLB
Huacai Chen0f783552020-05-23 15:56:41 +08001415 select HAVE_KVM
Huacai Chen0e476d92014-03-21 18:44:07 +08001416 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001417 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
1418 cores implements the MIPS64R2 instruction set with many extensions,
1419 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
1420 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
1421 Loongson-2E/2F is not covered here and will be removed in future.
Huacai Chen0e476d92014-03-21 18:44:07 +08001422
Huacai Chencaed1d12019-11-04 14:11:21 +08001423config LOONGSON3_ENHANCEMENT
1424 bool "New Loongson-3 CPU Enhancements"
Huacai Chen1e820da32016-03-03 09:45:13 +08001425 default n
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001426 depends on CPU_LOONGSON64
Huacai Chen1e820da32016-03-03 09:45:13 +08001427 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001428 New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
Huacai Chen1e820da32016-03-03 09:45:13 +08001429 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001430 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
Huacai Chen1e820da32016-03-03 09:45:13 +08001431 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
1432 Fast TLB refill support, etc.
1433
1434 This option enable those enhancements which are not probed at run
1435 time. If you want a generic kernel to run on all Loongson 3 machines,
1436 please say 'N' here. If you want a high-performance kernel to run on
Huacai Chencaed1d12019-11-04 14:11:21 +08001437 new Loongson-3 machines only, please say 'Y' here.
Huacai Chen1e820da32016-03-03 09:45:13 +08001438
Huacai Chene02e07e2019-01-15 16:04:54 +08001439config CPU_LOONGSON3_WORKAROUNDS
Huacai Chencaed1d12019-11-04 14:11:21 +08001440 bool "Old Loongson-3 LLSC Workarounds"
Huacai Chene02e07e2019-01-15 16:04:54 +08001441 default y if SMP
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001442 depends on CPU_LOONGSON64
Huacai Chene02e07e2019-01-15 16:04:54 +08001443 help
Huacai Chencaed1d12019-11-04 14:11:21 +08001444 Loongson-3 processors have the llsc issues which require workarounds.
Huacai Chene02e07e2019-01-15 16:04:54 +08001445 Without workarounds the system may hang unexpectedly.
1446
Huacai Chencaed1d12019-11-04 14:11:21 +08001447 Newer Loongson-3 will fix these issues and no workarounds are needed.
Huacai Chene02e07e2019-01-15 16:04:54 +08001448 The workarounds have no significant side effect on them but may
1449 decrease the performance of the system so this option should be
1450 disabled unless the kernel is intended to be run on old systems.
1451
1452 If unsure, please say Y.
1453
WANG Xueruiec7a9312020-05-23 21:37:01 +08001454config CPU_LOONGSON3_CPUCFG_EMULATION
1455 bool "Emulate the CPUCFG instruction on older Loongson cores"
1456 default y
1457 depends on CPU_LOONGSON64
1458 help
1459 Loongson-3A R4 and newer have the CPUCFG instruction available for
1460 userland to query CPU capabilities, much like CPUID on x86. This
1461 option provides emulation of the instruction on older Loongson
1462 cores, back to Loongson-3A1000.
1463
1464 If unsure, please say Y.
1465
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001466config CPU_LOONGSON2E
1467 bool "Loongson 2E"
1468 depends on SYS_HAS_CPU_LOONGSON2E
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001469 select CPU_LOONGSON2EF
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001470 help
1471 The Loongson 2E processor implements the MIPS III instruction set
1472 with many extensions.
1473
Lucas De Marchi25985ed2011-03-30 22:57:33 -03001474 It has an internal FPGA northbridge, which is compatible to
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001475 bonito64.
1476
1477config CPU_LOONGSON2F
1478 bool "Loongson 2F"
1479 depends on SYS_HAS_CPU_LOONGSON2F
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001480 select CPU_LOONGSON2EF
Linus Walleijd30a2b42016-04-19 11:23:22 +02001481 select GPIOLIB
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001482 help
1483 The Loongson 2F processor implements the MIPS III instruction set
1484 with many extensions.
1485
1486 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1487 have a similar programming interface with FPGA northbridge used in
1488 Loongson2E.
1489
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001490config CPU_LOONGSON1B
1491 bool "Loongson 1B"
1492 depends on SYS_HAS_CPU_LOONGSON1B
Huacai Chenb2afb642019-11-04 14:11:20 +08001493 select CPU_LOONGSON32
Kelvin Cheung9ec88b62016-04-06 20:34:54 +08001494 select LEDS_GPIO_REGISTER
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001495 help
1496 The Loongson 1B is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001497 Release 1 instruction set and part of the MIPS32 Release 2
1498 instruction set.
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001499
Yang Ling12e32802016-05-19 12:29:30 +08001500config CPU_LOONGSON1C
1501 bool "Loongson 1C"
1502 depends on SYS_HAS_CPU_LOONGSON1C
Huacai Chenb2afb642019-11-04 14:11:20 +08001503 select CPU_LOONGSON32
Yang Ling12e32802016-05-19 12:29:30 +08001504 select LEDS_GPIO_REGISTER
1505 help
1506 The Loongson 1C is a 32-bit SoC, which implements the MIPS32
谢致邦 (XIE Zhibang)968dc5a02017-06-01 18:41:34 +08001507 Release 1 instruction set and part of the MIPS32 Release 2
1508 instruction set.
Yang Ling12e32802016-05-19 12:29:30 +08001509
Ralf Baechle6e760c82005-07-06 12:08:11 +00001510config CPU_MIPS32_R1
1511 bool "MIPS32 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001512 depends on SYS_HAS_CPU_MIPS32_R1
Ralf Baechle6e760c82005-07-06 12:08:11 +00001513 select CPU_HAS_PREFETCH
Ralf Baechle797798c2005-08-10 15:17:11 +00001514 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001515 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle6e760c82005-07-06 12:08:11 +00001516 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001517 Choose this option to build a kernel for release 1 or later of the
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001518 MIPS32 architecture. Most modern embedded systems with a 32-bit
1519 MIPS processor are based on a MIPS32 processor. If you know the
1520 specific type of processor in your system, choose those that one
1521 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1522 Release 2 of the MIPS32 architecture is available since several
1523 years so chances are you even have a MIPS32 Release 2 processor
1524 in which case you should choose CPU_MIPS32_R2 instead for better
1525 performance.
1526
1527config CPU_MIPS32_R2
1528 bool "MIPS32 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001529 depends on SYS_HAS_CPU_MIPS32_R2
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001530 select CPU_HAS_PREFETCH
Ralf Baechle797798c2005-08-10 15:17:11 +00001531 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001532 select CPU_SUPPORTS_HIGHMEM
Paul Burtona5e9a692014-01-27 15:23:10 +00001533 select CPU_SUPPORTS_MSA
Sanjay Lal2235a542012-11-21 18:33:59 -08001534 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001535 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001536 Choose this option to build a kernel for release 2 or later of the
Ralf Baechle6e760c82005-07-06 12:08:11 +00001537 MIPS32 architecture. Most modern embedded systems with a 32-bit
1538 MIPS processor are based on a MIPS32 processor. If you know the
1539 specific type of processor in your system, choose those that one
1540 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001541
Serge Seminab7c01f2020-05-21 17:07:14 +03001542config CPU_MIPS32_R5
1543 bool "MIPS32 Release 5"
1544 depends on SYS_HAS_CPU_MIPS32_R5
1545 select CPU_HAS_PREFETCH
1546 select CPU_SUPPORTS_32BIT_KERNEL
1547 select CPU_SUPPORTS_HIGHMEM
1548 select CPU_SUPPORTS_MSA
1549 select HAVE_KVM
1550 select MIPS_O32_FP64_SUPPORT
1551 help
1552 Choose this option to build a kernel for release 5 or later of the
1553 MIPS32 architecture. New MIPS processors, starting with the Warrior
1554 family, are based on a MIPS32r5 processor. If you own an older
1555 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1556
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001557config CPU_MIPS32_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001558 bool "MIPS32 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001559 depends on SYS_HAS_CPU_MIPS32_R6
1560 select CPU_HAS_PREFETCH
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001561 select CPU_NO_LOAD_STORE_LR
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001562 select CPU_SUPPORTS_32BIT_KERNEL
1563 select CPU_SUPPORTS_HIGHMEM
1564 select CPU_SUPPORTS_MSA
1565 select HAVE_KVM
1566 select MIPS_O32_FP64_SUPPORT
1567 help
1568 Choose this option to build a kernel for release 6 or later of the
1569 MIPS32 architecture. New MIPS processors, starting with the Warrior
1570 family, are based on a MIPS32r6 processor. If you own an older
1571 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1572
Ralf Baechle6e760c82005-07-06 12:08:11 +00001573config CPU_MIPS64_R1
1574 bool "MIPS64 Release 1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001575 depends on SYS_HAS_CPU_MIPS64_R1
Ralf Baechle797798c2005-08-10 15:17:11 +00001576 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001577 select CPU_SUPPORTS_32BIT_KERNEL
1578 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001579 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001580 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle6e760c82005-07-06 12:08:11 +00001581 help
1582 Choose this option to build a kernel for release 1 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.
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001587 Release 2 of the MIPS64 architecture is available since several
1588 years so chances are you even have a MIPS64 Release 2 processor
1589 in which case you should choose CPU_MIPS64_R2 instead for better
1590 performance.
1591
1592config CPU_MIPS64_R2
1593 bool "MIPS64 Release 2"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001594 depends on SYS_HAS_CPU_MIPS64_R2
Ralf Baechle797798c2005-08-10 15:17:11 +00001595 select CPU_HAS_PREFETCH
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001596 select CPU_SUPPORTS_32BIT_KERNEL
1597 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechleec28f302006-03-05 00:45:33 +00001598 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001599 select CPU_SUPPORTS_HUGEPAGES
Paul Burtona5e9a692014-01-27 15:23:10 +00001600 select CPU_SUPPORTS_MSA
James Hogan40a2df42016-07-08 11:53:31 +01001601 select HAVE_KVM
Ralf Baechle1e5f1ca2005-07-12 14:51:22 +00001602 help
1603 Choose this option to build a kernel for release 2 or later of the
1604 MIPS64 architecture. Many modern embedded systems with a 64-bit
1605 MIPS processor are based on a MIPS64 processor. If you know the
1606 specific type of processor in your system, choose those that one
1607 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001608
Serge Seminab7c01f2020-05-21 17:07:14 +03001609config CPU_MIPS64_R5
1610 bool "MIPS64 Release 5"
1611 depends on SYS_HAS_CPU_MIPS64_R5
1612 select CPU_HAS_PREFETCH
1613 select CPU_SUPPORTS_32BIT_KERNEL
1614 select CPU_SUPPORTS_64BIT_KERNEL
1615 select CPU_SUPPORTS_HIGHMEM
1616 select CPU_SUPPORTS_HUGEPAGES
1617 select CPU_SUPPORTS_MSA
1618 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1619 select HAVE_KVM
1620 help
1621 Choose this option to build a kernel for release 5 or later of the
1622 MIPS64 architecture. This is a intermediate MIPS architecture
1623 release partly implementing release 6 features. Though there is no
1624 any hardware known to be based on this release.
1625
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001626config CPU_MIPS64_R6
Markos Chandras674d10e2015-07-16 13:24:46 +01001627 bool "MIPS64 Release 6"
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001628 depends on SYS_HAS_CPU_MIPS64_R6
1629 select CPU_HAS_PREFETCH
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03001630 select CPU_NO_LOAD_STORE_LR
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001631 select CPU_SUPPORTS_32BIT_KERNEL
1632 select CPU_SUPPORTS_64BIT_KERNEL
1633 select CPU_SUPPORTS_HIGHMEM
Paul Burtonafd375d2019-02-02 02:21:53 +00001634 select CPU_SUPPORTS_HUGEPAGES
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001635 select CPU_SUPPORTS_MSA
James Hogan2e6c7742017-02-16 12:39:01 +00001636 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
James Hogan40a2df42016-07-08 11:53:31 +01001637 select HAVE_KVM
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00001638 help
1639 Choose this option to build a kernel for release 6 or later of the
1640 MIPS64 architecture. New MIPS processors, starting with the Warrior
1641 family, are based on a MIPS64r6 processor. If you own an older
1642 processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1643
Serge Semin281e3ae2020-05-21 17:07:15 +03001644config CPU_P5600
1645 bool "MIPS Warrior P5600"
1646 depends on SYS_HAS_CPU_P5600
1647 select CPU_HAS_PREFETCH
1648 select CPU_SUPPORTS_32BIT_KERNEL
1649 select CPU_SUPPORTS_HIGHMEM
1650 select CPU_SUPPORTS_MSA
Serge Semin281e3ae2020-05-21 17:07:15 +03001651 select CPU_SUPPORTS_CPUFREQ
1652 select CPU_MIPSR2_IRQ_VI
1653 select CPU_MIPSR2_IRQ_EI
1654 select HAVE_KVM
1655 select MIPS_O32_FP64_SUPPORT
1656 help
1657 Choose this option to build a kernel for MIPS Warrior P5600 CPU.
1658 It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
1659 MMU with two-levels TLB, UCA, MSA, MDU core level features and system
1660 level features like up to six P5600 calculation cores, CM2 with L2
1661 cache, IOCU/IOMMU (though might be unused depending on the system-
1662 specific IP core configuration), GIC, CPC, virtualisation module,
1663 eJTAG and PDtrace.
1664
Linus Torvalds1da177e2005-04-16 15:20:36 -07001665config CPU_R3000
1666 bool "R3000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001667 depends on SYS_HAS_CPU_R3000
Ralf Baechlef7062dd2006-04-24 14:58:53 +01001668 select CPU_HAS_WB
Paul Burton54746822019-08-31 15:40:43 +00001669 select CPU_R3K_TLB
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001670 select CPU_SUPPORTS_32BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001671 select CPU_SUPPORTS_HIGHMEM
Linus Torvalds1da177e2005-04-16 15:20:36 -07001672 help
1673 Please make sure to pick the right CPU type. Linux/MIPS is not
1674 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1675 *not* work on R4000 machines and vice versa. However, since most
1676 of the supported machines have an R4000 (or similar) CPU, R4x00
1677 might be a safe bet. If the resulting kernel does not work,
1678 try to recompile with R3000.
1679
1680config CPU_TX39XX
1681 bool "R39XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001682 depends on SYS_HAS_CPU_TX39XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001683 select CPU_SUPPORTS_32BIT_KERNEL
Paul Burton54746822019-08-31 15:40:43 +00001684 select CPU_R3K_TLB
Linus Torvalds1da177e2005-04-16 15:20:36 -07001685
1686config CPU_VR41XX
1687 bool "R41xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001688 depends on SYS_HAS_CPU_VR41XX
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001689 select CPU_SUPPORTS_32BIT_KERNEL
1690 select CPU_SUPPORTS_64BIT_KERNEL
Linus Torvalds1da177e2005-04-16 15:20:36 -07001691 help
Ralf Baechle5e83d432005-10-29 19:32:41 +01001692 The options selects support for the NEC VR4100 series of processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001693 Only choose this option if you have one of these processors as a
1694 kernel built with this option will not run on any other type of
1695 processor or vice versa.
1696
Lauri Kasanen65ce6192021-01-13 17:10:07 +02001697config CPU_R4300
1698 bool "R4300"
1699 depends on SYS_HAS_CPU_R4300
1700 select CPU_SUPPORTS_32BIT_KERNEL
1701 select CPU_SUPPORTS_64BIT_KERNEL
1702 select CPU_HAS_LOAD_STORE_LR
1703 help
1704 MIPS Technologies R4300-series processors.
1705
Linus Torvalds1da177e2005-04-16 15:20:36 -07001706config CPU_R4X00
1707 bool "R4x00"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001708 depends on SYS_HAS_CPU_R4X00
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001709 select CPU_SUPPORTS_32BIT_KERNEL
1710 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001711 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001712 help
1713 MIPS Technologies R4000-series processors other than 4300, including
1714 the R4000, R4400, R4600, and 4700.
1715
1716config CPU_TX49XX
1717 bool "R49XX"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001718 depends on SYS_HAS_CPU_TX49XX
Atsushi Nemotode862b42006-03-17 12:59:22 +09001719 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001720 select CPU_SUPPORTS_32BIT_KERNEL
1721 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001722 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001723
1724config CPU_R5000
1725 bool "R5000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001726 depends on SYS_HAS_CPU_R5000
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001727 select CPU_SUPPORTS_32BIT_KERNEL
1728 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001729 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001730 help
1731 MIPS Technologies R5000-series processors other than the Nevada.
1732
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001733config CPU_R5500
1734 bool "R5500"
1735 depends on SYS_HAS_CPU_R5500
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001736 select CPU_SUPPORTS_32BIT_KERNEL
1737 select CPU_SUPPORTS_64BIT_KERNEL
David Daney9cffd1542009-05-27 17:47:46 -07001738 select CPU_SUPPORTS_HUGEPAGES
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09001739 help
1740 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1741 instruction set.
1742
Linus Torvalds1da177e2005-04-16 15:20:36 -07001743config CPU_NEVADA
1744 bool "RM52xx"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001745 depends on SYS_HAS_CPU_NEVADA
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001746 select CPU_SUPPORTS_32BIT_KERNEL
1747 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle970d0322012-10-18 13:54:15 +02001748 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001749 help
1750 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1751
Linus Torvalds1da177e2005-04-16 15:20:36 -07001752config CPU_R10000
1753 bool "R10000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001754 depends on SYS_HAS_CPU_R10000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001755 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001756 select CPU_SUPPORTS_32BIT_KERNEL
1757 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001758 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001759 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001760 help
1761 MIPS Technologies R10000-series processors.
1762
1763config CPU_RM7000
1764 bool "RM7000"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001765 depends on SYS_HAS_CPU_RM7000
Ralf Baechle5e83d432005-10-29 19:32:41 +01001766 select CPU_HAS_PREFETCH
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001767 select CPU_SUPPORTS_32BIT_KERNEL
1768 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001769 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001770 select CPU_SUPPORTS_HUGEPAGES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001771
1772config CPU_SB1
1773 bool "SB1"
Ralf Baechle7cf80532005-10-20 22:33:09 +01001774 depends on SYS_HAS_CPU_SB1
Yoichi Yuasaed5ba2f2005-09-03 15:56:21 -07001775 select CPU_SUPPORTS_32BIT_KERNEL
1776 select CPU_SUPPORTS_64BIT_KERNEL
Ralf Baechle797798c2005-08-10 15:17:11 +00001777 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001778 select CPU_SUPPORTS_HUGEPAGES
Ralf Baechle0004a9d2006-10-31 03:45:07 +00001779 select WEAK_ORDERING
Linus Torvalds1da177e2005-04-16 15:20:36 -07001780
David Daneya86c7f72008-12-11 15:33:38 -08001781config CPU_CAVIUM_OCTEON
1782 bool "Cavium Octeon processor"
David Daney5e683382009-02-02 11:30:59 -08001783 depends on SYS_HAS_CPU_CAVIUM_OCTEON
David Daneya86c7f72008-12-11 15:33:38 -08001784 select CPU_HAS_PREFETCH
1785 select CPU_SUPPORTS_64BIT_KERNEL
David Daneya86c7f72008-12-11 15:33:38 -08001786 select WEAK_ORDERING
David Daneya86c7f72008-12-11 15:33:38 -08001787 select CPU_SUPPORTS_HIGHMEM
David Daney9cffd1542009-05-27 17:47:46 -07001788 select CPU_SUPPORTS_HUGEPAGES
Ben Hutchingsdf115f32015-05-25 20:27:29 +01001789 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1790 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
Florian Fainelli930beb52014-01-14 09:54:38 -08001791 select MIPS_L1_CACHE_SHIFT_7
James Hogan0ae3abc2017-03-14 10:25:51 +00001792 select HAVE_KVM
David Daneya86c7f72008-12-11 15:33:38 -08001793 help
1794 The Cavium Octeon processor is a highly integrated chip containing
1795 many ethernet hardware widgets for networking tasks. The processor
1796 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1797 Full details can be found at http://www.caviumnetworks.com.
1798
Jonas Gorskicd746242013-12-18 14:12:02 +01001799config CPU_BMIPS
1800 bool "Broadcom BMIPS"
1801 depends on SYS_HAS_CPU_BMIPS
1802 select CPU_MIPS32
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001803 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
Jonas Gorskicd746242013-12-18 14:12:02 +01001804 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1805 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1806 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1807 select CPU_SUPPORTS_32BIT_KERNEL
1808 select DMA_NONCOHERENT
Ralf Baechle67e38cf2015-05-26 18:20:06 +02001809 select IRQ_MIPS_CPU
Jonas Gorskicd746242013-12-18 14:12:02 +01001810 select SWAP_IO_SPACE
1811 select WEAK_ORDERING
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001812 select CPU_SUPPORTS_HIGHMEM
Jonas Gorski69aaf9c2013-12-18 14:12:04 +01001813 select CPU_HAS_PREFETCH
Markus Mayera8d709b2017-02-07 13:58:54 -08001814 select CPU_SUPPORTS_CPUFREQ
1815 select MIPS_EXTERNAL_TIMER
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001816 help
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001817 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07001818
Jayachandran C7f058e82011-05-07 01:36:57 +05301819config CPU_XLR
1820 bool "Netlogic XLR SoC"
1821 depends on SYS_HAS_CPU_XLR
1822 select CPU_SUPPORTS_32BIT_KERNEL
1823 select CPU_SUPPORTS_64BIT_KERNEL
1824 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001825 select CPU_SUPPORTS_HUGEPAGES
Jayachandran C7f058e82011-05-07 01:36:57 +05301826 select WEAK_ORDERING
1827 select WEAK_REORDERING_BEYOND_LLSC
Jayachandran C7f058e82011-05-07 01:36:57 +05301828 help
1829 Netlogic Microsystems XLR/XLS processors.
Jayachandran C1c773ea2011-11-16 00:21:28 +00001830
1831config CPU_XLP
1832 bool "Netlogic XLP SoC"
1833 depends on SYS_HAS_CPU_XLP
1834 select CPU_SUPPORTS_32BIT_KERNEL
1835 select CPU_SUPPORTS_64BIT_KERNEL
1836 select CPU_SUPPORTS_HIGHMEM
Jayachandran C1c773ea2011-11-16 00:21:28 +00001837 select WEAK_ORDERING
1838 select WEAK_REORDERING_BEYOND_LLSC
1839 select CPU_HAS_PREFETCH
Jayachandran Cd6504842012-10-31 12:01:29 +00001840 select CPU_MIPSR2
Prem Mallappaddba6832015-01-07 16:58:32 +05301841 select CPU_SUPPORTS_HUGEPAGES
Paul Burton2db003a2016-05-06 14:36:24 +01001842 select MIPS_ASID_BITS_VARIABLE
Jayachandran C1c773ea2011-11-16 00:21:28 +00001843 help
1844 Netlogic Microsystems XLP processors.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001845endchoice
1846
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001847config CPU_MIPS32_3_5_FEATURES
1848 bool "MIPS32 Release 3.5 Features"
1849 depends on SYS_HAS_CPU_MIPS32_R3_5
Serge Semin281e3ae2020-05-21 17:07:15 +03001850 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
1851 CPU_P5600
Leonid Yegoshina6e18782013-12-03 10:22:26 +00001852 help
1853 Choose this option to build a kernel for release 2 or later of the
1854 MIPS32 architecture including features from the 3.5 release such as
1855 support for Enhanced Virtual Addressing (EVA).
1856
1857config CPU_MIPS32_3_5_EVA
1858 bool "Enhanced Virtual Addressing (EVA)"
1859 depends on CPU_MIPS32_3_5_FEATURES
1860 select EVA
1861 default y
1862 help
1863 Choose this option if you want to enable the Enhanced Virtual
1864 Addressing (EVA) on your MIPS32 core (such as proAptiv).
1865 One of its primary benefits is an increase in the maximum size
1866 of lowmem (up to 3GB). If unsure, say 'N' here.
1867
Steven J. Hillc5b36782015-02-26 18:16:38 -06001868config CPU_MIPS32_R5_FEATURES
1869 bool "MIPS32 Release 5 Features"
1870 depends on SYS_HAS_CPU_MIPS32_R5
Serge Semin281e3ae2020-05-21 17:07:15 +03001871 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
Steven J. Hillc5b36782015-02-26 18:16:38 -06001872 help
1873 Choose this option to build a kernel for release 2 or later of the
1874 MIPS32 architecture including features from release 5 such as
1875 support for Extended Physical Addressing (XPA).
1876
1877config CPU_MIPS32_R5_XPA
1878 bool "Extended Physical Addressing (XPA)"
1879 depends on CPU_MIPS32_R5_FEATURES
1880 depends on !EVA
1881 depends on !PAGE_SIZE_4KB
1882 depends on SYS_SUPPORTS_HIGHMEM
1883 select XPA
1884 select HIGHMEM
Christoph Hellwigd4a451d2018-04-03 16:24:20 +02001885 select PHYS_ADDR_T_64BIT
Steven J. Hillc5b36782015-02-26 18:16:38 -06001886 default n
1887 help
1888 Choose this option if you want to enable the Extended Physical
1889 Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1890 benefit is to increase physical addressing equal to or greater
1891 than 40 bits. Note that this has the side effect of turning on
1892 64-bit addressing which in turn makes the PTEs 64-bit in size.
1893 If unsure, say 'N' here.
1894
Wu Zhangjin622844b2010-04-10 20:04:42 +08001895if CPU_LOONGSON2F
1896config CPU_NOP_WORKAROUNDS
1897 bool
1898
1899config CPU_JUMP_WORKAROUNDS
1900 bool
1901
1902config CPU_LOONGSON2F_WORKAROUNDS
1903 bool "Loongson 2F Workarounds"
1904 default y
1905 select CPU_NOP_WORKAROUNDS
1906 select CPU_JUMP_WORKAROUNDS
1907 help
1908 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1909 require workarounds. Without workarounds the system may hang
1910 unexpectedly. For more information please refer to the gas
1911 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1912
1913 Loongson 2F03 and later have fixed these issues and no workarounds
1914 are needed. The workarounds have no significant side effect on them
1915 but may decrease the performance of the system so this option should
1916 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1917 systems.
1918
1919 If unsure, please say Y.
1920endif # CPU_LOONGSON2F
1921
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001922config SYS_SUPPORTS_ZBOOT
1923 bool
1924 select HAVE_KERNEL_GZIP
1925 select HAVE_KERNEL_BZIP2
Florian Fainelli31c48672013-09-16 16:55:20 +01001926 select HAVE_KERNEL_LZ4
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001927 select HAVE_KERNEL_LZMA
Wu Zhangjinfe1d45e2010-01-15 20:34:46 +08001928 select HAVE_KERNEL_LZO
Florian Fainelli4e23eb62013-09-11 11:51:41 +01001929 select HAVE_KERNEL_XZ
Paul Cercueila510b612020-09-01 16:26:51 +02001930 select HAVE_KERNEL_ZSTD
Wu Zhangjin1b93b3c2009-10-14 18:12:16 +08001931
1932config SYS_SUPPORTS_ZBOOT_UART16550
1933 bool
1934 select SYS_SUPPORTS_ZBOOT
1935
Alban Bedeldbb98312015-12-10 10:57:21 +01001936config SYS_SUPPORTS_ZBOOT_UART_PROM
1937 bool
1938 select SYS_SUPPORTS_ZBOOT
1939
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001940config CPU_LOONGSON2EF
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001941 bool
1942 select CPU_SUPPORTS_32BIT_KERNEL
1943 select CPU_SUPPORTS_64BIT_KERNEL
1944 select CPU_SUPPORTS_HIGHMEM
Ralf Baechle970d0322012-10-18 13:54:15 +02001945 select CPU_SUPPORTS_HUGEPAGES
Christoph Hellwige9050862018-06-20 09:11:15 +02001946 select ARCH_HAS_PHYS_TO_DMA
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001947
Huacai Chenb2afb642019-11-04 14:11:20 +08001948config CPU_LOONGSON32
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001949 bool
1950 select CPU_MIPS32
Jiaxun Yang7e280f62019-01-22 21:04:12 +08001951 select CPU_MIPSR2
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001952 select CPU_HAS_PREFETCH
1953 select CPU_SUPPORTS_32BIT_KERNEL
1954 select CPU_SUPPORTS_HIGHMEM
Kelvin Cheungf29ad102014-10-10 11:40:01 +08001955 select CPU_SUPPORTS_CPUFREQ
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001956
Jonas Gorskife7f62c2013-12-18 14:12:05 +01001957config CPU_BMIPS32_3300
Jonas Gorski04fa8bf2013-12-18 14:12:06 +01001958 select SMP_UP if SMP
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001959 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001960
1961config CPU_BMIPS4350
1962 bool
1963 select SYS_SUPPORTS_SMP
1964 select SYS_SUPPORTS_HOTPLUG_CPU
1965
1966config CPU_BMIPS4380
1967 bool
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001968 select MIPS_L1_CACHE_SHIFT_6
Jonas Gorskicd746242013-12-18 14:12:02 +01001969 select SYS_SUPPORTS_SMP
1970 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001971 select CPU_HAS_RIXI
Jonas Gorskicd746242013-12-18 14:12:02 +01001972
1973config CPU_BMIPS5000
1974 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01001975 select MIPS_CPU_SCACHE
Kevin Cernekeebbf2ba62014-10-20 21:27:58 -07001976 select MIPS_L1_CACHE_SHIFT_7
Jonas Gorskicd746242013-12-18 14:12:02 +01001977 select SYS_SUPPORTS_SMP
1978 select SYS_SUPPORTS_HOTPLUG_CPU
Florian Fainellib4720802016-02-09 12:55:53 -08001979 select CPU_HAS_RIXI
Kevin Cernekee1bbb6c12011-11-10 22:30:24 -08001980
Jiaxun Yang268a2d62019-10-20 22:43:13 +08001981config SYS_HAS_CPU_LOONGSON64
Huacai Chen0e476d92014-03-21 18:44:07 +08001982 bool
1983 select CPU_SUPPORTS_CPUFREQ
Huacai Chenb2edcfc2016-03-03 09:45:09 +08001984 select CPU_HAS_RIXI
Huacai Chen0e476d92014-03-21 18:44:07 +08001985
Wu Zhangjin3702bba2009-07-02 23:27:41 +08001986config SYS_HAS_CPU_LOONGSON2E
Fuxin Zhang2a21c732007-06-06 14:52:43 +08001987 bool
1988
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001989config SYS_HAS_CPU_LOONGSON2F
1990 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08001991 select CPU_SUPPORTS_CPUFREQ
1992 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
Wu Zhangjin6f7a2512009-11-06 18:45:05 +08001993
Kelvin Cheungca585cf2012-07-25 16:17:24 +02001994config SYS_HAS_CPU_LOONGSON1B
1995 bool
1996
Yang Ling12e32802016-05-19 12:29:30 +08001997config SYS_HAS_CPU_LOONGSON1C
1998 bool
1999
Ralf Baechle7cf80532005-10-20 22:33:09 +01002000config SYS_HAS_CPU_MIPS32_R1
2001 bool
2002
2003config SYS_HAS_CPU_MIPS32_R2
2004 bool
2005
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002006config SYS_HAS_CPU_MIPS32_R3_5
2007 bool
2008
Steven J. Hillc5b36782015-02-26 18:16:38 -06002009config SYS_HAS_CPU_MIPS32_R5
2010 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002011 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Steven J. Hillc5b36782015-02-26 18:16:38 -06002012
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002013config SYS_HAS_CPU_MIPS32_R6
2014 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002015 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002016
Ralf Baechle7cf80532005-10-20 22:33:09 +01002017config SYS_HAS_CPU_MIPS64_R1
2018 bool
2019
2020config SYS_HAS_CPU_MIPS64_R2
2021 bool
2022
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002023config SYS_HAS_CPU_MIPS64_R6
2024 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002025 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002026
Serge Semin281e3ae2020-05-21 17:07:15 +03002027config SYS_HAS_CPU_P5600
2028 bool
2029 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2030
Ralf Baechle7cf80532005-10-20 22:33:09 +01002031config SYS_HAS_CPU_R3000
2032 bool
2033
2034config SYS_HAS_CPU_TX39XX
2035 bool
2036
2037config SYS_HAS_CPU_VR41XX
2038 bool
2039
Lauri Kasanen65ce6192021-01-13 17:10:07 +02002040config SYS_HAS_CPU_R4300
2041 bool
2042
Ralf Baechle7cf80532005-10-20 22:33:09 +01002043config SYS_HAS_CPU_R4X00
2044 bool
2045
2046config SYS_HAS_CPU_TX49XX
2047 bool
2048
2049config SYS_HAS_CPU_R5000
2050 bool
2051
Shinya Kuribayashi542c1022008-10-24 01:27:57 +09002052config SYS_HAS_CPU_R5500
2053 bool
2054
Ralf Baechle7cf80532005-10-20 22:33:09 +01002055config SYS_HAS_CPU_NEVADA
2056 bool
2057
Ralf Baechle7cf80532005-10-20 22:33:09 +01002058config SYS_HAS_CPU_R10000
2059 bool
Paul Burton9ae1f262019-02-04 13:52:58 -08002060 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
Ralf Baechle7cf80532005-10-20 22:33:09 +01002061
2062config SYS_HAS_CPU_RM7000
2063 bool
2064
Ralf Baechle7cf80532005-10-20 22:33:09 +01002065config SYS_HAS_CPU_SB1
2066 bool
2067
David Daney5e683382009-02-02 11:30:59 -08002068config SYS_HAS_CPU_CAVIUM_OCTEON
2069 bool
2070
Jonas Gorskicd746242013-12-18 14:12:02 +01002071config SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002072 bool
2073
Jonas Gorskife7f62c2013-12-18 14:12:05 +01002074config SYS_HAS_CPU_BMIPS32_3300
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002075 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002076 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002077
2078config SYS_HAS_CPU_BMIPS4350
2079 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002080 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002081
2082config SYS_HAS_CPU_BMIPS4380
2083 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002084 select SYS_HAS_CPU_BMIPS
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002085
2086config SYS_HAS_CPU_BMIPS5000
2087 bool
Jonas Gorskicd746242013-12-18 14:12:02 +01002088 select SYS_HAS_CPU_BMIPS
Hauke Mehrtensf263f2a2018-12-09 16:49:57 +01002089 select ARCH_HAS_SYNC_DMA_FOR_CPU
Kevin Cernekeec1c0c462010-10-17 10:56:53 -07002090
Jayachandran C7f058e82011-05-07 01:36:57 +05302091config SYS_HAS_CPU_XLR
2092 bool
2093
Jayachandran C1c773ea2011-11-16 00:21:28 +00002094config SYS_HAS_CPU_XLP
2095 bool
2096
Ralf Baechle17099b12007-07-14 13:24:05 +01002097#
2098# CPU may reorder R->R, R->W, W->R, W->W
2099# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
2100#
Ralf Baechle0004a9d2006-10-31 03:45:07 +00002101config WEAK_ORDERING
2102 bool
Ralf Baechle17099b12007-07-14 13:24:05 +01002103
2104#
2105# CPU may reorder reads and writes beyond LL/SC
2106# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
2107#
2108config WEAK_REORDERING_BEYOND_LLSC
2109 bool
Ralf Baechle5e83d432005-10-29 19:32:41 +01002110endmenu
2111
2112#
Chris Dearmanc09b47d2006-06-20 17:15:20 +01002113# These two indicate any level of the MIPS32 and MIPS64 architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002114#
2115config CPU_MIPS32
2116 bool
Serge Seminab7c01f2020-05-21 17:07:14 +03002117 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
Serge Semin281e3ae2020-05-21 17:07:15 +03002118 CPU_MIPS32_R6 || CPU_P5600
Ralf Baechle5e83d432005-10-29 19:32:41 +01002119
2120config CPU_MIPS64
2121 bool
Serge Seminab7c01f2020-05-21 17:07:14 +03002122 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
Jason A. Donenfeld5a4fa442021-02-28 00:02:36 +01002123 CPU_MIPS64_R6 || CPU_LOONGSON64 || CPU_CAVIUM_OCTEON
Ralf Baechle5e83d432005-10-29 19:32:41 +01002124
2125#
Paul Burton57eeaced2018-11-08 23:44:55 +00002126# These indicate the revision of the architecture
Ralf Baechle5e83d432005-10-29 19:32:41 +01002127#
2128config CPU_MIPSR1
2129 bool
2130 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
2131
2132config CPU_MIPSR2
2133 bool
David Daneya86c7f72008-12-11 15:33:38 -08002134 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
Florian Fainelli8256b172016-02-09 12:55:51 -08002135 select CPU_HAS_RIXI
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002136 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002137 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002138
Serge Seminab7c01f2020-05-21 17:07:14 +03002139config CPU_MIPSR5
2140 bool
Serge Semin281e3ae2020-05-21 17:07:15 +03002141 default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
Serge Seminab7c01f2020-05-21 17:07:14 +03002142 select CPU_HAS_RIXI
2143 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2144 select MIPS_SPRAM
2145
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002146config CPU_MIPSR6
2147 bool
2148 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
Florian Fainelli8256b172016-02-09 12:55:51 -08002149 select CPU_HAS_RIXI
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002150 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
Paul Burton87321fd2016-05-06 13:35:03 +01002151 select HAVE_ARCH_BITREVERSE
Paul Burton2db003a2016-05-06 14:36:24 +01002152 select MIPS_ASID_BITS_VARIABLE
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002153 select MIPS_CRC_SUPPORT
Markos Chandrasa7e07b12014-11-13 13:32:03 +00002154 select MIPS_SPRAM
Ralf Baechle5e83d432005-10-29 19:32:41 +01002155
Paul Burton57eeaced2018-11-08 23:44:55 +00002156config TARGET_ISA_REV
2157 int
2158 default 1 if CPU_MIPSR1
2159 default 2 if CPU_MIPSR2
Serge Seminab7c01f2020-05-21 17:07:14 +03002160 default 5 if CPU_MIPSR5
Paul Burton57eeaced2018-11-08 23:44:55 +00002161 default 6 if CPU_MIPSR6
2162 default 0
2163 help
2164 Reflects the ISA revision being targeted by the kernel build. This
2165 is effectively the Kconfig equivalent of MIPS_ISA_REV.
2166
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002167config EVA
2168 bool
2169
Steven J. Hillc5b36782015-02-26 18:16:38 -06002170config XPA
2171 bool
2172
Ralf Baechle5e83d432005-10-29 19:32:41 +01002173config SYS_SUPPORTS_32BIT_KERNEL
2174 bool
2175config SYS_SUPPORTS_64BIT_KERNEL
2176 bool
2177config CPU_SUPPORTS_32BIT_KERNEL
2178 bool
2179config CPU_SUPPORTS_64BIT_KERNEL
2180 bool
Wu Zhangjin55045ff2009-11-11 13:39:12 +08002181config CPU_SUPPORTS_CPUFREQ
2182 bool
2183config CPU_SUPPORTS_ADDRWINCFG
2184 bool
David Daney9cffd1542009-05-27 17:47:46 -07002185config CPU_SUPPORTS_HUGEPAGES
2186 bool
Daniel Silsby171543e2019-07-15 17:39:59 -04002187 depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
David Daney82622282009-10-14 12:16:56 -07002188config MIPS_PGD_C0_CONTEXT
2189 bool
Huang Peic6972fb2021-03-13 09:39:27 +08002190 depends on 64BIT
2191 default y if (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
Ralf Baechle5e83d432005-10-29 19:32:41 +01002192
David Daney8192c9e2008-09-23 00:04:26 -07002193#
2194# Set to y for ptrace access to watch registers.
2195#
2196config HARDWARE_WATCHPOINTS
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002197 bool
2198 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
David Daney8192c9e2008-09-23 00:04:26 -07002199
Ralf Baechle5e83d432005-10-29 19:32:41 +01002200menu "Kernel type"
2201
2202choice
Ralf Baechle5e83d432005-10-29 19:32:41 +01002203 prompt "Kernel code model"
2204 help
2205 You should only select this option if you have a workload that
2206 actually benefits from 64-bit processing or if your machine has
2207 large memory. You will only be presented a single option in this
2208 menu if your system does not support both 32-bit and 64-bit kernels.
2209
2210config 32BIT
2211 bool "32-bit kernel"
2212 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2213 select TRAD_SIGNALS
2214 help
2215 Select this option if you want to build a 32-bit kernel.
Ralf Baechlef17c4ca2015-07-23 12:02:09 +02002216
Ralf Baechle5e83d432005-10-29 19:32:41 +01002217config 64BIT
2218 bool "64-bit kernel"
2219 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
2220 help
2221 Select this option if you want to build a 64-bit kernel.
2222
2223endchoice
2224
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002225config MIPS_VA_BITS_48
2226 bool "48 bits virtual memory"
2227 depends on 64BIT
2228 help
Alex Belits3377e222017-02-16 17:27:34 -08002229 Support a maximum at least 48 bits of application virtual
2230 memory. Default is 40 bits or less, depending on the CPU.
2231 For page sizes 16k and above, this option results in a small
2232 memory overhead for page tables. For 4k page size, a fourth
2233 level of page tables is added which imposes both a memory
2234 overhead as well as slower TLB fault handling.
2235
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002236 If unsure, say N.
2237
Linus Torvalds1da177e2005-04-16 15:20:36 -07002238choice
2239 prompt "Kernel page size"
2240 default PAGE_SIZE_4KB
2241
2242config PAGE_SIZE_4KB
2243 bool "4kB"
Jiaxun Yang268a2d62019-10-20 22:43:13 +08002244 depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
Linus Torvalds1da177e2005-04-16 15:20:36 -07002245 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002246 This option select the standard 4kB Linux page size. On some
2247 R3000-family processors this is the only available page size. Using
2248 4kB page size will minimize memory consumption and is therefore
2249 recommended for low memory systems.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002250
2251config PAGE_SIZE_8KB
2252 bool "8kB"
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002253 depends on CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002254 depends on !MIPS_VA_BITS_48
Linus Torvalds1da177e2005-04-16 15:20:36 -07002255 help
2256 Using 8kB page size will result in higher performance kernel at
2257 the price of higher memory consumption. This option is available
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002258 only on cnMIPS processors. Note that you will need a suitable Linux
2259 distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002260
2261config PAGE_SIZE_16KB
2262 bool "16kB"
Ralf Baechle714bfad2006-05-17 14:04:30 +01002263 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002264 help
2265 Using 16kB page size will result in higher performance kernel at
2266 the price of higher memory consumption. This option is available on
Ralf Baechle714bfad2006-05-17 14:04:30 +01002267 all non-R3000 family processors. Note that you will need a suitable
2268 Linux distribution to support this.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002269
Ralf Baechlec52399b2009-04-02 14:07:10 +02002270config PAGE_SIZE_32KB
2271 bool "32kB"
2272 depends on CPU_CAVIUM_OCTEON
Leonid Yegoshin1e321fa2015-05-14 18:34:43 -07002273 depends on !MIPS_VA_BITS_48
Ralf Baechlec52399b2009-04-02 14:07:10 +02002274 help
2275 Using 32kB page size will result in higher performance kernel at
2276 the price of higher memory consumption. This option is available
2277 only on cnMIPS cores. Note that you will need a suitable Linux
2278 distribution to support this.
2279
Linus Torvalds1da177e2005-04-16 15:20:36 -07002280config PAGE_SIZE_64KB
2281 bool "64kB"
Paul Burton3b2db172017-06-05 11:21:27 -07002282 depends on !CPU_R3000 && !CPU_TX39XX
Linus Torvalds1da177e2005-04-16 15:20:36 -07002283 help
2284 Using 64kB page size will result in higher performance kernel at
2285 the price of higher memory consumption. This option is available on
2286 all non-R3000 family processor. Not that at the time of this
Ralf Baechle714bfad2006-05-17 14:04:30 +01002287 writing this option is still high experimental.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002288
2289endchoice
2290
David Daneyc9bace72010-10-11 14:52:45 -07002291config FORCE_MAX_ZONEORDER
2292 int "Maximum zone order"
Alex Smithe4362d12014-01-21 11:22:35 +00002293 range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2294 default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2295 range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2296 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2297 range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2298 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
Paul Cercueilef923a72020-09-17 15:35:28 +02002299 range 0 64
David Daneyc9bace72010-10-11 14:52:45 -07002300 default "11"
2301 help
2302 The kernel memory allocator divides physically contiguous memory
2303 blocks into "zones", where each zone is a power of two number of
2304 pages. This option selects the largest power of two that the kernel
2305 keeps in the memory allocator. If you need to allocate very large
2306 blocks of physically contiguous memory, then you may need to
2307 increase this value.
2308
2309 This config option is actually maximum order plus one. For example,
2310 a value of 11 means that the largest free memory block is 2^10 pages.
2311
2312 The page size is not necessarily 4KB. Keep this in mind
2313 when choosing a value for this option.
2314
Linus Torvalds1da177e2005-04-16 15:20:36 -07002315config BOARD_SCACHE
2316 bool
2317
2318config IP22_CPU_SCACHE
2319 bool
2320 select BOARD_SCACHE
2321
Chris Dearman9318c512006-06-20 17:15:20 +01002322#
2323# Support for a MIPS32 / MIPS64 style S-caches
2324#
2325config MIPS_CPU_SCACHE
2326 bool
2327 select BOARD_SCACHE
2328
Linus Torvalds1da177e2005-04-16 15:20:36 -07002329config R5000_CPU_SCACHE
2330 bool
2331 select BOARD_SCACHE
2332
2333config RM7000_CPU_SCACHE
2334 bool
2335 select BOARD_SCACHE
2336
2337config SIBYTE_DMA_PAGEOPS
2338 bool "Use DMA to clear/copy pages"
2339 depends on CPU_SB1
2340 help
2341 Instead of using the CPU to zero and copy pages, use a Data Mover
2342 channel. These DMA channels are otherwise unused by the standard
2343 SiByte Linux port. Seems to give a small performance benefit.
2344
2345config CPU_HAS_PREFETCH
Ralf Baechlec8094b52005-08-05 14:28:54 +00002346 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002347
Florian Fainelli3165c842012-01-31 18:18:43 +01002348config CPU_GENERIC_DUMP_TLB
2349 bool
Paul Burtonc2aeaae2019-07-22 22:00:03 +00002350 default y if !(CPU_R3000 || CPU_TX39XX)
Florian Fainelli3165c842012-01-31 18:18:43 +01002351
Paul Burtonc92e47e2018-11-07 23:14:02 +00002352config MIPS_FP_SUPPORT
Paul Burton183b40f2018-11-07 23:14:11 +00002353 bool "Floating Point support" if EXPERT
2354 default y
2355 help
2356 Select y to include support for floating point in the kernel
2357 including initialization of FPU hardware, FP context save & restore
2358 and emulation of an FPU where necessary. Without this support any
2359 userland program attempting to use floating point instructions will
2360 receive a SIGILL.
2361
2362 If you know that your userland will not attempt to use floating point
2363 instructions then you can say n here to shrink the kernel a little.
2364
2365 If unsure, say y.
Paul Burtonc92e47e2018-11-07 23:14:02 +00002366
Paul Burton97f7dcb2018-11-07 23:14:02 +00002367config CPU_R2300_FPU
2368 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002369 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002370 default y if CPU_R3000 || CPU_TX39XX
2371
Paul Burton54746822019-08-31 15:40:43 +00002372config CPU_R3K_TLB
2373 bool
2374
Florian Fainelli91405eb2012-01-31 18:18:44 +01002375config CPU_R4K_FPU
2376 bool
Paul Burtonc92e47e2018-11-07 23:14:02 +00002377 depends on MIPS_FP_SUPPORT
Paul Burton97f7dcb2018-11-07 23:14:02 +00002378 default y if !CPU_R2300_FPU
Florian Fainelli91405eb2012-01-31 18:18:44 +01002379
Florian Fainelli62cedc42012-01-31 18:18:45 +01002380config CPU_R4K_CACHE_TLB
2381 bool
Paul Burton54746822019-08-31 15:40:43 +00002382 default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
Florian Fainelli62cedc42012-01-31 18:18:45 +01002383
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002384config MIPS_MT_SMP
Markos Chandrasa92b7f82014-04-08 11:59:10 +01002385 bool "MIPS MT SMP support (1 TC on each available VPE)"
Paul Burton5cbf9682017-08-07 16:01:16 -07002386 default y
Paul Burton527f1022017-08-07 16:18:04 -07002387 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002388 select CPU_MIPSR2_IRQ_VI
Chris Dearmand725cf32007-05-08 14:05:39 +01002389 select CPU_MIPSR2_IRQ_EI
Steven J. Hillc080faa2013-10-04 16:23:28 -05002390 select SYNC_R4K
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002391 select MIPS_MT
2392 select SMP
Ralf Baechle87353d82007-11-19 12:23:51 +00002393 select SMP_UP
Steven J. Hillc080faa2013-10-04 16:23:28 -05002394 select SYS_SUPPORTS_SMP
2395 select SYS_SUPPORTS_SCHED_SMT
Al Cooper399aaa22012-07-13 16:44:53 -04002396 select MIPS_PERF_SHARED_TC_COUNTERS
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002397 help
Steven J. Hillc080faa2013-10-04 16:23:28 -05002398 This is a kernel model which is known as SMVP. This is supported
2399 on cores with the MT ASE and uses the available VPEs to implement
2400 virtual processors which supports SMP. This is equivalent to the
2401 Intel Hyperthreading feature. For further information go to
2402 <http://www.imgtec.com/mips/mips-multithreading.asp>.
Ralf Baechle59d6ab82006-10-06 17:36:20 +01002403
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002404config MIPS_MT
2405 bool
2406
Ralf Baechle0ab7aef2007-03-02 20:42:04 +00002407config SCHED_SMT
2408 bool "SMT (multithreading) scheduler support"
2409 depends on SYS_SUPPORTS_SCHED_SMT
2410 default n
2411 help
2412 SMT scheduler support improves the CPU scheduler's decision making
2413 when dealing with MIPS MT enabled cores at a cost of slightly
2414 increased overhead in some places. If unsure say N here.
2415
2416config SYS_SUPPORTS_SCHED_SMT
2417 bool
2418
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002419config SYS_SUPPORTS_MULTITHREADING
2420 bool
2421
Ralf Baechlef088fc82006-04-05 09:45:47 +01002422config MIPS_MT_FPAFF
2423 bool "Dynamic FPU affinity for FP-intensive threads"
Ralf Baechlef088fc82006-04-05 09:45:47 +01002424 default y
Ralf Baechleb6336482014-05-23 16:29:44 +02002425 depends on MIPS_MT_SMP
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002426
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002427config MIPSR2_TO_R6_EMULATOR
2428 bool "MIPS R2-to-R6 emulator"
Paul Burton9eaa9a82016-10-17 15:34:37 +01002429 depends on CPU_MIPSR6
Paul Burtonc92e47e2018-11-07 23:14:02 +00002430 depends on MIPS_FP_SUPPORT
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002431 default y
2432 help
2433 Choose this option if you want to run non-R6 MIPS userland code.
2434 Even if you say 'Y' here, the emulator will still be disabled by
Markos Chandras07edf0d2015-03-10 12:30:56 +00002435 default. You can enable it using the 'mipsr2emu' kernel option.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002436 The only reason this is a build-time option is to save ~14K from the
2437 final kernel image.
Leonid Yegoshinb0a668f2014-12-03 15:47:03 +00002438
James Hoganf35764e2018-01-15 20:54:35 +00002439config SYS_SUPPORTS_VPE_LOADER
2440 bool
2441 depends on SYS_SUPPORTS_MULTITHREADING
2442 help
2443 Indicates that the platform supports the VPE loader, and provides
2444 physical_memsize.
2445
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002446config MIPS_VPE_LOADER
2447 bool "VPE loader support."
James Hoganf35764e2018-01-15 20:54:35 +00002448 depends on SYS_SUPPORTS_VPE_LOADER && MODULES
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002449 select CPU_MIPSR2_IRQ_VI
2450 select CPU_MIPSR2_IRQ_EI
Ralf Baechle07cc0c92007-07-27 19:31:10 +01002451 select MIPS_MT
2452 help
2453 Includes a loader for loading an elf relocatable object
2454 onto another VPE and running it.
Ralf Baechlef088fc82006-04-05 09:45:47 +01002455
Deng-Cheng Zhu17a1d522013-10-30 15:52:07 -05002456config MIPS_VPE_LOADER_CMP
2457 bool
2458 default "y"
2459 depends on MIPS_VPE_LOADER && MIPS_CMP
2460
Deng-Cheng Zhu1a2a6d72013-10-30 15:52:06 -05002461config MIPS_VPE_LOADER_MT
2462 bool
2463 default "y"
2464 depends on MIPS_VPE_LOADER && !MIPS_CMP
2465
Ralf Baechlee01402b2005-07-14 15:57:16 +00002466config MIPS_VPE_LOADER_TOM
2467 bool "Load VPE program into memory hidden from linux"
2468 depends on MIPS_VPE_LOADER
2469 default y
2470 help
2471 The loader can use memory that is present but has been hidden from
2472 Linux using the kernel command line option "mem=xxMB". It's up to
2473 you to ensure the amount you put in the option and the space your
2474 program requires is less or equal to the amount physically present.
2475
Ralf Baechlee01402b2005-07-14 15:57:16 +00002476config MIPS_VPE_APSP_API
Ralf Baechle5e83d432005-10-29 19:32:41 +01002477 bool "Enable support for AP/SP API (RTLX)"
2478 depends on MIPS_VPE_LOADER
Ralf Baechlee01402b2005-07-14 15:57:16 +00002479
Deng-Cheng Zhuda615cf2014-01-01 16:29:03 +01002480config MIPS_VPE_APSP_API_CMP
2481 bool
2482 default "y"
2483 depends on MIPS_VPE_APSP_API && MIPS_CMP
2484
Deng-Cheng Zhu2c973ef2014-01-01 16:26:46 +01002485config MIPS_VPE_APSP_API_MT
2486 bool
2487 default "y"
2488 depends on MIPS_VPE_APSP_API && !MIPS_CMP
2489
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002490config MIPS_CMP
Paul Burton5cac93b2014-01-15 10:32:00 +00002491 bool "MIPS CMP framework support (DEPRECATED)"
Markos Chandras56763192015-07-09 10:40:38 +01002492 depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002493 select SMP
Tim Andersoneb9b5142009-06-17 16:40:34 -07002494 select SYNC_R4K
Markos Chandrasb10b43b2014-07-22 09:29:34 +01002495 select SYS_SUPPORTS_SMP
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002496 select WEAK_ORDERING
2497 default n
2498 help
Paul Burton044505c2014-01-15 10:31:58 +00002499 Select this if you are using a bootloader which implements the "CMP
2500 framework" protocol (ie. YAMON) and want your kernel to make use of
2501 its ability to start secondary CPUs.
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002502
Paul Burton5cac93b2014-01-15 10:32:00 +00002503 Unless you have a specific need, you should use CONFIG_MIPS_CPS
2504 instead of this.
2505
Paul Burton0ee958e2014-01-15 10:31:53 +00002506config MIPS_CPS
2507 bool "MIPS Coherent Processing System support"
Paul Burton5a3e7c02016-02-03 03:15:33 +00002508 depends on SYS_SUPPORTS_MIPS_CPS
Paul Burton0ee958e2014-01-15 10:31:53 +00002509 select MIPS_CM
Paul Burton1d8f1f52014-04-14 14:13:57 +01002510 select MIPS_CPS_PM if HOTPLUG_CPU
Paul Burton0ee958e2014-01-15 10:31:53 +00002511 select SMP
2512 select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
Paul Burton1d8f1f52014-04-14 14:13:57 +01002513 select SYS_SUPPORTS_HOTPLUG_CPU
Paul Burtonc8b77122017-06-02 14:48:52 -07002514 select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
Paul Burton0ee958e2014-01-15 10:31:53 +00002515 select SYS_SUPPORTS_SMP
2516 select WEAK_ORDERING
Wei Lid8d32762020-12-03 14:54:43 +08002517 select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
Paul Burton0ee958e2014-01-15 10:31:53 +00002518 help
2519 Select this if you wish to run an SMP kernel across multiple cores
2520 within a MIPS Coherent Processing System. When this option is
2521 enabled the kernel will probe for other cores and boot them with
2522 no external assistance. It is safe to enable this when hardware
2523 support is unavailable.
2524
Paul Burton3179d372014-04-14 11:00:56 +01002525config MIPS_CPS_PM
Markos Chandras39a59592014-09-18 16:09:49 +01002526 depends on MIPS_CPS
Paul Burton3179d372014-04-14 11:00:56 +01002527 bool
2528
Paul Burton9f98f3d2014-01-15 10:31:51 +00002529config MIPS_CM
2530 bool
Paul Burton3c9b4162017-08-12 19:49:42 -07002531 select MIPS_CPC
Paul Burton9f98f3d2014-01-15 10:31:51 +00002532
Paul Burton9c38cf42014-01-15 10:31:52 +00002533config MIPS_CPC
2534 bool
Ralf Baechle26009902006-04-05 09:45:45 +01002535
Linus Torvalds1da177e2005-04-16 15:20:36 -07002536config SB1_PASS_2_WORKAROUNDS
2537 bool
2538 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2539 default y
2540
2541config SB1_PASS_2_1_WORKAROUNDS
2542 bool
2543 depends on CPU_SB1 && CPU_SB1_PASS_2
2544 default y
2545
Markos Chandras9e2b5372014-07-21 08:46:14 +01002546choice
2547 prompt "SmartMIPS or microMIPS ASE support"
2548
2549config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2550 bool "None"
2551 help
2552 Select this if you want neither microMIPS nor SmartMIPS support
2553
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002554config CPU_HAS_SMARTMIPS
2555 depends on SYS_SUPPORTS_SMARTMIPS
Markos Chandras9e2b5372014-07-21 08:46:14 +01002556 bool "SmartMIPS"
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002557 help
2558 SmartMIPS is a extension of the MIPS32 architecture aimed at
2559 increased security at both hardware and software level for
2560 smartcards. Enabling this option will allow proper use of the
2561 SmartMIPS instructions by Linux applications. However a kernel with
2562 this option will not work on a MIPS core without SmartMIPS core. If
2563 you don't know you probably don't have SmartMIPS and should say N
2564 here.
2565
Steven J. Hillbce86082013-03-25 13:27:11 -05002566config CPU_MICROMIPS
Leonid Yegoshin7fd08ca2014-10-27 10:34:11 +00002567 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
Markos Chandras9e2b5372014-07-21 08:46:14 +01002568 bool "microMIPS"
Steven J. Hillbce86082013-03-25 13:27:11 -05002569 help
2570 When this option is enabled the kernel will be built using the
2571 microMIPS ISA
2572
Markos Chandras9e2b5372014-07-21 08:46:14 +01002573endchoice
2574
Paul Burtona5e9a692014-01-27 15:23:10 +00002575config CPU_HAS_MSA
Paul Burton0ce34172015-07-27 12:58:27 -07002576 bool "Support for the MIPS SIMD Architecture"
Paul Burtona5e9a692014-01-27 15:23:10 +00002577 depends on CPU_SUPPORTS_MSA
Paul Burtonc92e47e2018-11-07 23:14:02 +00002578 depends on MIPS_FP_SUPPORT
Paul Burton2a6cb6692014-07-11 16:47:14 +01002579 depends on 64BIT || MIPS_O32_FP64_SUPPORT
Paul Burtona5e9a692014-01-27 15:23:10 +00002580 help
2581 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2582 and a set of SIMD instructions to operate on them. When this option
Paul Burton1db1af82014-01-27 15:23:11 +00002583 is enabled the kernel will support allocating & switching MSA
2584 vector register contexts. If you know that your kernel will only be
2585 running on CPUs which do not support MSA or that your userland will
2586 not be making use of it then you may wish to say N here to reduce
2587 the size & complexity of your kernel.
Paul Burtona5e9a692014-01-27 15:23:10 +00002588
2589 If unsure, say Y.
2590
Linus Torvalds1da177e2005-04-16 15:20:36 -07002591config CPU_HAS_WB
Ralf Baechlef7062dd2006-04-24 14:58:53 +01002592 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002593
Kevin Cernekeedf0ac8a2011-11-16 01:25:45 +00002594config XKS01
2595 bool
2596
Jiaxun Yangba9196d2020-01-13 18:14:59 +08002597config CPU_HAS_DIEI
2598 depends on !CPU_DIEI_BROKEN
2599 bool
2600
2601config CPU_DIEI_BROKEN
2602 bool
2603
Florian Fainelli8256b172016-02-09 12:55:51 -08002604config CPU_HAS_RIXI
2605 bool
2606
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002607config CPU_NO_LOAD_STORE_LR
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002608 bool
2609 help
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002610 CPU lacks support for unaligned load and store instructions:
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002611 LWL, LWR, SWL, SWR (Load/store word left/right).
Alexander Lobakin18d84e2e2020-01-22 13:58:50 +03002612 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
2613 systems).
Yasha Cherikovsky932afde2018-09-26 14:16:15 +03002614
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002615#
2616# Vectored interrupt mode is an R2 feature
2617#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002618config CPU_MIPSR2_IRQ_VI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002619 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002620
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002621#
2622# Extended interrupt mode is an R2 feature
2623#
Ralf Baechlee01402b2005-07-14 15:57:16 +00002624config CPU_MIPSR2_IRQ_EI
Ralf Baechlef41ae0b2006-06-05 17:24:46 +01002625 bool
Ralf Baechlee01402b2005-07-14 15:57:16 +00002626
Linus Torvalds1da177e2005-04-16 15:20:36 -07002627config CPU_HAS_SYNC
2628 bool
2629 depends on !CPU_R3000
2630 default y
2631
2632#
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002633# CPU non-features
2634#
2635config CPU_DADDI_WORKAROUNDS
2636 bool
2637
2638config CPU_R4000_WORKAROUNDS
2639 bool
2640 select CPU_R4400_WORKAROUNDS
2641
2642config CPU_R4400_WORKAROUNDS
2643 bool
2644
Paul Burton071d2f02019-10-01 23:04:32 +00002645config CPU_R4X00_BUGS64
2646 bool
2647 default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
2648
Paul Burton4edf00a2016-05-06 14:36:23 +01002649config MIPS_ASID_SHIFT
2650 int
2651 default 6 if CPU_R3000 || CPU_TX39XX
Paul Burton4edf00a2016-05-06 14:36:23 +01002652 default 0
2653
2654config MIPS_ASID_BITS
2655 int
Paul Burton2db003a2016-05-06 14:36:24 +01002656 default 0 if MIPS_ASID_BITS_VARIABLE
Paul Burton4edf00a2016-05-06 14:36:23 +01002657 default 6 if CPU_R3000 || CPU_TX39XX
2658 default 8
2659
Paul Burton2db003a2016-05-06 14:36:24 +01002660config MIPS_ASID_BITS_VARIABLE
2661 bool
2662
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +00002663config MIPS_CRC_SUPPORT
2664 bool
2665
Thomas Bogendoerfer802b83622020-08-24 18:32:43 +02002666# R4600 erratum. Due to the lack of errata information the exact
2667# technical details aren't known. I've experimentally found that disabling
2668# interrupts during indexed I-cache flushes seems to be sufficient to deal
2669# with the issue.
2670config WAR_R4600_V1_INDEX_ICACHEOP
2671 bool
2672
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +02002673# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata:
2674#
2675# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
2676# Hit_Invalidate_D and Create_Dirty_Excl_D should only be
2677# executed if there is no other dcache activity. If the dcache is
Colin Ian King18ff14c2020-10-27 18:34:30 +00002678# accessed for another instruction immediately preceding when these
Thomas Bogendoerfer5e5b6522020-08-24 18:32:44 +02002679# cache instructions are executing, it is possible that the dcache
2680# tag match outputs used by these cache instructions will be
2681# incorrect. These cache instructions should be preceded by at least
2682# four instructions that are not any kind of load or store
2683# instruction.
2684#
2685# This is not allowed: lw
2686# nop
2687# nop
2688# nop
2689# cache Hit_Writeback_Invalidate_D
2690#
2691# This is allowed: lw
2692# nop
2693# nop
2694# nop
2695# nop
2696# cache Hit_Writeback_Invalidate_D
2697config WAR_R4600_V1_HIT_CACHEOP
2698 bool
2699
Thomas Bogendoerfer44def342020-08-24 18:32:45 +02002700# Writeback and invalidate the primary cache dcache before DMA.
2701#
2702# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
2703# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
2704# operate correctly if the internal data cache refill buffer is empty. These
2705# CACHE instructions should be separated from any potential data cache miss
2706# by a load instruction to an uncached address to empty the response buffer."
2707# (Revision 2.0 device errata from IDT available on https://www.idt.com/
2708# in .pdf format.)
2709config WAR_R4600_V2_HIT_CACHEOP
2710 bool
2711
Thomas Bogendoerfer24a1c022020-08-24 18:32:47 +02002712# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
2713# the line which this instruction itself exists, the following
2714# operation is not guaranteed."
2715#
2716# Workaround: do two phase flushing for Index_Invalidate_I
2717config WAR_TX49XX_ICACHE_INDEX_INV
2718 bool
2719
Thomas Bogendoerfer886ee132020-08-24 18:32:48 +02002720# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
2721# opposes it being called that) where invalid instructions in the same
2722# I-cache line worth of instructions being fetched may case spurious
2723# exceptions.
2724config WAR_ICACHE_REFILLS
2725 bool
2726
Thomas Bogendoerfer256ec482020-08-24 18:32:49 +02002727# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
2728# may cause ll / sc and lld / scd sequences to execute non-atomically.
2729config WAR_R10000_LLSC
2730 bool
2731
Thomas Bogendoerfera7fbed92020-08-24 18:32:50 +02002732# 34K core erratum: "Problems Executing the TLBR Instruction"
2733config WAR_MIPS34K_MISSED_ITLB
2734 bool
2735
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01002736#
Linus Torvalds1da177e2005-04-16 15:20:36 -07002737# - Highmem only makes sense for the 32-bit kernel.
2738# - The current highmem code will only work properly on physically indexed
2739# caches such as R3000, SB1, R7000 or those that look like they're virtually
2740# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
2741# moment we protect the user and offer the highmem option only on machines
2742# where it's known to be safe. This will not offer highmem on a few systems
2743# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2744# indexed CPUs but we're playing safe.
Ralf Baechle797798c2005-08-10 15:17:11 +00002745# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2746# know they might have memory configurations that could make use of highmem
2747# support.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002748#
2749config HIGHMEM
2750 bool "High Memory Support"
Leonid Yegoshina6e18782013-12-03 10:22:26 +00002751 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
Thomas Gleixnera4c33e82020-11-03 10:27:25 +01002752 select KMAP_LOCAL
Ralf Baechle797798c2005-08-10 15:17:11 +00002753
2754config CPU_SUPPORTS_HIGHMEM
2755 bool
2756
2757config SYS_SUPPORTS_HIGHMEM
2758 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07002759
Franck Bui-Huu9693a852007-02-02 17:41:47 +01002760config SYS_SUPPORTS_SMARTMIPS
2761 bool
2762
Steven J. Hilla6a48342013-02-05 16:52:02 -06002763config SYS_SUPPORTS_MICROMIPS
2764 bool
2765
Ralf Baechle377cb1b2014-04-29 01:49:24 +02002766config SYS_SUPPORTS_MIPS16
2767 bool
2768 help
2769 This option must be set if a kernel might be executed on a MIPS16-
2770 enabled CPU even if MIPS16 is not actually being used. In other
2771 words, it makes the kernel MIPS16-tolerant.
2772
Paul Burtona5e9a692014-01-27 15:23:10 +00002773config CPU_SUPPORTS_MSA
2774 bool
2775
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002776config ARCH_FLATMEM_ENABLE
2777 def_bool y
Jiaxun Yang268a2d62019-10-20 22:43:13 +08002778 depends on !NUMA && !CPU_LOONGSON2EF
Yoichi Yuasab4819b52005-06-25 14:54:31 -07002779
Atsushi Nemotob1c6cd42006-07-03 00:09:47 +09002780config ARCH_SPARSEMEM_ENABLE
2781 bool
Mike Rapoport397dc002019-09-16 14:13:10 +03002782 select SPARSEMEM_STATIC if !SGI_IP27
Atsushi Nemoto31473742006-07-03 00:09:47 +09002783
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002784config NUMA
2785 bool "NUMA Support"
2786 depends on SYS_SUPPORTS_NUMA
Tiezhu Yangcf8194e2020-12-03 20:32:52 +08002787 select SMP
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002788 help
2789 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2790 Access). This option improves performance on systems with more
2791 than two nodes; on two node systems it is generally better to
Randy Dunlap172a37e2020-01-31 17:55:43 -08002792 leave it disabled; on single node systems leave this option
Ralf Baechled8cb4e12006-06-11 23:03:08 +01002793 disabled.
2794
2795config SYS_SUPPORTS_NUMA
2796 bool
2797
Thomas Bogendoerferf3c560a2020-01-09 13:23:31 +01002798config HAVE_SETUP_PER_CPU_AREA
2799 def_bool y
2800 depends on NUMA
2801
2802config NEED_PER_CPU_EMBED_FIRST_CHUNK
2803 def_bool y
2804 depends on NUMA
2805
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002806config RELOCATABLE
2807 bool "Relocatable kernel"
Serge Seminab7c01f2020-05-21 17:07:14 +03002808 depends on SYS_SUPPORTS_RELOCATABLE
2809 depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
2810 CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
2811 CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
Jinyang Hea307a4c2020-11-25 18:07:46 +08002812 CPU_P5600 || CAVIUM_OCTEON_SOC || \
2813 CPU_LOONGSON64
Matt Redfearn8c530ea2016-03-31 10:05:39 +01002814 help
2815 This builds a kernel image that retains relocation information
2816 so it can be loaded someplace besides the default 1MB.
2817 The relocations make the kernel binary about 15% larger,
2818 but are discarded at runtime
2819
Matt Redfearn069fd762016-03-31 10:05:34 +01002820config RELOCATION_TABLE_SIZE
2821 hex "Relocation table size"
2822 depends on RELOCATABLE
2823 range 0x0 0x01000000
Jinyang Hea307a4c2020-11-25 18:07:46 +08002824 default "0x00200000" if CPU_LOONGSON64
Matt Redfearn069fd762016-03-31 10:05:34 +01002825 default "0x00100000"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002826 help
Matt Redfearn069fd762016-03-31 10:05:34 +01002827 A table of relocation data will be appended to the kernel binary
2828 and parsed at boot to fix up the relocated kernel.
2829
2830 This option allows the amount of space reserved for the table to be
2831 adjusted, although the default of 1Mb should be ok in most cases.
2832
2833 The build will fail and a valid size suggested if this is too small.
2834
2835 If unsure, leave at the default value.
2836
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002837config RANDOMIZE_BASE
2838 bool "Randomize the address of the kernel image"
2839 depends on RELOCATABLE
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002840 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002841 Randomizes the physical and virtual address at which the
2842 kernel image is loaded, as a security feature that
2843 deters exploit attempts relying on knowledge of the location
2844 of kernel internals.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002845
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002846 Entropy is generated using any coprocessor 0 registers available.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002847
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002848 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002849
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002850 If unsure, say N.
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002851
2852config RANDOMIZE_BASE_MAX_OFFSET
2853 hex "Maximum kASLR offset" if EXPERT
2854 depends on RANDOMIZE_BASE
2855 range 0x0 0x40000000 if EVA || 64BIT
2856 range 0x0 0x08000000
2857 default "0x01000000"
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09002858 help
Matt Redfearn405bc8f2016-03-31 10:05:41 +01002859 When kASLR is active, this provides the maximum offset that will
2860 be applied to the kernel image. It should be set according to the
2861 amount of physical RAM available in the target system minus
2862 PHYSICAL_START and must be a power of 2.
2863
2864 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2865 EVA or 64-bit. The default is 16Mb.
2866
Yasunori Gotoc80d79d2006-04-10 22:53:53 -07002867config NODES_SHIFT
2868 int
2869 default "6"
2870 depends on NEED_MULTIPLE_NODES
2871
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002872config HW_PERF_EVENTS
2873 bool "Enable hardware performance counter support for perf events"
Viresh Kumare2589582021-01-14 17:05:21 +05302874 depends on PERF_EVENTS && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON64)
Deng-Cheng Zhu14f70012010-10-12 19:37:22 +08002875 default y
2876 help
2877 Enable hardware performance counter support for perf events. If
2878 disabled, perf events will use software events only.
2879
Tiezhu Yangbe8fa1c2020-02-05 12:08:33 +08002880config DMI
2881 bool "Enable DMI scanning"
2882 depends on MACH_LOONGSON64
2883 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
2884 default y
2885 help
2886 Enabled scanning of DMI to identify machine quirks. Say Y
2887 here unless you have verified that your setup is not
2888 affected by entries in the DMI blacklist. Required by PNP
2889 BIOS code.
2890
Linus Torvalds1da177e2005-04-16 15:20:36 -07002891config SMP
2892 bool "Multi-Processing support"
Ralf Baechlee73ea272006-06-04 11:51:46 +01002893 depends on SYS_SUPPORTS_SMP
2894 help
Linus Torvalds1da177e2005-04-16 15:20:36 -07002895 This enables support for systems with more than one CPU. If you have
Robert Graffham4a474152014-01-23 15:55:29 -08002896 a system with only one CPU, say N. If you have a system with more
2897 than one CPU, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002898
Robert Graffham4a474152014-01-23 15:55:29 -08002899 If you say N here, the kernel will run on uni- and multiprocessor
Linus Torvalds1da177e2005-04-16 15:20:36 -07002900 machines, but will use only one CPU of a multiprocessor machine. If
2901 you say Y here, the kernel will run on many, but not all,
Robert Graffham4a474152014-01-23 15:55:29 -08002902 uniprocessor machines. On a uniprocessor machine, the kernel
Linus Torvalds1da177e2005-04-16 15:20:36 -07002903 will run faster if you say N here.
2904
2905 People using multiprocessor machines who say Y here should also say
2906 Y to "Enhanced Real Time Clock Support", below.
2907
Adrian Bunk03502fa2008-02-03 15:50:21 +02002908 See also the SMP-HOWTO available at
Alexander A. Klimovef054ad2020-07-14 21:12:26 +02002909 <https://www.tldp.org/docs.html#howto>.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002910
2911 If you don't know what to do here, say N.
2912
Matt Redfearn7840d612016-07-07 08:50:40 +01002913config HOTPLUG_CPU
2914 bool "Support for hot-pluggable CPUs"
2915 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2916 help
2917 Say Y here to allow turning CPUs off and on. CPUs can be
2918 controlled through /sys/devices/system/cpu.
2919 (Note: power management support will enable this option
2920 automatically on SMP systems. )
2921 Say N if you want to disable CPU hotplug.
2922
Ralf Baechle87353d82007-11-19 12:23:51 +00002923config SMP_UP
2924 bool
2925
Ralf Baechle4a16ff42008-10-04 00:06:29 +01002926config SYS_SUPPORTS_MIPS_CMP
2927 bool
2928
Paul Burton0ee958e2014-01-15 10:31:53 +00002929config SYS_SUPPORTS_MIPS_CPS
2930 bool
2931
Ralf Baechlee73ea272006-06-04 11:51:46 +01002932config SYS_SUPPORTS_SMP
2933 bool
2934
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002935config NR_CPUS_DEFAULT_4
2936 bool
2937
2938config NR_CPUS_DEFAULT_8
2939 bool
2940
2941config NR_CPUS_DEFAULT_16
2942 bool
2943
2944config NR_CPUS_DEFAULT_32
2945 bool
2946
2947config NR_CPUS_DEFAULT_64
2948 bool
2949
Linus Torvalds1da177e2005-04-16 15:20:36 -07002950config NR_CPUS
Jayachandran Ca91796a2014-04-29 20:07:40 +05302951 int "Maximum number of CPUs (2-256)"
2952 range 2 256
Linus Torvalds1da177e2005-04-16 15:20:36 -07002953 depends on SMP
Ralf Baechle130e2fb2007-02-06 16:53:15 +00002954 default "4" if NR_CPUS_DEFAULT_4
2955 default "8" if NR_CPUS_DEFAULT_8
2956 default "16" if NR_CPUS_DEFAULT_16
2957 default "32" if NR_CPUS_DEFAULT_32
2958 default "64" if NR_CPUS_DEFAULT_64
Linus Torvalds1da177e2005-04-16 15:20:36 -07002959 help
2960 This allows you to specify the maximum number of CPUs which this
2961 kernel will support. The maximum supported value is 32 for 32-bit
2962 kernel and 64 for 64-bit kernels; the minimum value which makes
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002963 sense is 1 for Qemu (useful only for kernel debugging purposes)
2964 and 2 for all others.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002965
2966 This is purely to save memory - each supported CPU adds
Atsushi Nemoto72ede9b2007-03-18 01:01:39 +09002967 approximately eight kilobytes to the kernel image. For best
2968 performance should round up your number of processors to the next
2969 power of two.
Linus Torvalds1da177e2005-04-16 15:20:36 -07002970
Al Cooper399aaa22012-07-13 16:44:53 -04002971config MIPS_PERF_SHARED_TC_COUNTERS
2972 bool
2973
David Daney7820b842017-09-28 12:34:04 -05002974config MIPS_NR_CPU_NR_MAP_1024
2975 bool
2976
2977config MIPS_NR_CPU_NR_MAP
2978 int
2979 depends on SMP
2980 default 1024 if MIPS_NR_CPU_NR_MAP_1024
2981 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2982
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002983#
2984# Timer Interrupt Frequency Configuration
2985#
2986
2987choice
2988 prompt "Timer frequency"
2989 default HZ_250
2990 help
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01002991 Allows the configuration of the timer frequency.
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002992
Paul Burton67596572015-09-22 10:16:39 -07002993 config HZ_24
2994 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2995
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002996 config HZ_48
Ralf Baechle0f873582008-02-25 16:55:29 +00002997 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09002998
2999 config HZ_100
3000 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
3001
3002 config HZ_128
3003 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
3004
3005 config HZ_250
3006 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
3007
3008 config HZ_256
3009 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
3010
3011 config HZ_1000
3012 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
3013
3014 config HZ_1024
3015 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
3016
3017endchoice
3018
Paul Burton67596572015-09-22 10:16:39 -07003019config SYS_SUPPORTS_24HZ
3020 bool
3021
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003022config SYS_SUPPORTS_48HZ
3023 bool
3024
3025config SYS_SUPPORTS_100HZ
3026 bool
3027
3028config SYS_SUPPORTS_128HZ
3029 bool
3030
3031config SYS_SUPPORTS_250HZ
3032 bool
3033
3034config SYS_SUPPORTS_256HZ
3035 bool
3036
3037config SYS_SUPPORTS_1000HZ
3038 bool
3039
3040config SYS_SUPPORTS_1024HZ
3041 bool
3042
3043config SYS_SUPPORTS_ARBIT_HZ
3044 bool
Paul Burton67596572015-09-22 10:16:39 -07003045 default y if !SYS_SUPPORTS_24HZ && \
3046 !SYS_SUPPORTS_48HZ && \
3047 !SYS_SUPPORTS_100HZ && \
3048 !SYS_SUPPORTS_128HZ && \
3049 !SYS_SUPPORTS_250HZ && \
3050 !SYS_SUPPORTS_256HZ && \
3051 !SYS_SUPPORTS_1000HZ && \
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003052 !SYS_SUPPORTS_1024HZ
3053
3054config HZ
3055 int
Paul Burton67596572015-09-22 10:16:39 -07003056 default 24 if HZ_24
Atsushi Nemoto1723b4a2006-06-20 00:19:13 +09003057 default 48 if HZ_48
3058 default 100 if HZ_100
3059 default 128 if HZ_128
3060 default 250 if HZ_250
3061 default 256 if HZ_256
3062 default 1000 if HZ_1000
3063 default 1024 if HZ_1024
3064
Deng-Cheng Zhu96685b12015-03-07 10:30:19 -08003065config SCHED_HRTICK
3066 def_bool HIGH_RES_TIMERS
3067
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003068config KEXEC
Kees Cook7d607172013-01-16 18:53:19 -08003069 bool "Kexec system call"
Dave Young2965faa2015-09-09 15:38:55 -07003070 select KEXEC_CORE
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003071 help
3072 kexec is a system call that implements the ability to shutdown your
3073 current kernel, and to start another kernel. It is like a reboot
David Sterba3dde6ad2007-05-09 07:12:20 +02003074 but it is independent of the system firmware. And like a reboot
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003075 you can start any kernel with it, not just Linux.
3076
Matt LaPlante01dd2fb2007-10-20 01:34:40 +02003077 The name comes from the similarity to the exec system call.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003078
3079 It is an ongoing process to be certain the hardware in a machine
3080 is properly shutdown, so do not be surprised if this code does not
Geert Uytterhoevenbf220692013-08-20 21:38:03 +02003081 initially work for you. As of this writing the exact hardware
3082 interface is strongly in flux, so no good recommendation can be
3083 made.
Atsushi Nemotoea6e9422007-01-16 23:29:11 +09003084
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003085config CRASH_DUMP
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003086 bool "Kernel crash dumps"
3087 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003088 Generate crash dump after being started by kexec.
3089 This should be normally only set in special crash dump kernels
3090 which are loaded in the main kernel with kexec-tools into
3091 a specially reserved region and then later executed after
3092 a crash by kdump/kexec. The crash dump kernel must be compiled
3093 to a memory address not used by the main kernel or firmware using
3094 PHYSICAL_START.
3095
3096config PHYSICAL_START
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003097 hex "Physical address where the kernel is loaded"
Maciej W. Rozycki8bda3e22018-03-26 19:11:51 +01003098 default "0xffffffff84000000"
Marcin Nowakowskibff323d2016-12-02 09:58:29 +01003099 depends on CRASH_DUMP
3100 help
Ralf Baechle7aa1c8f2012-10-11 18:14:58 +02003101 This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
3102 If you plan to use kernel for capturing the crash dump change
3103 this value to start of the reserved region (the "X" value as
3104 specified in the "crashkernel=YM@XM" command line boot parameter
3105 passed to the panic-ed kernel).
3106
Paul Burton597ce172013-11-22 13:12:07 +00003107config MIPS_O32_FP64_SUPPORT
Paul Burtonb7f1e272018-11-07 23:13:58 +00003108 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
Paul Burton597ce172013-11-22 13:12:07 +00003109 depends on 32BIT || MIPS32_O32
Paul Burton597ce172013-11-22 13:12:07 +00003110 help
3111 When this is enabled, the kernel will support use of 64-bit floating
3112 point registers with binaries using the O32 ABI along with the
3113 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
3114 32-bit MIPS systems this support is at the cost of increasing the
3115 size and complexity of the compiled FPU emulator. Thus if you are
3116 running a MIPS32 system and know that none of your userland binaries
3117 will require 64-bit floating point, you may wish to reduce the size
3118 of your kernel & potentially improve FP emulation performance by
3119 saying N here.
3120
Paul Burton06e2e882014-02-14 17:55:18 +00003121 Although binutils currently supports use of this flag the details
3122 concerning its effect upon the O32 ABI in userland are still being
Colin Ian King18ff14c2020-10-27 18:34:30 +00003123 worked on. In order to avoid userland becoming dependent upon current
Paul Burton06e2e882014-02-14 17:55:18 +00003124 behaviour before the details have been finalised, this option should
3125 be considered experimental and only enabled by those working upon
3126 said details.
3127
3128 If unsure, say N.
Paul Burton597ce172013-11-22 13:12:07 +00003129
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003130config USE_OF
Jonas Gorski0b3e06f2012-09-18 11:28:54 +02003131 bool
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003132 select OF
Stephen Neuendorffere6ce1322010-11-18 15:54:56 -08003133 select OF_EARLY_FLATTREE
Grant Likelyabd23632012-02-24 08:07:06 -07003134 select IRQ_DOMAIN
Dezhong Diaof2ffa5a2010-10-13 00:52:46 -06003135
Dengcheng Zhu2fe8ea32018-09-11 14:49:24 -07003136config UHI_BOOT
3137 bool
3138
Andrew Bresticker7fafb062014-08-21 13:04:20 -07003139config BUILTIN_DTB
3140 bool
3141
Jonas Gorski1da8f172015-04-12 12:24:58 +02003142choice
Jonas Gorski5b24d522015-10-12 13:13:01 +02003143 prompt "Kernel appended dtb support" if USE_OF
Jonas Gorski1da8f172015-04-12 12:24:58 +02003144 default MIPS_NO_APPENDED_DTB
3145
3146 config MIPS_NO_APPENDED_DTB
3147 bool "None"
3148 help
3149 Do not enable appended dtb support.
3150
Aaro Koskinen87db5372015-09-11 17:46:14 +03003151 config MIPS_ELF_APPENDED_DTB
3152 bool "vmlinux"
3153 help
3154 With this option, the boot code will look for a device tree binary
3155 DTB) included in the vmlinux ELF section .appended_dtb. By default
3156 it is empty and the DTB can be appended using binutils command
3157 objcopy:
3158
3159 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
3160
Colin Ian King18ff14c2020-10-27 18:34:30 +00003161 This is meant as a backward compatibility convenience for those
Aaro Koskinen87db5372015-09-11 17:46:14 +03003162 systems with a bootloader that can't be upgraded to accommodate
3163 the documented boot protocol using a device tree.
3164
Jonas Gorski1da8f172015-04-12 12:24:58 +02003165 config MIPS_RAW_APPENDED_DTB
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003166 bool "vmlinux.bin or vmlinuz.bin"
Jonas Gorski1da8f172015-04-12 12:24:58 +02003167 help
3168 With this option, the boot code will look for a device tree binary
Jonas Gorskib8f54f22016-06-20 11:27:36 +02003169 DTB) appended to raw vmlinux.bin or vmlinuz.bin.
Jonas Gorski1da8f172015-04-12 12:24:58 +02003170 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
3171
3172 This is meant as a backward compatibility convenience for those
3173 systems with a bootloader that can't be upgraded to accommodate
3174 the documented boot protocol using a device tree.
3175
3176 Beware that there is very little in terms of protection against
3177 this option being confused by leftover garbage in memory that might
3178 look like a DTB header after a reboot if no actual DTB is appended
3179 to vmlinux.bin. Do not leave this option active in a production kernel
3180 if you don't intend to always append a DTB.
3181endchoice
3182
Jonas Gorski20249722015-10-12 13:13:02 +02003183choice
3184 prompt "Kernel command line type" if !CMDLINE_OVERRIDE
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003185 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
Jiaxun Yang87fcfa72020-03-25 11:55:02 +08003186 !MACH_LOONGSON64 && !MIPS_MALTA && \
Jonas Gorski2bcef9b2015-10-12 13:13:03 +02003187 !CAVIUM_OCTEON_SOC
Jonas Gorski20249722015-10-12 13:13:02 +02003188 default MIPS_CMDLINE_FROM_BOOTLOADER
3189
3190 config MIPS_CMDLINE_FROM_DTB
3191 depends on USE_OF
3192 bool "Dtb kernel arguments if available"
3193
3194 config MIPS_CMDLINE_DTB_EXTEND
3195 depends on USE_OF
3196 bool "Extend dtb kernel arguments with bootloader arguments"
3197
3198 config MIPS_CMDLINE_FROM_BOOTLOADER
3199 bool "Bootloader kernel arguments if available"
Rabin Vincented47e152016-04-28 11:03:09 +02003200
3201 config MIPS_CMDLINE_BUILTIN_EXTEND
3202 depends on CMDLINE_BOOL
3203 bool "Extend builtin kernel arguments with bootloader arguments"
Jonas Gorski20249722015-10-12 13:13:02 +02003204endchoice
3205
Ralf Baechle5e83d432005-10-29 19:32:41 +01003206endmenu
3207
Atsushi Nemoto1df0f0f2006-09-26 23:44:01 +09003208config LOCKDEP_SUPPORT
3209 bool
3210 default y
3211
3212config STACKTRACE_SUPPORT
3213 bool
3214 default y
3215
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003216config PGTABLE_LEVELS
3217 int
Alex Belits3377e222017-02-16 17:27:34 -08003218 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
Kirill A. Shutemova728ab52015-04-14 15:45:51 -07003219 default 3 if 64BIT && !PAGE_SIZE_64KB
3220 default 2
3221
Paul Burton6c359eb2018-07-27 18:23:20 -07003222config MIPS_AUTO_PFN_OFFSET
3223 bool
3224
Linus Torvalds1da177e2005-04-16 15:20:36 -07003225menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3226
Paul Burtonc5611df2016-10-05 18:18:12 +01003227config PCI_DRIVERS_GENERIC
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003228 select PCI_DOMAINS_GENERIC if PCI
Paul Burtonc5611df2016-10-05 18:18:12 +01003229 bool
3230
3231config PCI_DRIVERS_LEGACY
3232 def_bool !PCI_DRIVERS_GENERIC
3233 select NO_GENERIC_PCI_IOPORT_MAP
Christoph Hellwig2eac9c22018-11-15 20:05:33 +01003234 select PCI_DOMAINS if PCI
Linus Torvalds1da177e2005-04-16 15:20:36 -07003235
3236#
3237# ISA support is now enabled via select. Too many systems still have the one
3238# or other ISA chip on the board that users don't know about so don't expect
3239# users to choose the right thing ...
3240#
3241config ISA
3242 bool
3243
Linus Torvalds1da177e2005-04-16 15:20:36 -07003244config TC
3245 bool "TURBOchannel support"
3246 depends on MACH_DECSTATION
3247 help
Justin P. Mattock50a23e62010-10-16 10:36:23 -07003248 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3249 processors. TURBOchannel programming specifications are available
3250 at:
3251 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3252 and:
3253 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3254 Linux driver support status is documented at:
3255 <http://www.linux-mips.org/wiki/DECstation>
Linus Torvalds1da177e2005-04-16 15:20:36 -07003256
Linus Torvalds1da177e2005-04-16 15:20:36 -07003257config MMU
3258 bool
3259 default y
3260
Matt Redfearn109c32f2016-11-24 17:32:45 +00003261config ARCH_MMAP_RND_BITS_MIN
3262 default 12 if 64BIT
3263 default 8
3264
3265config ARCH_MMAP_RND_BITS_MAX
3266 default 18 if 64BIT
3267 default 15
3268
3269config ARCH_MMAP_RND_COMPAT_BITS_MIN
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003270 default 8
Matt Redfearn109c32f2016-11-24 17:32:45 +00003271
3272config ARCH_MMAP_RND_COMPAT_BITS_MAX
Enrico Weigelt, metux IT consult371a4152019-03-11 16:54:27 +01003273 default 15
Matt Redfearn109c32f2016-11-24 17:32:45 +00003274
Ralf Baechled865bea2007-10-11 23:46:10 +01003275config I8253
3276 bool
Russell King798778b2011-05-08 19:03:03 +01003277 select CLKSRC_I8253
Thomas Gleixner2d026122011-06-09 13:08:27 +00003278 select CLKEVT_I8253
Wu Zhangjin9726b432009-11-17 01:32:58 +08003279 select MIPS_EXTERNAL_TIMER
Ralf Baechled865bea2007-10-11 23:46:10 +01003280
Ralf Baechlee05eb3f2013-06-12 10:54:11 +02003281config ZONE_DMA
3282 bool
3283
Ralf Baechlecce335a2007-11-03 02:05:43 +00003284config ZONE_DMA32
3285 bool
3286
Linus Torvalds1da177e2005-04-16 15:20:36 -07003287endmenu
3288
Linus Torvalds1da177e2005-04-16 15:20:36 -07003289config TRAD_SIGNALS
3290 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003291
Linus Torvalds1da177e2005-04-16 15:20:36 -07003292config MIPS32_COMPAT
Ralf Baechle78aaf952014-12-19 01:18:03 +01003293 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003294
3295config COMPAT
3296 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -07003297
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003298config SYSVIPC_COMPAT
3299 bool
Atsushi Nemoto05e43962006-11-07 18:02:44 +09003300
Linus Torvalds1da177e2005-04-16 15:20:36 -07003301config MIPS32_O32
3302 bool "Kernel support for o32 binaries"
Ralf Baechle78aaf952014-12-19 01:18:03 +01003303 depends on 64BIT
3304 select ARCH_WANT_OLD_COMPAT_IPC
3305 select COMPAT
3306 select MIPS32_COMPAT
3307 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003308 help
3309 Select this option if you want to run o32 binaries. These are pure
3310 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
3311 existing binaries are in this format.
3312
3313 If unsure, say Y.
3314
3315config MIPS32_N32
3316 bool "Kernel support for n32 binaries"
Ralf Baechlec22eacf2015-01-03 12:10:23 +01003317 depends on 64BIT
Arnd Bergmann5a9372f2019-01-10 17:24:31 +01003318 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
Ralf Baechle78aaf952014-12-19 01:18:03 +01003319 select COMPAT
3320 select MIPS32_COMPAT
3321 select SYSVIPC_COMPAT if SYSVIPC
Linus Torvalds1da177e2005-04-16 15:20:36 -07003322 help
3323 Select this option if you want to run n32 binaries. These are
3324 64-bit binaries using 32-bit quantities for addressing and certain
3325 data that would normally be 64-bit. They are used in special
3326 cases.
3327
3328 If unsure, say N.
3329
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"