aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/Kconfig
diff options
context:
space:
mode:
authorWe-unite <3205135446@qq.com>2025-03-08 22:04:20 +0800
committerWe-unite <3205135446@qq.com>2025-03-08 22:04:20 +0800
commita07bb8fd1299070229f0e8f3dcb57ffd5ef9870a (patch)
tree84f21bd0bf7071bc5fc7dd989e77d7ceb5476682 /arch/mips/Kconfig
downloadohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.tar.gz
ohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.zip
Initial commit: OpenHarmony-v4.0-ReleaseOpenHarmony-v4.0-Release
Diffstat (limited to 'arch/mips/Kconfig')
-rw-r--r--arch/mips/Kconfig3340
1 files changed, 3340 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
new file mode 100644
index 000000000..896a29df1
--- /dev/null
+++ b/arch/mips/Kconfig
@@ -0,0 +1,3340 @@
1# SPDX-License-Identifier: GPL-2.0
2config MIPS
3 bool
4 default y
5 select ARCH_32BIT_OFF_T if !64BIT
6 select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
7 select ARCH_HAS_FORTIFY_SOURCE
8 select ARCH_HAS_KCOV
9 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
10 select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
11 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
12 select ARCH_HAS_UBSAN_SANITIZE_ALL
13 select ARCH_SUPPORTS_UPROBES
14 select ARCH_USE_BUILTIN_BSWAP
15 select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
16 select ARCH_USE_QUEUED_RWLOCKS
17 select ARCH_USE_QUEUED_SPINLOCKS
18 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
19 select ARCH_WANT_IPC_PARSE_VERSION
20 select BUILDTIME_TABLE_SORT
21 select CLONE_BACKWARDS
22 select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
23 select CPU_PM if CPU_IDLE
24 select GENERIC_ATOMIC64 if !64BIT
25 select GENERIC_CLOCKEVENTS
26 select GENERIC_CMOS_UPDATE
27 select GENERIC_CPU_AUTOPROBE
28 select GENERIC_GETTIMEOFDAY
29 select GENERIC_IOMAP
30 select GENERIC_IRQ_PROBE
31 select GENERIC_IRQ_SHOW
32 select GENERIC_ISA_DMA if EISA
33 select GENERIC_LIB_ASHLDI3
34 select GENERIC_LIB_ASHRDI3
35 select GENERIC_LIB_CMPDI2
36 select GENERIC_LIB_LSHRDI3
37 select GENERIC_LIB_UCMPDI2
38 select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
39 select GENERIC_SMP_IDLE_THREAD
40 select GENERIC_TIME_VSYSCALL
41 select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
42 select HANDLE_DOMAIN_IRQ
43 select HAVE_ARCH_COMPILER_H
44 select HAVE_ARCH_JUMP_LABEL
45 select HAVE_ARCH_KGDB
46 select HAVE_ARCH_MMAP_RND_BITS if MMU
47 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
48 select HAVE_ARCH_SECCOMP_FILTER
49 select HAVE_ARCH_TRACEHOOK
50 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
51 select HAVE_ASM_MODVERSIONS
52 select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
53 select HAVE_CONTEXT_TRACKING
54 select HAVE_TIF_NOHZ
55 select HAVE_C_RECORDMCOUNT
56 select HAVE_DEBUG_KMEMLEAK
57 select HAVE_DEBUG_STACKOVERFLOW
58 select HAVE_DMA_CONTIGUOUS
59 select HAVE_DYNAMIC_FTRACE
60 select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
61 select HAVE_EXIT_THREAD
62 select HAVE_FAST_GUP
63 select HAVE_FTRACE_MCOUNT_RECORD
64 select HAVE_FUNCTION_GRAPH_TRACER
65 select HAVE_FUNCTION_TRACER
66 select HAVE_GCC_PLUGINS
67 select HAVE_GENERIC_VDSO
68 select HAVE_IDE
69 select HAVE_IOREMAP_PROT
70 select HAVE_IRQ_EXIT_ON_IRQ_STACK
71 select HAVE_IRQ_TIME_ACCOUNTING
72 select HAVE_KPROBES
73 select HAVE_KRETPROBES
74 select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
75 select HAVE_MOD_ARCH_SPECIFIC
76 select HAVE_NMI
77 select HAVE_OPROFILE
78 select HAVE_PERF_EVENTS
79 select HAVE_REGS_AND_STACK_ACCESS_API
80 select HAVE_RSEQ
81 select HAVE_SPARSE_SYSCALL_NR
82 select HAVE_STACKPROTECTOR
83 select HAVE_SYSCALL_TRACEPOINTS
84 select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
85 select IRQ_FORCED_THREADING
86 select ISA if EISA
87 select MODULES_USE_ELF_REL if MODULES
88 select MODULES_USE_ELF_RELA if MODULES && 64BIT
89 select PERF_USE_VMALLOC
90 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
91 select RTC_LIB
92 select SET_FS
93 select SYSCTL_EXCEPTION_TRACE
94 select VIRT_TO_BUS
95
96config MIPS_FIXUP_BIGPHYS_ADDR
97 bool
98
99config MIPS_GENERIC
100 bool
101
102config MACH_INGENIC
103 bool
104 select SYS_SUPPORTS_32BIT_KERNEL
105 select SYS_SUPPORTS_LITTLE_ENDIAN
106 select SYS_SUPPORTS_ZBOOT
107 select DMA_NONCOHERENT
108 select IRQ_MIPS_CPU
109 select PINCTRL
110 select GPIOLIB
111 select COMMON_CLK
112 select GENERIC_IRQ_CHIP
113 select BUILTIN_DTB if MIPS_NO_APPENDED_DTB
114 select USE_OF
115 select CPU_SUPPORTS_CPUFREQ
116 select MIPS_EXTERNAL_TIMER
117
118menu "Machine selection"
119
120choice
121 prompt "System type"
122 default MIPS_GENERIC_KERNEL
123
124config MIPS_GENERIC_KERNEL
125 bool "Generic board-agnostic MIPS kernel"
126 select MIPS_GENERIC
127 select BOOT_RAW
128 select BUILTIN_DTB
129 select CEVT_R4K
130 select CLKSRC_MIPS_GIC
131 select COMMON_CLK
132 select CPU_MIPSR2_IRQ_EI
133 select CPU_MIPSR2_IRQ_VI
134 select CSRC_R4K
135 select DMA_PERDEV_COHERENT
136 select HAVE_PCI
137 select IRQ_MIPS_CPU
138 select MIPS_AUTO_PFN_OFFSET
139 select MIPS_CPU_SCACHE
140 select MIPS_GIC
141 select MIPS_L1_CACHE_SHIFT_7
142 select NO_EXCEPT_FILL
143 select PCI_DRIVERS_GENERIC
144 select SMP_UP if SMP
145 select SWAP_IO_SPACE
146 select SYS_HAS_CPU_MIPS32_R1
147 select SYS_HAS_CPU_MIPS32_R2
148 select SYS_HAS_CPU_MIPS32_R6
149 select SYS_HAS_CPU_MIPS64_R1
150 select SYS_HAS_CPU_MIPS64_R2
151 select SYS_HAS_CPU_MIPS64_R6
152 select SYS_SUPPORTS_32BIT_KERNEL
153 select SYS_SUPPORTS_64BIT_KERNEL
154 select SYS_SUPPORTS_BIG_ENDIAN
155 select SYS_SUPPORTS_HIGHMEM
156 select SYS_SUPPORTS_LITTLE_ENDIAN
157 select SYS_SUPPORTS_MICROMIPS
158 select SYS_SUPPORTS_MIPS16
159 select SYS_SUPPORTS_MIPS_CPS
160 select SYS_SUPPORTS_MULTITHREADING
161 select SYS_SUPPORTS_RELOCATABLE
162 select SYS_SUPPORTS_SMARTMIPS
163 select SYS_SUPPORTS_ZBOOT
164 select UHI_BOOT
165 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
166 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
167 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
168 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
169 select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
170 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
171 select USE_OF
172 help
173 Select this to build a kernel which aims to support multiple boards,
174 generally using a flattened device tree passed from the bootloader
175 using the boot protocol defined in the UHI (Unified Hosting
176 Interface) specification.
177
178config MIPS_ALCHEMY
179 bool "Alchemy processor based machines"
180 select PHYS_ADDR_T_64BIT
181 select CEVT_R4K
182 select CSRC_R4K
183 select IRQ_MIPS_CPU
184 select DMA_MAYBE_COHERENT # Au1000,1500,1100 aren't, rest is
185 select MIPS_FIXUP_BIGPHYS_ADDR if PCI
186 select SYS_HAS_CPU_MIPS32_R1
187 select SYS_SUPPORTS_32BIT_KERNEL
188 select SYS_SUPPORTS_APM_EMULATION
189 select GPIOLIB
190 select SYS_SUPPORTS_ZBOOT
191 select COMMON_CLK
192
193config AR7
194 bool "Texas Instruments AR7"
195 select BOOT_ELF32
196 select DMA_NONCOHERENT
197 select CEVT_R4K
198 select CSRC_R4K
199 select IRQ_MIPS_CPU
200 select NO_EXCEPT_FILL
201 select SWAP_IO_SPACE
202 select SYS_HAS_CPU_MIPS32_R1
203 select SYS_HAS_EARLY_PRINTK
204 select SYS_SUPPORTS_32BIT_KERNEL
205 select SYS_SUPPORTS_LITTLE_ENDIAN
206 select SYS_SUPPORTS_MIPS16
207 select SYS_SUPPORTS_ZBOOT_UART16550
208 select GPIOLIB
209 select VLYNQ
210 select HAVE_LEGACY_CLK
211 help
212 Support for the Texas Instruments AR7 System-on-a-Chip
213 family: TNETD7100, 7200 and 7300.
214
215config ATH25
216 bool "Atheros AR231x/AR531x SoC support"
217 select CEVT_R4K
218 select CSRC_R4K
219 select DMA_NONCOHERENT
220 select IRQ_MIPS_CPU
221 select IRQ_DOMAIN
222 select SYS_HAS_CPU_MIPS32_R1
223 select SYS_SUPPORTS_BIG_ENDIAN
224 select SYS_SUPPORTS_32BIT_KERNEL
225 select SYS_HAS_EARLY_PRINTK
226 help
227 Support for Atheros AR231x and Atheros AR531x based boards
228
229config ATH79
230 bool "Atheros AR71XX/AR724X/AR913X based boards"
231 select ARCH_HAS_RESET_CONTROLLER
232 select BOOT_RAW
233 select CEVT_R4K
234 select CSRC_R4K
235 select DMA_NONCOHERENT
236 select GPIOLIB
237 select PINCTRL
238 select COMMON_CLK
239 select IRQ_MIPS_CPU
240 select SYS_HAS_CPU_MIPS32_R2
241 select SYS_HAS_EARLY_PRINTK
242 select SYS_SUPPORTS_32BIT_KERNEL
243 select SYS_SUPPORTS_BIG_ENDIAN
244 select SYS_SUPPORTS_MIPS16
245 select SYS_SUPPORTS_ZBOOT_UART_PROM
246 select USE_OF
247 select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM
248 help
249 Support for the Atheros AR71XX/AR724X/AR913X SoCs.
250
251config BMIPS_GENERIC
252 bool "Broadcom Generic BMIPS kernel"
253 select ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
254 select ARCH_HAS_PHYS_TO_DMA
255 select BOOT_RAW
256 select NO_EXCEPT_FILL
257 select USE_OF
258 select CEVT_R4K
259 select CSRC_R4K
260 select SYNC_R4K
261 select COMMON_CLK
262 select BCM6345_L1_IRQ
263 select BCM7038_L1_IRQ
264 select BCM7120_L2_IRQ
265 select BRCMSTB_L2_IRQ
266 select IRQ_MIPS_CPU
267 select DMA_NONCOHERENT
268 select SYS_SUPPORTS_32BIT_KERNEL
269 select SYS_SUPPORTS_LITTLE_ENDIAN
270 select SYS_SUPPORTS_BIG_ENDIAN
271 select SYS_SUPPORTS_HIGHMEM
272 select SYS_HAS_CPU_BMIPS32_3300
273 select SYS_HAS_CPU_BMIPS4350
274 select SYS_HAS_CPU_BMIPS4380
275 select SYS_HAS_CPU_BMIPS5000
276 select SWAP_IO_SPACE
277 select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
278 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
279 select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
280 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
281 select HARDIRQS_SW_RESEND
282 help
283 Build a generic DT-based kernel image that boots on select
284 BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
285 box chips. Note that CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN
286 must be set appropriately for your board.
287
288config BCM47XX
289 bool "Broadcom BCM47XX based boards"
290 select BOOT_RAW
291 select CEVT_R4K
292 select CSRC_R4K
293 select DMA_NONCOHERENT
294 select HAVE_PCI
295 select IRQ_MIPS_CPU
296 select SYS_HAS_CPU_MIPS32_R1
297 select NO_EXCEPT_FILL
298 select SYS_SUPPORTS_32BIT_KERNEL
299 select SYS_SUPPORTS_LITTLE_ENDIAN
300 select SYS_SUPPORTS_MIPS16
301 select SYS_SUPPORTS_ZBOOT
302 select SYS_HAS_EARLY_PRINTK
303 select USE_GENERIC_EARLY_PRINTK_8250
304 select GPIOLIB
305 select LEDS_GPIO_REGISTER
306 select BCM47XX_NVRAM
307 select BCM47XX_SPROM
308 select BCM47XX_SSB if !BCM47XX_BCMA
309 help
310 Support for BCM47XX based boards
311
312config BCM63XX
313 bool "Broadcom BCM63XX based boards"
314 select BOOT_RAW
315 select CEVT_R4K
316 select CSRC_R4K
317 select SYNC_R4K
318 select DMA_NONCOHERENT
319 select IRQ_MIPS_CPU
320 select SYS_SUPPORTS_32BIT_KERNEL
321 select SYS_SUPPORTS_BIG_ENDIAN
322 select SYS_HAS_EARLY_PRINTK
323 select SYS_HAS_CPU_BMIPS32_3300
324 select SYS_HAS_CPU_BMIPS4350
325 select SYS_HAS_CPU_BMIPS4380
326 select SWAP_IO_SPACE
327 select GPIOLIB
328 select MIPS_L1_CACHE_SHIFT_4
329 select CLKDEV_LOOKUP
330 select HAVE_LEGACY_CLK
331 help
332 Support for BCM63XX based boards
333
334config MIPS_COBALT
335 bool "Cobalt Server"
336 select CEVT_R4K
337 select CSRC_R4K
338 select CEVT_GT641XX
339 select DMA_NONCOHERENT
340 select FORCE_PCI
341 select I8253
342 select I8259
343 select IRQ_MIPS_CPU
344 select IRQ_GT641XX
345 select PCI_GT64XXX_PCI0
346 select SYS_HAS_CPU_NEVADA
347 select SYS_HAS_EARLY_PRINTK
348 select SYS_SUPPORTS_32BIT_KERNEL
349 select SYS_SUPPORTS_64BIT_KERNEL
350 select SYS_SUPPORTS_LITTLE_ENDIAN
351 select USE_GENERIC_EARLY_PRINTK_8250
352
353config MACH_DECSTATION
354 bool "DECstations"
355 select BOOT_ELF32
356 select CEVT_DS1287
357 select CEVT_R4K if CPU_R4X00
358 select CSRC_IOASIC
359 select CSRC_R4K if CPU_R4X00
360 select CPU_DADDI_WORKAROUNDS if 64BIT
361 select CPU_R4000_WORKAROUNDS if 64BIT
362 select CPU_R4400_WORKAROUNDS if 64BIT
363 select DMA_NONCOHERENT
364 select NO_IOPORT_MAP
365 select IRQ_MIPS_CPU
366 select SYS_HAS_CPU_R3000
367 select SYS_HAS_CPU_R4X00
368 select SYS_SUPPORTS_32BIT_KERNEL
369 select SYS_SUPPORTS_64BIT_KERNEL
370 select SYS_SUPPORTS_LITTLE_ENDIAN
371 select SYS_SUPPORTS_128HZ
372 select SYS_SUPPORTS_256HZ
373 select SYS_SUPPORTS_1024HZ
374 select MIPS_L1_CACHE_SHIFT_4
375 help
376 This enables support for DEC's MIPS based workstations. For details
377 see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
378 DECstation porting pages on <http://decstation.unix-ag.org/>.
379
380 If you have one of the following DECstation Models you definitely
381 want to choose R4xx0 for the CPU Type:
382
383 DECstation 5000/50
384 DECstation 5000/150
385 DECstation 5000/260
386 DECsystem 5900/260
387
388 otherwise choose R3000.
389
390config MACH_JAZZ
391 bool "Jazz family of machines"
392 select ARC_MEMORY
393 select ARC_PROMLIB
394 select ARCH_MIGHT_HAVE_PC_PARPORT
395 select ARCH_MIGHT_HAVE_PC_SERIO
396 select DMA_OPS
397 select FW_ARC
398 select FW_ARC32
399 select ARCH_MAY_HAVE_PC_FDC
400 select CEVT_R4K
401 select CSRC_R4K
402 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
403 select GENERIC_ISA_DMA
404 select HAVE_PCSPKR_PLATFORM
405 select IRQ_MIPS_CPU
406 select I8253
407 select I8259
408 select ISA
409 select SYS_HAS_CPU_R4X00
410 select SYS_SUPPORTS_32BIT_KERNEL
411 select SYS_SUPPORTS_64BIT_KERNEL
412 select SYS_SUPPORTS_100HZ
413 help
414 This a family of machines based on the MIPS R4030 chipset which was
415 used by several vendors to build RISC/os and Windows NT workstations.
416 Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
417 Olivetti M700-10 workstations.
418
419config MACH_INGENIC_SOC
420 bool "Ingenic SoC based machines"
421 select MIPS_GENERIC
422 select MACH_INGENIC
423 select SYS_SUPPORTS_ZBOOT_UART16550
424 select CPU_SUPPORTS_CPUFREQ
425 select MIPS_EXTERNAL_TIMER
426
427config LANTIQ
428 bool "Lantiq based platforms"
429 select DMA_NONCOHERENT
430 select IRQ_MIPS_CPU
431 select CEVT_R4K
432 select CSRC_R4K
433 select SYS_HAS_CPU_MIPS32_R1
434 select SYS_HAS_CPU_MIPS32_R2
435 select SYS_SUPPORTS_BIG_ENDIAN
436 select SYS_SUPPORTS_32BIT_KERNEL
437 select SYS_SUPPORTS_MIPS16
438 select SYS_SUPPORTS_MULTITHREADING
439 select SYS_SUPPORTS_VPE_LOADER
440 select SYS_HAS_EARLY_PRINTK
441 select GPIOLIB
442 select SWAP_IO_SPACE
443 select BOOT_RAW
444 select CLKDEV_LOOKUP
445 select HAVE_LEGACY_CLK
446 select USE_OF
447 select PINCTRL
448 select PINCTRL_LANTIQ
449 select ARCH_HAS_RESET_CONTROLLER
450 select RESET_CONTROLLER
451
452config MACH_LOONGSON32
453 bool "Loongson 32-bit family of machines"
454 select SYS_SUPPORTS_ZBOOT
455 help
456 This enables support for the Loongson-1 family of machines.
457
458 Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
459 the Institute of Computing Technology (ICT), Chinese Academy of
460 Sciences (CAS).
461
462config MACH_LOONGSON2EF
463 bool "Loongson-2E/F family of machines"
464 select SYS_SUPPORTS_ZBOOT
465 help
466 This enables the support of early Loongson-2E/F family of machines.
467
468config MACH_LOONGSON64
469 bool "Loongson 64-bit family of machines"
470 select ARCH_SPARSEMEM_ENABLE
471 select ARCH_MIGHT_HAVE_PC_PARPORT
472 select ARCH_MIGHT_HAVE_PC_SERIO
473 select GENERIC_ISA_DMA_SUPPORT_BROKEN
474 select BOOT_ELF32
475 select BOARD_SCACHE
476 select CSRC_R4K
477 select CEVT_R4K
478 select CPU_HAS_WB
479 select FORCE_PCI
480 select ISA
481 select I8259
482 select IRQ_MIPS_CPU
483 select NO_EXCEPT_FILL
484 select NR_CPUS_DEFAULT_64
485 select USE_GENERIC_EARLY_PRINTK_8250
486 select PCI_DRIVERS_GENERIC
487 select SYS_HAS_CPU_LOONGSON64
488 select SYS_HAS_EARLY_PRINTK
489 select SYS_SUPPORTS_SMP
490 select SYS_SUPPORTS_HOTPLUG_CPU
491 select SYS_SUPPORTS_NUMA
492 select SYS_SUPPORTS_64BIT_KERNEL
493 select SYS_SUPPORTS_HIGHMEM
494 select SYS_SUPPORTS_LITTLE_ENDIAN
495 select SYS_SUPPORTS_ZBOOT
496 select ZONE_DMA32
497 select NUMA
498 select SMP
499 select COMMON_CLK
500 select USE_OF
501 select BUILTIN_DTB
502 select PCI_HOST_GENERIC
503 help
504 This enables the support of Loongson-2/3 family of machines.
505
506 Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
507 GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
508 and Loongson-2F which will be removed), developed by the Institute
509 of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
510
511config MACH_PISTACHIO
512 bool "IMG Pistachio SoC based boards"
513 select BOOT_ELF32
514 select BOOT_RAW
515 select CEVT_R4K
516 select CLKSRC_MIPS_GIC
517 select COMMON_CLK
518 select CSRC_R4K
519 select DMA_NONCOHERENT
520 select GPIOLIB
521 select IRQ_MIPS_CPU
522 select MFD_SYSCON
523 select MIPS_CPU_SCACHE
524 select MIPS_GIC
525 select PINCTRL
526 select REGULATOR
527 select SYS_HAS_CPU_MIPS32_R2
528 select SYS_SUPPORTS_32BIT_KERNEL
529 select SYS_SUPPORTS_LITTLE_ENDIAN
530 select SYS_SUPPORTS_MIPS_CPS
531 select SYS_SUPPORTS_MULTITHREADING
532 select SYS_SUPPORTS_RELOCATABLE
533 select SYS_SUPPORTS_ZBOOT
534 select SYS_HAS_EARLY_PRINTK
535 select USE_GENERIC_EARLY_PRINTK_8250
536 select USE_OF
537 help
538 This enables support for the IMG Pistachio SoC platform.
539
540config MIPS_MALTA
541 bool "MIPS Malta board"
542 select ARCH_MAY_HAVE_PC_FDC
543 select ARCH_MIGHT_HAVE_PC_PARPORT
544 select ARCH_MIGHT_HAVE_PC_SERIO
545 select BOOT_ELF32
546 select BOOT_RAW
547 select BUILTIN_DTB
548 select CEVT_R4K
549 select CLKSRC_MIPS_GIC
550 select COMMON_CLK
551 select CSRC_R4K
552 select DMA_MAYBE_COHERENT
553 select GENERIC_ISA_DMA
554 select HAVE_PCSPKR_PLATFORM
555 select HAVE_PCI
556 select I8253
557 select I8259
558 select IRQ_MIPS_CPU
559 select MIPS_BONITO64
560 select MIPS_CPU_SCACHE
561 select MIPS_GIC
562 select MIPS_L1_CACHE_SHIFT_6
563 select MIPS_MSC
564 select PCI_GT64XXX_PCI0
565 select SMP_UP if SMP
566 select SWAP_IO_SPACE
567 select SYS_HAS_CPU_MIPS32_R1
568 select SYS_HAS_CPU_MIPS32_R2
569 select SYS_HAS_CPU_MIPS32_R3_5
570 select SYS_HAS_CPU_MIPS32_R5
571 select SYS_HAS_CPU_MIPS32_R6
572 select SYS_HAS_CPU_MIPS64_R1
573 select SYS_HAS_CPU_MIPS64_R2
574 select SYS_HAS_CPU_MIPS64_R6
575 select SYS_HAS_CPU_NEVADA
576 select SYS_HAS_CPU_RM7000
577 select SYS_SUPPORTS_32BIT_KERNEL
578 select SYS_SUPPORTS_64BIT_KERNEL
579 select SYS_SUPPORTS_BIG_ENDIAN
580 select SYS_SUPPORTS_HIGHMEM
581 select SYS_SUPPORTS_LITTLE_ENDIAN
582 select SYS_SUPPORTS_MICROMIPS
583 select SYS_SUPPORTS_MIPS16
584 select SYS_SUPPORTS_MIPS_CMP
585 select SYS_SUPPORTS_MIPS_CPS
586 select SYS_SUPPORTS_MULTITHREADING
587 select SYS_SUPPORTS_RELOCATABLE
588 select SYS_SUPPORTS_SMARTMIPS
589 select SYS_SUPPORTS_VPE_LOADER
590 select SYS_SUPPORTS_ZBOOT
591 select USE_OF
592 select WAR_ICACHE_REFILLS
593 select ZONE_DMA32 if 64BIT
594 help
595 This enables support for the MIPS Technologies Malta evaluation
596 board.
597
598config MACH_PIC32
599 bool "Microchip PIC32 Family"
600 help
601 This enables support for the Microchip PIC32 family of platforms.
602
603 Microchip PIC32 is a family of general-purpose 32 bit MIPS core
604 microcontrollers.
605
606config MACH_VR41XX
607 bool "NEC VR4100 series based machines"
608 select CEVT_R4K
609 select CSRC_R4K
610 select SYS_HAS_CPU_VR41XX
611 select SYS_SUPPORTS_MIPS16
612 select GPIOLIB
613
614config RALINK
615 bool "Ralink based machines"
616 select CEVT_R4K
617 select CSRC_R4K
618 select BOOT_RAW
619 select DMA_NONCOHERENT
620 select IRQ_MIPS_CPU
621 select USE_OF
622 select SYS_HAS_CPU_MIPS32_R1
623 select SYS_HAS_CPU_MIPS32_R2
624 select SYS_SUPPORTS_32BIT_KERNEL
625 select SYS_SUPPORTS_LITTLE_ENDIAN
626 select SYS_SUPPORTS_MIPS16
627 select SYS_SUPPORTS_ZBOOT
628 select SYS_HAS_EARLY_PRINTK
629 select CLKDEV_LOOKUP
630 select ARCH_HAS_RESET_CONTROLLER
631 select RESET_CONTROLLER
632
633config SGI_IP22
634 bool "SGI IP22 (Indy/Indigo2)"
635 select ARC_MEMORY
636 select ARC_PROMLIB
637 select FW_ARC
638 select FW_ARC32
639 select ARCH_MIGHT_HAVE_PC_SERIO
640 select BOOT_ELF32
641 select CEVT_R4K
642 select CSRC_R4K
643 select DEFAULT_SGI_PARTITION
644 select DMA_NONCOHERENT
645 select HAVE_EISA
646 select I8253
647 select I8259
648 select IP22_CPU_SCACHE
649 select IRQ_MIPS_CPU
650 select GENERIC_ISA_DMA_SUPPORT_BROKEN
651 select SGI_HAS_I8042
652 select SGI_HAS_INDYDOG
653 select SGI_HAS_HAL2
654 select SGI_HAS_SEEQ
655 select SGI_HAS_WD93
656 select SGI_HAS_ZILOG
657 select SWAP_IO_SPACE
658 select SYS_HAS_CPU_R4X00
659 select SYS_HAS_CPU_R5000
660 select SYS_HAS_EARLY_PRINTK
661 select SYS_SUPPORTS_32BIT_KERNEL
662 select SYS_SUPPORTS_64BIT_KERNEL
663 select SYS_SUPPORTS_BIG_ENDIAN
664 select WAR_R4600_V1_INDEX_ICACHEOP
665 select WAR_R4600_V1_HIT_CACHEOP
666 select WAR_R4600_V2_HIT_CACHEOP
667 select MIPS_L1_CACHE_SHIFT_7
668 help
669 This are the SGI Indy, Challenge S and Indigo2, as well as certain
670 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
671 that runs on these, say Y here.
672
673config SGI_IP27
674 bool "SGI IP27 (Origin200/2000)"
675 select ARCH_HAS_PHYS_TO_DMA
676 select ARCH_SPARSEMEM_ENABLE
677 select FW_ARC
678 select FW_ARC64
679 select ARC_CMDLINE_ONLY
680 select BOOT_ELF64
681 select DEFAULT_SGI_PARTITION
682 select SYS_HAS_EARLY_PRINTK
683 select HAVE_PCI
684 select IRQ_MIPS_CPU
685 select IRQ_DOMAIN_HIERARCHY
686 select NR_CPUS_DEFAULT_64
687 select PCI_DRIVERS_GENERIC
688 select PCI_XTALK_BRIDGE
689 select SYS_HAS_CPU_R10000
690 select SYS_SUPPORTS_64BIT_KERNEL
691 select SYS_SUPPORTS_BIG_ENDIAN
692 select SYS_SUPPORTS_NUMA
693 select SYS_SUPPORTS_SMP
694 select WAR_R10000_LLSC
695 select MIPS_L1_CACHE_SHIFT_7
696 select NUMA
697 help
698 This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
699 workstations. To compile a Linux kernel that runs on these, say Y
700 here.
701
702config SGI_IP28
703 bool "SGI IP28 (Indigo2 R10k)"
704 select ARC_MEMORY
705 select ARC_PROMLIB
706 select FW_ARC
707 select FW_ARC64
708 select ARCH_MIGHT_HAVE_PC_SERIO
709 select BOOT_ELF64
710 select CEVT_R4K
711 select CSRC_R4K
712 select DEFAULT_SGI_PARTITION
713 select DMA_NONCOHERENT
714 select GENERIC_ISA_DMA_SUPPORT_BROKEN
715 select IRQ_MIPS_CPU
716 select HAVE_EISA
717 select I8253
718 select I8259
719 select SGI_HAS_I8042
720 select SGI_HAS_INDYDOG
721 select SGI_HAS_HAL2
722 select SGI_HAS_SEEQ
723 select SGI_HAS_WD93
724 select SGI_HAS_ZILOG
725 select SWAP_IO_SPACE
726 select SYS_HAS_CPU_R10000
727 select SYS_HAS_EARLY_PRINTK
728 select SYS_SUPPORTS_64BIT_KERNEL
729 select SYS_SUPPORTS_BIG_ENDIAN
730 select WAR_R10000_LLSC
731 select MIPS_L1_CACHE_SHIFT_7
732 help
733 This is the SGI Indigo2 with R10000 processor. To compile a Linux
734 kernel that runs on these, say Y here.
735
736config SGI_IP30
737 bool "SGI IP30 (Octane/Octane2)"
738 select ARCH_HAS_PHYS_TO_DMA
739 select FW_ARC
740 select FW_ARC64
741 select BOOT_ELF64
742 select CEVT_R4K
743 select CSRC_R4K
744 select SYNC_R4K if SMP
745 select ZONE_DMA32
746 select HAVE_PCI
747 select IRQ_MIPS_CPU
748 select IRQ_DOMAIN_HIERARCHY
749 select NR_CPUS_DEFAULT_2
750 select PCI_DRIVERS_GENERIC
751 select PCI_XTALK_BRIDGE
752 select SYS_HAS_EARLY_PRINTK
753 select SYS_HAS_CPU_R10000
754 select SYS_SUPPORTS_64BIT_KERNEL
755 select SYS_SUPPORTS_BIG_ENDIAN
756 select SYS_SUPPORTS_SMP
757 select WAR_R10000_LLSC
758 select MIPS_L1_CACHE_SHIFT_7
759 select ARC_MEMORY
760 help
761 These are the SGI Octane and Octane2 graphics workstations. To
762 compile a Linux kernel that runs on these, say Y here.
763
764config SGI_IP32
765 bool "SGI IP32 (O2)"
766 select ARC_MEMORY
767 select ARC_PROMLIB
768 select ARCH_HAS_PHYS_TO_DMA
769 select FW_ARC
770 select FW_ARC32
771 select BOOT_ELF32
772 select CEVT_R4K
773 select CSRC_R4K
774 select DMA_NONCOHERENT
775 select HAVE_PCI
776 select IRQ_MIPS_CPU
777 select R5000_CPU_SCACHE
778 select RM7000_CPU_SCACHE
779 select SYS_HAS_CPU_R5000
780 select SYS_HAS_CPU_R10000 if BROKEN
781 select SYS_HAS_CPU_RM7000
782 select SYS_HAS_CPU_NEVADA
783 select SYS_SUPPORTS_64BIT_KERNEL
784 select SYS_SUPPORTS_BIG_ENDIAN
785 select WAR_ICACHE_REFILLS
786 help
787 If you want this kernel to run on SGI O2 workstation, say Y here.
788
789config SIBYTE_CRHINE
790 bool "Sibyte BCM91120C-CRhine"
791 select BOOT_ELF32
792 select SIBYTE_BCM1120
793 select SWAP_IO_SPACE
794 select SYS_HAS_CPU_SB1
795 select SYS_SUPPORTS_BIG_ENDIAN
796 select SYS_SUPPORTS_LITTLE_ENDIAN
797
798config SIBYTE_CARMEL
799 bool "Sibyte BCM91120x-Carmel"
800 select BOOT_ELF32
801 select SIBYTE_BCM1120
802 select SWAP_IO_SPACE
803 select SYS_HAS_CPU_SB1
804 select SYS_SUPPORTS_BIG_ENDIAN
805 select SYS_SUPPORTS_LITTLE_ENDIAN
806
807config SIBYTE_CRHONE
808 bool "Sibyte BCM91125C-CRhone"
809 select BOOT_ELF32
810 select SIBYTE_BCM1125
811 select SWAP_IO_SPACE
812 select SYS_HAS_CPU_SB1
813 select SYS_SUPPORTS_BIG_ENDIAN
814 select SYS_SUPPORTS_HIGHMEM
815 select SYS_SUPPORTS_LITTLE_ENDIAN
816
817config SIBYTE_RHONE
818 bool "Sibyte BCM91125E-Rhone"
819 select BOOT_ELF32
820 select SIBYTE_BCM1125H
821 select SWAP_IO_SPACE
822 select SYS_HAS_CPU_SB1
823 select SYS_SUPPORTS_BIG_ENDIAN
824 select SYS_SUPPORTS_LITTLE_ENDIAN
825
826config SIBYTE_SWARM
827 bool "Sibyte BCM91250A-SWARM"
828 select BOOT_ELF32
829 select HAVE_PATA_PLATFORM
830 select SIBYTE_SB1250
831 select SWAP_IO_SPACE
832 select SYS_HAS_CPU_SB1
833 select SYS_SUPPORTS_BIG_ENDIAN
834 select SYS_SUPPORTS_HIGHMEM
835 select SYS_SUPPORTS_LITTLE_ENDIAN
836 select ZONE_DMA32 if 64BIT
837 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
838
839config SIBYTE_LITTLESUR
840 bool "Sibyte BCM91250C2-LittleSur"
841 select BOOT_ELF32
842 select HAVE_PATA_PLATFORM
843 select SIBYTE_SB1250
844 select SWAP_IO_SPACE
845 select SYS_HAS_CPU_SB1
846 select SYS_SUPPORTS_BIG_ENDIAN
847 select SYS_SUPPORTS_HIGHMEM
848 select SYS_SUPPORTS_LITTLE_ENDIAN
849 select ZONE_DMA32 if 64BIT
850
851config SIBYTE_SENTOSA
852 bool "Sibyte BCM91250E-Sentosa"
853 select BOOT_ELF32
854 select SIBYTE_SB1250
855 select SWAP_IO_SPACE
856 select SYS_HAS_CPU_SB1
857 select SYS_SUPPORTS_BIG_ENDIAN
858 select SYS_SUPPORTS_LITTLE_ENDIAN
859 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
860
861config SIBYTE_BIGSUR
862 bool "Sibyte BCM91480B-BigSur"
863 select BOOT_ELF32
864 select NR_CPUS_DEFAULT_4
865 select SIBYTE_BCM1x80
866 select SWAP_IO_SPACE
867 select SYS_HAS_CPU_SB1
868 select SYS_SUPPORTS_BIG_ENDIAN
869 select SYS_SUPPORTS_HIGHMEM
870 select SYS_SUPPORTS_LITTLE_ENDIAN
871 select ZONE_DMA32 if 64BIT
872 select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
873
874config SNI_RM
875 bool "SNI RM200/300/400"
876 select ARC_MEMORY
877 select ARC_PROMLIB
878 select FW_ARC if CPU_LITTLE_ENDIAN
879 select FW_ARC32 if CPU_LITTLE_ENDIAN
880 select FW_SNIPROM if CPU_BIG_ENDIAN
881 select ARCH_MAY_HAVE_PC_FDC
882 select ARCH_MIGHT_HAVE_PC_PARPORT
883 select ARCH_MIGHT_HAVE_PC_SERIO
884 select BOOT_ELF32
885 select CEVT_R4K
886 select CSRC_R4K
887 select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
888 select DMA_NONCOHERENT
889 select GENERIC_ISA_DMA
890 select HAVE_EISA
891 select HAVE_PCSPKR_PLATFORM
892 select HAVE_PCI
893 select IRQ_MIPS_CPU
894 select I8253
895 select I8259
896 select ISA
897 select MIPS_L1_CACHE_SHIFT_6
898 select SWAP_IO_SPACE if CPU_BIG_ENDIAN
899 select SYS_HAS_CPU_R4X00
900 select SYS_HAS_CPU_R5000
901 select SYS_HAS_CPU_R10000
902 select R5000_CPU_SCACHE
903 select SYS_HAS_EARLY_PRINTK
904 select SYS_SUPPORTS_32BIT_KERNEL
905 select SYS_SUPPORTS_64BIT_KERNEL
906 select SYS_SUPPORTS_BIG_ENDIAN
907 select SYS_SUPPORTS_HIGHMEM
908 select SYS_SUPPORTS_LITTLE_ENDIAN
909 select WAR_R4600_V2_HIT_CACHEOP
910 help
911 The SNI RM200/300/400 are MIPS-based machines manufactured by
912 Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
913 Technology and now in turn merged with Fujitsu. Say Y here to
914 support this machine type.
915
916config MACH_TX39XX
917 bool "Toshiba TX39 series based machines"
918
919config MACH_TX49XX
920 bool "Toshiba TX49 series based machines"
921 select WAR_TX49XX_ICACHE_INDEX_INV
922
923config MIKROTIK_RB532
924 bool "Mikrotik RB532 boards"
925 select CEVT_R4K
926 select CSRC_R4K
927 select DMA_NONCOHERENT
928 select HAVE_PCI
929 select IRQ_MIPS_CPU
930 select SYS_HAS_CPU_MIPS32_R1
931 select SYS_SUPPORTS_32BIT_KERNEL
932 select SYS_SUPPORTS_LITTLE_ENDIAN
933 select SWAP_IO_SPACE
934 select BOOT_RAW
935 select GPIOLIB
936 select MIPS_L1_CACHE_SHIFT_4
937 help
938 Support the Mikrotik(tm) RouterBoard 532 series,
939 based on the IDT RC32434 SoC.
940
941config CAVIUM_OCTEON_SOC
942 bool "Cavium Networks Octeon SoC based boards"
943 select CEVT_R4K
944 select ARCH_HAS_PHYS_TO_DMA
945 select HAVE_RAPIDIO
946 select PHYS_ADDR_T_64BIT
947 select SYS_SUPPORTS_64BIT_KERNEL
948 select SYS_SUPPORTS_BIG_ENDIAN
949 select EDAC_SUPPORT
950 select EDAC_ATOMIC_SCRUB
951 select SYS_SUPPORTS_LITTLE_ENDIAN
952 select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
953 select SYS_HAS_EARLY_PRINTK
954 select SYS_HAS_CPU_CAVIUM_OCTEON
955 select HAVE_PCI
956 select HAVE_PLAT_DELAY
957 select HAVE_PLAT_FW_INIT_CMDLINE
958 select HAVE_PLAT_MEMCPY
959 select ZONE_DMA32
960 select HOLES_IN_ZONE
961 select GPIOLIB
962 select USE_OF
963 select ARCH_SPARSEMEM_ENABLE
964 select SYS_SUPPORTS_SMP
965 select NR_CPUS_DEFAULT_64
966 select MIPS_NR_CPU_NR_MAP_1024
967 select BUILTIN_DTB
968 select MTD_COMPLEX_MAPPINGS
969 select SWIOTLB
970 select SYS_SUPPORTS_RELOCATABLE
971 help
972 This option supports all of the Octeon reference boards from Cavium
973 Networks. It builds a kernel that dynamically determines the Octeon
974 CPU type and supports all known board reference implementations.
975 Some of the supported boards are:
976 EBT3000
977 EBH3000
978 EBH3100
979 Thunder
980 Kodama
981 Hikari
982 Say Y here for most Octeon reference boards.
983
984config NLM_XLR_BOARD
985 bool "Netlogic XLR/XLS based systems"
986 select BOOT_ELF32
987 select NLM_COMMON
988 select SYS_HAS_CPU_XLR
989 select SYS_SUPPORTS_SMP
990 select HAVE_PCI
991 select SWAP_IO_SPACE
992 select SYS_SUPPORTS_32BIT_KERNEL
993 select SYS_SUPPORTS_64BIT_KERNEL
994 select PHYS_ADDR_T_64BIT
995 select SYS_SUPPORTS_BIG_ENDIAN
996 select SYS_SUPPORTS_HIGHMEM
997 select NR_CPUS_DEFAULT_32
998 select CEVT_R4K
999 select CSRC_R4K
1000 select IRQ_MIPS_CPU
1001 select ZONE_DMA32 if 64BIT
1002 select SYNC_R4K
1003 select SYS_HAS_EARLY_PRINTK
1004 select SYS_SUPPORTS_ZBOOT
1005 select SYS_SUPPORTS_ZBOOT_UART16550
1006 help
1007 Support for systems based on Netlogic XLR and XLS processors.
1008 Say Y here if you have a XLR or XLS based board.
1009
1010config NLM_XLP_BOARD
1011 bool "Netlogic XLP based systems"
1012 select BOOT_ELF32
1013 select NLM_COMMON
1014 select SYS_HAS_CPU_XLP
1015 select SYS_SUPPORTS_SMP
1016 select HAVE_PCI
1017 select SYS_SUPPORTS_32BIT_KERNEL
1018 select SYS_SUPPORTS_64BIT_KERNEL
1019 select PHYS_ADDR_T_64BIT
1020 select GPIOLIB
1021 select SYS_SUPPORTS_BIG_ENDIAN
1022 select SYS_SUPPORTS_LITTLE_ENDIAN
1023 select SYS_SUPPORTS_HIGHMEM
1024 select NR_CPUS_DEFAULT_32
1025 select CEVT_R4K
1026 select CSRC_R4K
1027 select IRQ_MIPS_CPU
1028 select ZONE_DMA32 if 64BIT
1029 select SYNC_R4K
1030 select SYS_HAS_EARLY_PRINTK
1031 select USE_OF
1032 select SYS_SUPPORTS_ZBOOT
1033 select SYS_SUPPORTS_ZBOOT_UART16550
1034 help
1035 This board is based on Netlogic XLP Processor.
1036 Say Y here if you have a XLP based board.
1037
1038endchoice
1039
1040source "arch/mips/alchemy/Kconfig"
1041source "arch/mips/ath25/Kconfig"
1042source "arch/mips/ath79/Kconfig"
1043source "arch/mips/bcm47xx/Kconfig"
1044source "arch/mips/bcm63xx/Kconfig"
1045source "arch/mips/bmips/Kconfig"
1046source "arch/mips/generic/Kconfig"
1047source "arch/mips/ingenic/Kconfig"
1048source "arch/mips/jazz/Kconfig"
1049source "arch/mips/lantiq/Kconfig"
1050source "arch/mips/pic32/Kconfig"
1051source "arch/mips/pistachio/Kconfig"
1052source "arch/mips/ralink/Kconfig"
1053source "arch/mips/sgi-ip27/Kconfig"
1054source "arch/mips/sibyte/Kconfig"
1055source "arch/mips/txx9/Kconfig"
1056source "arch/mips/vr41xx/Kconfig"
1057source "arch/mips/cavium-octeon/Kconfig"
1058source "arch/mips/loongson2ef/Kconfig"
1059source "arch/mips/loongson32/Kconfig"
1060source "arch/mips/loongson64/Kconfig"
1061source "arch/mips/netlogic/Kconfig"
1062
1063endmenu
1064
1065config GENERIC_HWEIGHT
1066 bool
1067 default y
1068
1069config GENERIC_CALIBRATE_DELAY
1070 bool
1071 default y
1072
1073config SCHED_OMIT_FRAME_POINTER
1074 bool
1075 default y
1076
1077#
1078# Select some configuration options automatically based on user selections.
1079#
1080config FW_ARC
1081 bool
1082
1083config ARCH_MAY_HAVE_PC_FDC
1084 bool
1085
1086config BOOT_RAW
1087 bool
1088
1089config CEVT_BCM1480
1090 bool
1091
1092config CEVT_DS1287
1093 bool
1094
1095config CEVT_GT641XX
1096 bool
1097
1098config CEVT_R4K
1099 bool
1100
1101config CEVT_SB1250
1102 bool
1103
1104config CEVT_TXX9
1105 bool
1106
1107config CSRC_BCM1480
1108 bool
1109
1110config CSRC_IOASIC
1111 bool
1112
1113config CSRC_R4K
1114 select CLOCKSOURCE_WATCHDOG if CPU_FREQ
1115 bool
1116
1117config CSRC_SB1250
1118 bool
1119
1120config MIPS_CLOCK_VSYSCALL
1121 def_bool CSRC_R4K || CLKSRC_MIPS_GIC
1122
1123config GPIO_TXX9
1124 select GPIOLIB
1125 bool
1126
1127config FW_CFE
1128 bool
1129
1130config ARCH_SUPPORTS_UPROBES
1131 bool
1132
1133config DMA_MAYBE_COHERENT
1134 select ARCH_HAS_DMA_COHERENCE_H
1135 select DMA_NONCOHERENT
1136 bool
1137
1138config DMA_PERDEV_COHERENT
1139 bool
1140 select ARCH_HAS_SETUP_DMA_OPS
1141 select DMA_NONCOHERENT
1142
1143config DMA_NONCOHERENT
1144 bool
1145 #
1146 # MIPS allows mixing "slightly different" Cacheability and Coherency
1147 # Attribute bits. It is believed that the uncached access through
1148 # KSEG1 and the implementation specific "uncached accelerated" used
1149 # by pgprot_writcombine can be mixed, and the latter sometimes provides
1150 # significant advantages.
1151 #
1152 select ARCH_HAS_DMA_WRITE_COMBINE
1153 select ARCH_HAS_DMA_PREP_COHERENT
1154 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
1155 select ARCH_HAS_DMA_SET_UNCACHED
1156 select DMA_NONCOHERENT_MMAP
1157 select NEED_DMA_MAP_STATE
1158
1159config SYS_HAS_EARLY_PRINTK
1160 bool
1161
1162config SYS_SUPPORTS_HOTPLUG_CPU
1163 bool
1164
1165config MIPS_BONITO64
1166 bool
1167
1168config MIPS_MSC
1169 bool
1170
1171config SYNC_R4K
1172 bool
1173
1174config NO_IOPORT_MAP
1175 def_bool n
1176
1177config GENERIC_CSUM
1178 def_bool CPU_NO_LOAD_STORE_LR
1179
1180config GENERIC_ISA_DMA
1181 bool
1182 select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
1183 select ISA_DMA_API
1184
1185config GENERIC_ISA_DMA_SUPPORT_BROKEN
1186 bool
1187 select GENERIC_ISA_DMA
1188
1189config HAVE_PLAT_DELAY
1190 bool
1191
1192config HAVE_PLAT_FW_INIT_CMDLINE
1193 bool
1194
1195config HAVE_PLAT_MEMCPY
1196 bool
1197
1198config ISA_DMA_API
1199 bool
1200
1201config SYS_SUPPORTS_RELOCATABLE
1202 bool
1203 help
1204 Selected if the platform supports relocating the kernel.
1205 The platform must provide plat_get_fdt() if it selects CONFIG_USE_OF
1206 to allow access to command line and entropy sources.
1207
1208config MIPS_CBPF_JIT
1209 def_bool y
1210 depends on BPF_JIT && HAVE_CBPF_JIT
1211
1212config MIPS_EBPF_JIT
1213 def_bool y
1214 depends on BPF_JIT && HAVE_EBPF_JIT
1215
1216
1217#
1218# Endianness selection. Sufficiently obscure so many users don't know what to
1219# answer,so we try hard to limit the available choices. Also the use of a
1220# choice statement should be more obvious to the user.
1221#
1222choice
1223 prompt "Endianness selection"
1224 help
1225 Some MIPS machines can be configured for either little or big endian
1226 byte order. These modes require different kernels and a different
1227 Linux distribution. In general there is one preferred byteorder for a
1228 particular system but some systems are just as commonly used in the
1229 one or the other endianness.
1230
1231config CPU_BIG_ENDIAN
1232 bool "Big endian"
1233 depends on SYS_SUPPORTS_BIG_ENDIAN
1234
1235config CPU_LITTLE_ENDIAN
1236 bool "Little endian"
1237 depends on SYS_SUPPORTS_LITTLE_ENDIAN
1238
1239endchoice
1240
1241config EXPORT_UASM
1242 bool
1243
1244config SYS_SUPPORTS_APM_EMULATION
1245 bool
1246
1247config SYS_SUPPORTS_BIG_ENDIAN
1248 bool
1249
1250config SYS_SUPPORTS_LITTLE_ENDIAN
1251 bool
1252
1253config SYS_SUPPORTS_HUGETLBFS
1254 bool
1255 depends on CPU_SUPPORTS_HUGEPAGES
1256 default y
1257
1258config MIPS_HUGE_TLB_SUPPORT
1259 def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
1260
1261config IRQ_CPU_RM7K
1262 bool
1263
1264config IRQ_MSP_SLP
1265 bool
1266
1267config IRQ_MSP_CIC
1268 bool
1269
1270config IRQ_TXX9
1271 bool
1272
1273config IRQ_GT641XX
1274 bool
1275
1276config PCI_GT64XXX_PCI0
1277 bool
1278
1279config PCI_XTALK_BRIDGE
1280 bool
1281
1282config NO_EXCEPT_FILL
1283 bool
1284
1285config MIPS_SPRAM
1286 bool
1287
1288config SWAP_IO_SPACE
1289 bool
1290
1291config SGI_HAS_INDYDOG
1292 bool
1293
1294config SGI_HAS_HAL2
1295 bool
1296
1297config SGI_HAS_SEEQ
1298 bool
1299
1300config SGI_HAS_WD93
1301 bool
1302
1303config SGI_HAS_ZILOG
1304 bool
1305
1306config SGI_HAS_I8042
1307 bool
1308
1309config DEFAULT_SGI_PARTITION
1310 bool
1311
1312config FW_ARC32
1313 bool
1314
1315config FW_SNIPROM
1316 bool
1317
1318config BOOT_ELF32
1319 bool
1320
1321config MIPS_L1_CACHE_SHIFT_4
1322 bool
1323
1324config MIPS_L1_CACHE_SHIFT_5
1325 bool
1326
1327config MIPS_L1_CACHE_SHIFT_6
1328 bool
1329
1330config MIPS_L1_CACHE_SHIFT_7
1331 bool
1332
1333config MIPS_L1_CACHE_SHIFT
1334 int
1335 default "7" if MIPS_L1_CACHE_SHIFT_7
1336 default "6" if MIPS_L1_CACHE_SHIFT_6
1337 default "5" if MIPS_L1_CACHE_SHIFT_5
1338 default "4" if MIPS_L1_CACHE_SHIFT_4
1339 default "5"
1340
1341config ARC_CMDLINE_ONLY
1342 bool
1343
1344config ARC_CONSOLE
1345 bool "ARC console support"
1346 depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
1347
1348config ARC_MEMORY
1349 bool
1350
1351config ARC_PROMLIB
1352 bool
1353
1354config FW_ARC64
1355 bool
1356
1357config BOOT_ELF64
1358 bool
1359
1360menu "CPU selection"
1361
1362choice
1363 prompt "CPU type"
1364 default CPU_R4X00
1365
1366config CPU_LOONGSON64
1367 bool "Loongson 64-bit CPU"
1368 depends on SYS_HAS_CPU_LOONGSON64
1369 select ARCH_HAS_PHYS_TO_DMA
1370 select CPU_MIPSR2
1371 select CPU_HAS_PREFETCH
1372 select CPU_SUPPORTS_64BIT_KERNEL
1373 select CPU_SUPPORTS_HIGHMEM
1374 select CPU_SUPPORTS_HUGEPAGES
1375 select CPU_SUPPORTS_MSA
1376 select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
1377 select CPU_MIPSR2_IRQ_VI
1378 select WEAK_ORDERING
1379 select WEAK_REORDERING_BEYOND_LLSC
1380 select MIPS_ASID_BITS_VARIABLE
1381 select MIPS_PGD_C0_CONTEXT
1382 select MIPS_L1_CACHE_SHIFT_6
1383 select MIPS_FP_SUPPORT
1384 select GPIOLIB
1385 select SWIOTLB
1386 select HAVE_KVM
1387 help
1388 The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
1389 cores implements the MIPS64R2 instruction set with many extensions,
1390 including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
1391 3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
1392 Loongson-2E/2F is not covered here and will be removed in future.
1393
1394config LOONGSON3_ENHANCEMENT
1395 bool "New Loongson-3 CPU Enhancements"
1396 default n
1397 depends on CPU_LOONGSON64
1398 help
1399 New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
1400 R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
1401 FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
1402 Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
1403 Fast TLB refill support, etc.
1404
1405 This option enable those enhancements which are not probed at run
1406 time. If you want a generic kernel to run on all Loongson 3 machines,
1407 please say 'N' here. If you want a high-performance kernel to run on
1408 new Loongson-3 machines only, please say 'Y' here.
1409
1410config CPU_LOONGSON3_WORKAROUNDS
1411 bool "Old Loongson-3 LLSC Workarounds"
1412 default y if SMP
1413 depends on CPU_LOONGSON64
1414 help
1415 Loongson-3 processors have the llsc issues which require workarounds.
1416 Without workarounds the system may hang unexpectedly.
1417
1418 Newer Loongson-3 will fix these issues and no workarounds are needed.
1419 The workarounds have no significant side effect on them but may
1420 decrease the performance of the system so this option should be
1421 disabled unless the kernel is intended to be run on old systems.
1422
1423 If unsure, please say Y.
1424
1425config CPU_LOONGSON3_CPUCFG_EMULATION
1426 bool "Emulate the CPUCFG instruction on older Loongson cores"
1427 default y
1428 depends on CPU_LOONGSON64
1429 help
1430 Loongson-3A R4 and newer have the CPUCFG instruction available for
1431 userland to query CPU capabilities, much like CPUID on x86. This
1432 option provides emulation of the instruction on older Loongson
1433 cores, back to Loongson-3A1000.
1434
1435 If unsure, please say Y.
1436
1437config CPU_LOONGSON2E
1438 bool "Loongson 2E"
1439 depends on SYS_HAS_CPU_LOONGSON2E
1440 select CPU_LOONGSON2EF
1441 help
1442 The Loongson 2E processor implements the MIPS III instruction set
1443 with many extensions.
1444
1445 It has an internal FPGA northbridge, which is compatible to
1446 bonito64.
1447
1448config CPU_LOONGSON2F
1449 bool "Loongson 2F"
1450 depends on SYS_HAS_CPU_LOONGSON2F
1451 select CPU_LOONGSON2EF
1452 select GPIOLIB
1453 help
1454 The Loongson 2F processor implements the MIPS III instruction set
1455 with many extensions.
1456
1457 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1458 have a similar programming interface with FPGA northbridge used in
1459 Loongson2E.
1460
1461config CPU_LOONGSON1B
1462 bool "Loongson 1B"
1463 depends on SYS_HAS_CPU_LOONGSON1B
1464 select CPU_LOONGSON32
1465 select LEDS_GPIO_REGISTER
1466 help
1467 The Loongson 1B is a 32-bit SoC, which implements the MIPS32
1468 Release 1 instruction set and part of the MIPS32 Release 2
1469 instruction set.
1470
1471config CPU_LOONGSON1C
1472 bool "Loongson 1C"
1473 depends on SYS_HAS_CPU_LOONGSON1C
1474 select CPU_LOONGSON32
1475 select LEDS_GPIO_REGISTER
1476 help
1477 The Loongson 1C is a 32-bit SoC, which implements the MIPS32
1478 Release 1 instruction set and part of the MIPS32 Release 2
1479 instruction set.
1480
1481config CPU_MIPS32_R1
1482 bool "MIPS32 Release 1"
1483 depends on SYS_HAS_CPU_MIPS32_R1
1484 select CPU_HAS_PREFETCH
1485 select CPU_SUPPORTS_32BIT_KERNEL
1486 select CPU_SUPPORTS_HIGHMEM
1487 help
1488 Choose this option to build a kernel for release 1 or later of the
1489 MIPS32 architecture. Most modern embedded systems with a 32-bit
1490 MIPS processor are based on a MIPS32 processor. If you know the
1491 specific type of processor in your system, choose those that one
1492 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1493 Release 2 of the MIPS32 architecture is available since several
1494 years so chances are you even have a MIPS32 Release 2 processor
1495 in which case you should choose CPU_MIPS32_R2 instead for better
1496 performance.
1497
1498config CPU_MIPS32_R2
1499 bool "MIPS32 Release 2"
1500 depends on SYS_HAS_CPU_MIPS32_R2
1501 select CPU_HAS_PREFETCH
1502 select CPU_SUPPORTS_32BIT_KERNEL
1503 select CPU_SUPPORTS_HIGHMEM
1504 select CPU_SUPPORTS_MSA
1505 select HAVE_KVM
1506 help
1507 Choose this option to build a kernel for release 2 or later of the
1508 MIPS32 architecture. Most modern embedded systems with a 32-bit
1509 MIPS processor are based on a MIPS32 processor. If you know the
1510 specific type of processor in your system, choose those that one
1511 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1512
1513config CPU_MIPS32_R5
1514 bool "MIPS32 Release 5"
1515 depends on SYS_HAS_CPU_MIPS32_R5
1516 select CPU_HAS_PREFETCH
1517 select CPU_SUPPORTS_32BIT_KERNEL
1518 select CPU_SUPPORTS_HIGHMEM
1519 select CPU_SUPPORTS_MSA
1520 select HAVE_KVM
1521 select MIPS_O32_FP64_SUPPORT
1522 help
1523 Choose this option to build a kernel for release 5 or later of the
1524 MIPS32 architecture. New MIPS processors, starting with the Warrior
1525 family, are based on a MIPS32r5 processor. If you own an older
1526 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1527
1528config CPU_MIPS32_R6
1529 bool "MIPS32 Release 6"
1530 depends on SYS_HAS_CPU_MIPS32_R6
1531 select CPU_HAS_PREFETCH
1532 select CPU_NO_LOAD_STORE_LR
1533 select CPU_SUPPORTS_32BIT_KERNEL
1534 select CPU_SUPPORTS_HIGHMEM
1535 select CPU_SUPPORTS_MSA
1536 select HAVE_KVM
1537 select MIPS_O32_FP64_SUPPORT
1538 help
1539 Choose this option to build a kernel for release 6 or later of the
1540 MIPS32 architecture. New MIPS processors, starting with the Warrior
1541 family, are based on a MIPS32r6 processor. If you own an older
1542 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1543
1544config CPU_MIPS64_R1
1545 bool "MIPS64 Release 1"
1546 depends on SYS_HAS_CPU_MIPS64_R1
1547 select CPU_HAS_PREFETCH
1548 select CPU_SUPPORTS_32BIT_KERNEL
1549 select CPU_SUPPORTS_64BIT_KERNEL
1550 select CPU_SUPPORTS_HIGHMEM
1551 select CPU_SUPPORTS_HUGEPAGES
1552 help
1553 Choose this option to build a kernel for release 1 or later of the
1554 MIPS64 architecture. Many modern embedded systems with a 64-bit
1555 MIPS processor are based on a MIPS64 processor. If you know the
1556 specific type of processor in your system, choose those that one
1557 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1558 Release 2 of the MIPS64 architecture is available since several
1559 years so chances are you even have a MIPS64 Release 2 processor
1560 in which case you should choose CPU_MIPS64_R2 instead for better
1561 performance.
1562
1563config CPU_MIPS64_R2
1564 bool "MIPS64 Release 2"
1565 depends on SYS_HAS_CPU_MIPS64_R2
1566 select CPU_HAS_PREFETCH
1567 select CPU_SUPPORTS_32BIT_KERNEL
1568 select CPU_SUPPORTS_64BIT_KERNEL
1569 select CPU_SUPPORTS_HIGHMEM
1570 select CPU_SUPPORTS_HUGEPAGES
1571 select CPU_SUPPORTS_MSA
1572 select HAVE_KVM
1573 help
1574 Choose this option to build a kernel for release 2 or later of the
1575 MIPS64 architecture. Many modern embedded systems with a 64-bit
1576 MIPS processor are based on a MIPS64 processor. If you know the
1577 specific type of processor in your system, choose those that one
1578 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1579
1580config CPU_MIPS64_R5
1581 bool "MIPS64 Release 5"
1582 depends on SYS_HAS_CPU_MIPS64_R5
1583 select CPU_HAS_PREFETCH
1584 select CPU_SUPPORTS_32BIT_KERNEL
1585 select CPU_SUPPORTS_64BIT_KERNEL
1586 select CPU_SUPPORTS_HIGHMEM
1587 select CPU_SUPPORTS_HUGEPAGES
1588 select CPU_SUPPORTS_MSA
1589 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1590 select HAVE_KVM
1591 help
1592 Choose this option to build a kernel for release 5 or later of the
1593 MIPS64 architecture. This is a intermediate MIPS architecture
1594 release partly implementing release 6 features. Though there is no
1595 any hardware known to be based on this release.
1596
1597config CPU_MIPS64_R6
1598 bool "MIPS64 Release 6"
1599 depends on SYS_HAS_CPU_MIPS64_R6
1600 select CPU_HAS_PREFETCH
1601 select CPU_NO_LOAD_STORE_LR
1602 select CPU_SUPPORTS_32BIT_KERNEL
1603 select CPU_SUPPORTS_64BIT_KERNEL
1604 select CPU_SUPPORTS_HIGHMEM
1605 select CPU_SUPPORTS_HUGEPAGES
1606 select CPU_SUPPORTS_MSA
1607 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
1608 select HAVE_KVM
1609 help
1610 Choose this option to build a kernel for release 6 or later of the
1611 MIPS64 architecture. New MIPS processors, starting with the Warrior
1612 family, are based on a MIPS64r6 processor. If you own an older
1613 processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1614
1615config CPU_P5600
1616 bool "MIPS Warrior P5600"
1617 depends on SYS_HAS_CPU_P5600
1618 select CPU_HAS_PREFETCH
1619 select CPU_SUPPORTS_32BIT_KERNEL
1620 select CPU_SUPPORTS_HIGHMEM
1621 select CPU_SUPPORTS_MSA
1622 select CPU_SUPPORTS_CPUFREQ
1623 select CPU_MIPSR2_IRQ_VI
1624 select CPU_MIPSR2_IRQ_EI
1625 select HAVE_KVM
1626 select MIPS_O32_FP64_SUPPORT
1627 help
1628 Choose this option to build a kernel for MIPS Warrior P5600 CPU.
1629 It's based on MIPS32r5 ISA with XPA, EVA, dual/quad issue exec pipes,
1630 MMU with two-levels TLB, UCA, MSA, MDU core level features and system
1631 level features like up to six P5600 calculation cores, CM2 with L2
1632 cache, IOCU/IOMMU (though might be unused depending on the system-
1633 specific IP core configuration), GIC, CPC, virtualisation module,
1634 eJTAG and PDtrace.
1635
1636config CPU_R3000
1637 bool "R3000"
1638 depends on SYS_HAS_CPU_R3000
1639 select CPU_HAS_WB
1640 select CPU_R3K_TLB
1641 select CPU_SUPPORTS_32BIT_KERNEL
1642 select CPU_SUPPORTS_HIGHMEM
1643 help
1644 Please make sure to pick the right CPU type. Linux/MIPS is not
1645 designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1646 *not* work on R4000 machines and vice versa. However, since most
1647 of the supported machines have an R4000 (or similar) CPU, R4x00
1648 might be a safe bet. If the resulting kernel does not work,
1649 try to recompile with R3000.
1650
1651config CPU_TX39XX
1652 bool "R39XX"
1653 depends on SYS_HAS_CPU_TX39XX
1654 select CPU_SUPPORTS_32BIT_KERNEL
1655 select CPU_R3K_TLB
1656
1657config CPU_VR41XX
1658 bool "R41xx"
1659 depends on SYS_HAS_CPU_VR41XX
1660 select CPU_SUPPORTS_32BIT_KERNEL
1661 select CPU_SUPPORTS_64BIT_KERNEL
1662 help
1663 The options selects support for the NEC VR4100 series of processors.
1664 Only choose this option if you have one of these processors as a
1665 kernel built with this option will not run on any other type of
1666 processor or vice versa.
1667
1668config CPU_R4X00
1669 bool "R4x00"
1670 depends on SYS_HAS_CPU_R4X00
1671 select CPU_SUPPORTS_32BIT_KERNEL
1672 select CPU_SUPPORTS_64BIT_KERNEL
1673 select CPU_SUPPORTS_HUGEPAGES
1674 help
1675 MIPS Technologies R4000-series processors other than 4300, including
1676 the R4000, R4400, R4600, and 4700.
1677
1678config CPU_TX49XX
1679 bool "R49XX"
1680 depends on SYS_HAS_CPU_TX49XX
1681 select CPU_HAS_PREFETCH
1682 select CPU_SUPPORTS_32BIT_KERNEL
1683 select CPU_SUPPORTS_64BIT_KERNEL
1684 select CPU_SUPPORTS_HUGEPAGES
1685
1686config CPU_R5000
1687 bool "R5000"
1688 depends on SYS_HAS_CPU_R5000
1689 select CPU_SUPPORTS_32BIT_KERNEL
1690 select CPU_SUPPORTS_64BIT_KERNEL
1691 select CPU_SUPPORTS_HUGEPAGES
1692 help
1693 MIPS Technologies R5000-series processors other than the Nevada.
1694
1695config CPU_R5500
1696 bool "R5500"
1697 depends on SYS_HAS_CPU_R5500
1698 select CPU_SUPPORTS_32BIT_KERNEL
1699 select CPU_SUPPORTS_64BIT_KERNEL
1700 select CPU_SUPPORTS_HUGEPAGES
1701 help
1702 NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1703 instruction set.
1704
1705config CPU_NEVADA
1706 bool "RM52xx"
1707 depends on SYS_HAS_CPU_NEVADA
1708 select CPU_SUPPORTS_32BIT_KERNEL
1709 select CPU_SUPPORTS_64BIT_KERNEL
1710 select CPU_SUPPORTS_HUGEPAGES
1711 help
1712 QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1713
1714config CPU_R10000
1715 bool "R10000"
1716 depends on SYS_HAS_CPU_R10000
1717 select CPU_HAS_PREFETCH
1718 select CPU_SUPPORTS_32BIT_KERNEL
1719 select CPU_SUPPORTS_64BIT_KERNEL
1720 select CPU_SUPPORTS_HIGHMEM
1721 select CPU_SUPPORTS_HUGEPAGES
1722 help
1723 MIPS Technologies R10000-series processors.
1724
1725config CPU_RM7000
1726 bool "RM7000"
1727 depends on SYS_HAS_CPU_RM7000
1728 select CPU_HAS_PREFETCH
1729 select CPU_SUPPORTS_32BIT_KERNEL
1730 select CPU_SUPPORTS_64BIT_KERNEL
1731 select CPU_SUPPORTS_HIGHMEM
1732 select CPU_SUPPORTS_HUGEPAGES
1733
1734config CPU_SB1
1735 bool "SB1"
1736 depends on SYS_HAS_CPU_SB1
1737 select CPU_SUPPORTS_32BIT_KERNEL
1738 select CPU_SUPPORTS_64BIT_KERNEL
1739 select CPU_SUPPORTS_HIGHMEM
1740 select CPU_SUPPORTS_HUGEPAGES
1741 select WEAK_ORDERING
1742
1743config CPU_CAVIUM_OCTEON
1744 bool "Cavium Octeon processor"
1745 depends on SYS_HAS_CPU_CAVIUM_OCTEON
1746 select CPU_HAS_PREFETCH
1747 select CPU_SUPPORTS_64BIT_KERNEL
1748 select WEAK_ORDERING
1749 select CPU_SUPPORTS_HIGHMEM
1750 select CPU_SUPPORTS_HUGEPAGES
1751 select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1752 select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1753 select MIPS_L1_CACHE_SHIFT_7
1754 select HAVE_KVM
1755 help
1756 The Cavium Octeon processor is a highly integrated chip containing
1757 many ethernet hardware widgets for networking tasks. The processor
1758 can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1759 Full details can be found at http://www.caviumnetworks.com.
1760
1761config CPU_BMIPS
1762 bool "Broadcom BMIPS"
1763 depends on SYS_HAS_CPU_BMIPS
1764 select CPU_MIPS32
1765 select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
1766 select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1767 select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1768 select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1769 select CPU_SUPPORTS_32BIT_KERNEL
1770 select DMA_NONCOHERENT
1771 select IRQ_MIPS_CPU
1772 select SWAP_IO_SPACE
1773 select WEAK_ORDERING
1774 select CPU_SUPPORTS_HIGHMEM
1775 select CPU_HAS_PREFETCH
1776 select CPU_SUPPORTS_CPUFREQ
1777 select MIPS_EXTERNAL_TIMER
1778 help
1779 Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
1780
1781config CPU_XLR
1782 bool "Netlogic XLR SoC"
1783 depends on SYS_HAS_CPU_XLR
1784 select CPU_SUPPORTS_32BIT_KERNEL
1785 select CPU_SUPPORTS_64BIT_KERNEL
1786 select CPU_SUPPORTS_HIGHMEM
1787 select CPU_SUPPORTS_HUGEPAGES
1788 select WEAK_ORDERING
1789 select WEAK_REORDERING_BEYOND_LLSC
1790 help
1791 Netlogic Microsystems XLR/XLS processors.
1792
1793config CPU_XLP
1794 bool "Netlogic XLP SoC"
1795 depends on SYS_HAS_CPU_XLP
1796 select CPU_SUPPORTS_32BIT_KERNEL
1797 select CPU_SUPPORTS_64BIT_KERNEL
1798 select CPU_SUPPORTS_HIGHMEM
1799 select WEAK_ORDERING
1800 select WEAK_REORDERING_BEYOND_LLSC
1801 select CPU_HAS_PREFETCH
1802 select CPU_MIPSR2
1803 select CPU_SUPPORTS_HUGEPAGES
1804 select MIPS_ASID_BITS_VARIABLE
1805 help
1806 Netlogic Microsystems XLP processors.
1807endchoice
1808
1809config CPU_MIPS32_3_5_FEATURES
1810 bool "MIPS32 Release 3.5 Features"
1811 depends on SYS_HAS_CPU_MIPS32_R3_5
1812 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_MIPS32_R6 || \
1813 CPU_P5600
1814 help
1815 Choose this option to build a kernel for release 2 or later of the
1816 MIPS32 architecture including features from the 3.5 release such as
1817 support for Enhanced Virtual Addressing (EVA).
1818
1819config CPU_MIPS32_3_5_EVA
1820 bool "Enhanced Virtual Addressing (EVA)"
1821 depends on CPU_MIPS32_3_5_FEATURES
1822 select EVA
1823 default y
1824 help
1825 Choose this option if you want to enable the Enhanced Virtual
1826 Addressing (EVA) on your MIPS32 core (such as proAptiv).
1827 One of its primary benefits is an increase in the maximum size
1828 of lowmem (up to 3GB). If unsure, say 'N' here.
1829
1830config CPU_MIPS32_R5_FEATURES
1831 bool "MIPS32 Release 5 Features"
1832 depends on SYS_HAS_CPU_MIPS32_R5
1833 depends on CPU_MIPS32_R2 || CPU_MIPS32_R5 || CPU_P5600
1834 help
1835 Choose this option to build a kernel for release 2 or later of the
1836 MIPS32 architecture including features from release 5 such as
1837 support for Extended Physical Addressing (XPA).
1838
1839config CPU_MIPS32_R5_XPA
1840 bool "Extended Physical Addressing (XPA)"
1841 depends on CPU_MIPS32_R5_FEATURES
1842 depends on !EVA
1843 depends on !PAGE_SIZE_4KB
1844 depends on SYS_SUPPORTS_HIGHMEM
1845 select XPA
1846 select HIGHMEM
1847 select PHYS_ADDR_T_64BIT
1848 default n
1849 help
1850 Choose this option if you want to enable the Extended Physical
1851 Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1852 benefit is to increase physical addressing equal to or greater
1853 than 40 bits. Note that this has the side effect of turning on
1854 64-bit addressing which in turn makes the PTEs 64-bit in size.
1855 If unsure, say 'N' here.
1856
1857if CPU_LOONGSON2F
1858config CPU_NOP_WORKAROUNDS
1859 bool
1860
1861config CPU_JUMP_WORKAROUNDS
1862 bool
1863
1864config CPU_LOONGSON2F_WORKAROUNDS
1865 bool "Loongson 2F Workarounds"
1866 default y
1867 select CPU_NOP_WORKAROUNDS
1868 select CPU_JUMP_WORKAROUNDS
1869 help
1870 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1871 require workarounds. Without workarounds the system may hang
1872 unexpectedly. For more information please refer to the gas
1873 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1874
1875 Loongson 2F03 and later have fixed these issues and no workarounds
1876 are needed. The workarounds have no significant side effect on them
1877 but may decrease the performance of the system so this option should
1878 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1879 systems.
1880
1881 If unsure, please say Y.
1882endif # CPU_LOONGSON2F
1883
1884config SYS_SUPPORTS_ZBOOT
1885 bool
1886 select HAVE_KERNEL_GZIP
1887 select HAVE_KERNEL_BZIP2
1888 select HAVE_KERNEL_LZ4
1889 select HAVE_KERNEL_LZMA
1890 select HAVE_KERNEL_LZO
1891 select HAVE_KERNEL_XZ
1892 select HAVE_KERNEL_ZSTD
1893
1894config SYS_SUPPORTS_ZBOOT_UART16550
1895 bool
1896 select SYS_SUPPORTS_ZBOOT
1897
1898config SYS_SUPPORTS_ZBOOT_UART_PROM
1899 bool
1900 select SYS_SUPPORTS_ZBOOT
1901
1902config CPU_LOONGSON2EF
1903 bool
1904 select CPU_SUPPORTS_32BIT_KERNEL
1905 select CPU_SUPPORTS_64BIT_KERNEL
1906 select CPU_SUPPORTS_HIGHMEM
1907 select CPU_SUPPORTS_HUGEPAGES
1908 select ARCH_HAS_PHYS_TO_DMA
1909
1910config CPU_LOONGSON32
1911 bool
1912 select CPU_MIPS32
1913 select CPU_MIPSR2
1914 select CPU_HAS_PREFETCH
1915 select CPU_SUPPORTS_32BIT_KERNEL
1916 select CPU_SUPPORTS_HIGHMEM
1917 select CPU_SUPPORTS_CPUFREQ
1918
1919config CPU_BMIPS32_3300
1920 select SMP_UP if SMP
1921 bool
1922
1923config CPU_BMIPS4350
1924 bool
1925 select SYS_SUPPORTS_SMP
1926 select SYS_SUPPORTS_HOTPLUG_CPU
1927
1928config CPU_BMIPS4380
1929 bool
1930 select MIPS_L1_CACHE_SHIFT_6
1931 select SYS_SUPPORTS_SMP
1932 select SYS_SUPPORTS_HOTPLUG_CPU
1933 select CPU_HAS_RIXI
1934
1935config CPU_BMIPS5000
1936 bool
1937 select MIPS_CPU_SCACHE
1938 select MIPS_L1_CACHE_SHIFT_7
1939 select SYS_SUPPORTS_SMP
1940 select SYS_SUPPORTS_HOTPLUG_CPU
1941 select CPU_HAS_RIXI
1942
1943config SYS_HAS_CPU_LOONGSON64
1944 bool
1945 select CPU_SUPPORTS_CPUFREQ
1946 select CPU_HAS_RIXI
1947
1948config SYS_HAS_CPU_LOONGSON2E
1949 bool
1950
1951config SYS_HAS_CPU_LOONGSON2F
1952 bool
1953 select CPU_SUPPORTS_CPUFREQ
1954 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1955
1956config SYS_HAS_CPU_LOONGSON1B
1957 bool
1958
1959config SYS_HAS_CPU_LOONGSON1C
1960 bool
1961
1962config SYS_HAS_CPU_MIPS32_R1
1963 bool
1964
1965config SYS_HAS_CPU_MIPS32_R2
1966 bool
1967
1968config SYS_HAS_CPU_MIPS32_R3_5
1969 bool
1970
1971config SYS_HAS_CPU_MIPS32_R5
1972 bool
1973 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1974
1975config SYS_HAS_CPU_MIPS32_R6
1976 bool
1977 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1978
1979config SYS_HAS_CPU_MIPS64_R1
1980 bool
1981
1982config SYS_HAS_CPU_MIPS64_R2
1983 bool
1984
1985config SYS_HAS_CPU_MIPS64_R5
1986 bool
1987 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1988
1989config SYS_HAS_CPU_MIPS64_R6
1990 bool
1991 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1992
1993config SYS_HAS_CPU_P5600
1994 bool
1995 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
1996
1997config SYS_HAS_CPU_R3000
1998 bool
1999
2000config SYS_HAS_CPU_TX39XX
2001 bool
2002
2003config SYS_HAS_CPU_VR41XX
2004 bool
2005
2006config SYS_HAS_CPU_R4X00
2007 bool
2008
2009config SYS_HAS_CPU_TX49XX
2010 bool
2011
2012config SYS_HAS_CPU_R5000
2013 bool
2014
2015config SYS_HAS_CPU_R5500
2016 bool
2017
2018config SYS_HAS_CPU_NEVADA
2019 bool
2020
2021config SYS_HAS_CPU_R10000
2022 bool
2023 select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
2024
2025config SYS_HAS_CPU_RM7000
2026 bool
2027
2028config SYS_HAS_CPU_SB1
2029 bool
2030
2031config SYS_HAS_CPU_CAVIUM_OCTEON
2032 bool
2033
2034config SYS_HAS_CPU_BMIPS
2035 bool
2036
2037config SYS_HAS_CPU_BMIPS32_3300
2038 bool
2039 select SYS_HAS_CPU_BMIPS
2040
2041config SYS_HAS_CPU_BMIPS4350
2042 bool
2043 select SYS_HAS_CPU_BMIPS
2044
2045config SYS_HAS_CPU_BMIPS4380
2046 bool
2047 select SYS_HAS_CPU_BMIPS
2048
2049config SYS_HAS_CPU_BMIPS5000
2050 bool
2051 select SYS_HAS_CPU_BMIPS
2052 select ARCH_HAS_SYNC_DMA_FOR_CPU
2053
2054config SYS_HAS_CPU_XLR
2055 bool
2056
2057config SYS_HAS_CPU_XLP
2058 bool
2059
2060#
2061# CPU may reorder R->R, R->W, W->R, W->W
2062# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
2063#
2064config WEAK_ORDERING
2065 bool
2066
2067#
2068# CPU may reorder reads and writes beyond LL/SC
2069# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
2070#
2071config WEAK_REORDERING_BEYOND_LLSC
2072 bool
2073endmenu
2074
2075#
2076# These two indicate any level of the MIPS32 and MIPS64 architecture
2077#
2078config CPU_MIPS32
2079 bool
2080 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R5 || \
2081 CPU_MIPS32_R6 || CPU_P5600
2082
2083config CPU_MIPS64
2084 bool
2085 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R5 || \
2086 CPU_MIPS64_R6
2087
2088#
2089# These indicate the revision of the architecture
2090#
2091config CPU_MIPSR1
2092 bool
2093 default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
2094
2095config CPU_MIPSR2
2096 bool
2097 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
2098 select CPU_HAS_RIXI
2099 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2100 select MIPS_SPRAM
2101
2102config CPU_MIPSR5
2103 bool
2104 default y if CPU_MIPS32_R5 || CPU_MIPS64_R5 || CPU_P5600
2105 select CPU_HAS_RIXI
2106 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2107 select MIPS_SPRAM
2108
2109config CPU_MIPSR6
2110 bool
2111 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
2112 select CPU_HAS_RIXI
2113 select CPU_HAS_DIEI if !CPU_DIEI_BROKEN
2114 select HAVE_ARCH_BITREVERSE
2115 select MIPS_ASID_BITS_VARIABLE
2116 select MIPS_CRC_SUPPORT
2117 select MIPS_SPRAM
2118
2119config TARGET_ISA_REV
2120 int
2121 default 1 if CPU_MIPSR1
2122 default 2 if CPU_MIPSR2
2123 default 5 if CPU_MIPSR5
2124 default 6 if CPU_MIPSR6
2125 default 0
2126 help
2127 Reflects the ISA revision being targeted by the kernel build. This
2128 is effectively the Kconfig equivalent of MIPS_ISA_REV.
2129
2130config EVA
2131 bool
2132
2133config XPA
2134 bool
2135
2136config SYS_SUPPORTS_32BIT_KERNEL
2137 bool
2138config SYS_SUPPORTS_64BIT_KERNEL
2139 bool
2140config CPU_SUPPORTS_32BIT_KERNEL
2141 bool
2142config CPU_SUPPORTS_64BIT_KERNEL
2143 bool
2144config CPU_SUPPORTS_CPUFREQ
2145 bool
2146config CPU_SUPPORTS_ADDRWINCFG
2147 bool
2148config CPU_SUPPORTS_HUGEPAGES
2149 bool
2150 depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
2151config MIPS_PGD_C0_CONTEXT
2152 bool
2153 default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
2154
2155#
2156# Set to y for ptrace access to watch registers.
2157#
2158config HARDWARE_WATCHPOINTS
2159 bool
2160 default y if CPU_MIPSR1 || CPU_MIPSR2 || CPU_MIPSR6
2161
2162menu "Kernel type"
2163
2164choice
2165 prompt "Kernel code model"
2166 help
2167 You should only select this option if you have a workload that
2168 actually benefits from 64-bit processing or if your machine has
2169 large memory. You will only be presented a single option in this
2170 menu if your system does not support both 32-bit and 64-bit kernels.
2171
2172config 32BIT
2173 bool "32-bit kernel"
2174 depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
2175 select TRAD_SIGNALS
2176 help
2177 Select this option if you want to build a 32-bit kernel.
2178
2179config 64BIT
2180 bool "64-bit kernel"
2181 depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
2182 help
2183 Select this option if you want to build a 64-bit kernel.
2184
2185endchoice
2186
2187config KVM_GUEST
2188 bool "KVM Guest Kernel"
2189 depends on CPU_MIPS32_R2
2190 depends on BROKEN_ON_SMP
2191 help
2192 Select this option if building a guest kernel for KVM (Trap & Emulate)
2193 mode.
2194
2195config KVM_GUEST_TIMER_FREQ
2196 int "Count/Compare Timer Frequency (MHz)"
2197 depends on KVM_GUEST
2198 default 100
2199 help
2200 Set this to non-zero if building a guest kernel for KVM to skip RTC
2201 emulation when determining guest CPU Frequency. Instead, the guest's
2202 timer frequency is specified directly.
2203
2204config MIPS_VA_BITS_48
2205 bool "48 bits virtual memory"
2206 depends on 64BIT
2207 help
2208 Support a maximum at least 48 bits of application virtual
2209 memory. Default is 40 bits or less, depending on the CPU.
2210 For page sizes 16k and above, this option results in a small
2211 memory overhead for page tables. For 4k page size, a fourth
2212 level of page tables is added which imposes both a memory
2213 overhead as well as slower TLB fault handling.
2214
2215 If unsure, say N.
2216
2217choice
2218 prompt "Kernel page size"
2219 default PAGE_SIZE_4KB
2220
2221config PAGE_SIZE_4KB
2222 bool "4kB"
2223 depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
2224 help
2225 This option select the standard 4kB Linux page size. On some
2226 R3000-family processors this is the only available page size. Using
2227 4kB page size will minimize memory consumption and is therefore
2228 recommended for low memory systems.
2229
2230config PAGE_SIZE_8KB
2231 bool "8kB"
2232 depends on CPU_CAVIUM_OCTEON
2233 depends on !MIPS_VA_BITS_48
2234 help
2235 Using 8kB page size will result in higher performance kernel at
2236 the price of higher memory consumption. This option is available
2237 only on cnMIPS processors. Note that you will need a suitable Linux
2238 distribution to support this.
2239
2240config PAGE_SIZE_16KB
2241 bool "16kB"
2242 depends on !CPU_R3000 && !CPU_TX39XX
2243 help
2244 Using 16kB page size will result in higher performance kernel at
2245 the price of higher memory consumption. This option is available on
2246 all non-R3000 family processors. Note that you will need a suitable
2247 Linux distribution to support this.
2248
2249config PAGE_SIZE_32KB
2250 bool "32kB"
2251 depends on CPU_CAVIUM_OCTEON
2252 depends on !MIPS_VA_BITS_48
2253 help
2254 Using 32kB page size will result in higher performance kernel at
2255 the price of higher memory consumption. This option is available
2256 only on cnMIPS cores. Note that you will need a suitable Linux
2257 distribution to support this.
2258
2259config PAGE_SIZE_64KB
2260 bool "64kB"
2261 depends on !CPU_R3000 && !CPU_TX39XX
2262 help
2263 Using 64kB page size will result in higher performance kernel at
2264 the price of higher memory consumption. This option is available on
2265 all non-R3000 family processor. Not that at the time of this
2266 writing this option is still high experimental.
2267
2268endchoice
2269
2270config FORCE_MAX_ZONEORDER
2271 int "Maximum zone order"
2272 range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2273 default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2274 range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2275 default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2276 range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2277 default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2278 range 0 64
2279 default "11"
2280 help
2281 The kernel memory allocator divides physically contiguous memory
2282 blocks into "zones", where each zone is a power of two number of
2283 pages. This option selects the largest power of two that the kernel
2284 keeps in the memory allocator. If you need to allocate very large
2285 blocks of physically contiguous memory, then you may need to
2286 increase this value.
2287
2288 This config option is actually maximum order plus one. For example,
2289 a value of 11 means that the largest free memory block is 2^10 pages.
2290
2291 The page size is not necessarily 4KB. Keep this in mind
2292 when choosing a value for this option.
2293
2294config BOARD_SCACHE
2295 bool
2296
2297config IP22_CPU_SCACHE
2298 bool
2299 select BOARD_SCACHE
2300
2301#
2302# Support for a MIPS32 / MIPS64 style S-caches
2303#
2304config MIPS_CPU_SCACHE
2305 bool
2306 select BOARD_SCACHE
2307
2308config R5000_CPU_SCACHE
2309 bool
2310 select BOARD_SCACHE
2311
2312config RM7000_CPU_SCACHE
2313 bool
2314 select BOARD_SCACHE
2315
2316config SIBYTE_DMA_PAGEOPS
2317 bool "Use DMA to clear/copy pages"
2318 depends on CPU_SB1
2319 help
2320 Instead of using the CPU to zero and copy pages, use a Data Mover
2321 channel. These DMA channels are otherwise unused by the standard
2322 SiByte Linux port. Seems to give a small performance benefit.
2323
2324config CPU_HAS_PREFETCH
2325 bool
2326
2327config CPU_GENERIC_DUMP_TLB
2328 bool
2329 default y if !(CPU_R3000 || CPU_TX39XX)
2330
2331config MIPS_FP_SUPPORT
2332 bool "Floating Point support" if EXPERT
2333 default y
2334 help
2335 Select y to include support for floating point in the kernel
2336 including initialization of FPU hardware, FP context save & restore
2337 and emulation of an FPU where necessary. Without this support any
2338 userland program attempting to use floating point instructions will
2339 receive a SIGILL.
2340
2341 If you know that your userland will not attempt to use floating point
2342 instructions then you can say n here to shrink the kernel a little.
2343
2344 If unsure, say y.
2345
2346config CPU_R2300_FPU
2347 bool
2348 depends on MIPS_FP_SUPPORT
2349 default y if CPU_R3000 || CPU_TX39XX
2350
2351config CPU_R3K_TLB
2352 bool
2353
2354config CPU_R4K_FPU
2355 bool
2356 depends on MIPS_FP_SUPPORT
2357 default y if !CPU_R2300_FPU
2358
2359config CPU_R4K_CACHE_TLB
2360 bool
2361 default y if !(CPU_R3K_TLB || CPU_SB1 || CPU_CAVIUM_OCTEON)
2362
2363config MIPS_MT_SMP
2364 bool "MIPS MT SMP support (1 TC on each available VPE)"
2365 default y
2366 depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
2367 select CPU_MIPSR2_IRQ_VI
2368 select CPU_MIPSR2_IRQ_EI
2369 select SYNC_R4K
2370 select MIPS_MT
2371 select SMP
2372 select SMP_UP
2373 select SYS_SUPPORTS_SMP
2374 select SYS_SUPPORTS_SCHED_SMT
2375 select MIPS_PERF_SHARED_TC_COUNTERS
2376 help
2377 This is a kernel model which is known as SMVP. This is supported
2378 on cores with the MT ASE and uses the available VPEs to implement
2379 virtual processors which supports SMP. This is equivalent to the
2380 Intel Hyperthreading feature. For further information go to
2381 <http://www.imgtec.com/mips/mips-multithreading.asp>.
2382
2383config MIPS_MT
2384 bool
2385
2386config SCHED_SMT
2387 bool "SMT (multithreading) scheduler support"
2388 depends on SYS_SUPPORTS_SCHED_SMT
2389 default n
2390 help
2391 SMT scheduler support improves the CPU scheduler's decision making
2392 when dealing with MIPS MT enabled cores at a cost of slightly
2393 increased overhead in some places. If unsure say N here.
2394
2395config SYS_SUPPORTS_SCHED_SMT
2396 bool
2397
2398config SYS_SUPPORTS_MULTITHREADING
2399 bool
2400
2401config MIPS_MT_FPAFF
2402 bool "Dynamic FPU affinity for FP-intensive threads"
2403 default y
2404 depends on MIPS_MT_SMP
2405
2406config MIPSR2_TO_R6_EMULATOR
2407 bool "MIPS R2-to-R6 emulator"
2408 depends on CPU_MIPSR6
2409 depends on MIPS_FP_SUPPORT
2410 default y
2411 help
2412 Choose this option if you want to run non-R6 MIPS userland code.
2413 Even if you say 'Y' here, the emulator will still be disabled by
2414 default. You can enable it using the 'mipsr2emu' kernel option.
2415 The only reason this is a build-time option is to save ~14K from the
2416 final kernel image.
2417
2418config SYS_SUPPORTS_VPE_LOADER
2419 bool
2420 depends on SYS_SUPPORTS_MULTITHREADING
2421 help
2422 Indicates that the platform supports the VPE loader, and provides
2423 physical_memsize.
2424
2425config MIPS_VPE_LOADER
2426 bool "VPE loader support."
2427 depends on SYS_SUPPORTS_VPE_LOADER && MODULES
2428 select CPU_MIPSR2_IRQ_VI
2429 select CPU_MIPSR2_IRQ_EI
2430 select MIPS_MT
2431 help
2432 Includes a loader for loading an elf relocatable object
2433 onto another VPE and running it.
2434
2435config MIPS_VPE_LOADER_CMP
2436 bool
2437 default "y"
2438 depends on MIPS_VPE_LOADER && MIPS_CMP
2439
2440config MIPS_VPE_LOADER_MT
2441 bool
2442 default "y"
2443 depends on MIPS_VPE_LOADER && !MIPS_CMP
2444
2445config MIPS_VPE_LOADER_TOM
2446 bool "Load VPE program into memory hidden from linux"
2447 depends on MIPS_VPE_LOADER
2448 default y
2449 help
2450 The loader can use memory that is present but has been hidden from
2451 Linux using the kernel command line option "mem=xxMB". It's up to
2452 you to ensure the amount you put in the option and the space your
2453 program requires is less or equal to the amount physically present.
2454
2455config MIPS_VPE_APSP_API
2456 bool "Enable support for AP/SP API (RTLX)"
2457 depends on MIPS_VPE_LOADER
2458
2459config MIPS_VPE_APSP_API_CMP
2460 bool
2461 default "y"
2462 depends on MIPS_VPE_APSP_API && MIPS_CMP
2463
2464config MIPS_VPE_APSP_API_MT
2465 bool
2466 default "y"
2467 depends on MIPS_VPE_APSP_API && !MIPS_CMP
2468
2469config MIPS_CMP
2470 bool "MIPS CMP framework support (DEPRECATED)"
2471 depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
2472 select SMP
2473 select SYNC_R4K
2474 select SYS_SUPPORTS_SMP
2475 select WEAK_ORDERING
2476 default n
2477 help
2478 Select this if you are using a bootloader which implements the "CMP
2479 framework" protocol (ie. YAMON) and want your kernel to make use of
2480 its ability to start secondary CPUs.
2481
2482 Unless you have a specific need, you should use CONFIG_MIPS_CPS
2483 instead of this.
2484
2485config MIPS_CPS
2486 bool "MIPS Coherent Processing System support"
2487 depends on SYS_SUPPORTS_MIPS_CPS
2488 select MIPS_CM
2489 select MIPS_CPS_PM if HOTPLUG_CPU
2490 select SMP
2491 select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
2492 select SYS_SUPPORTS_HOTPLUG_CPU
2493 select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
2494 select SYS_SUPPORTS_SMP
2495 select WEAK_ORDERING
2496 help
2497 Select this if you wish to run an SMP kernel across multiple cores
2498 within a MIPS Coherent Processing System. When this option is
2499 enabled the kernel will probe for other cores and boot them with
2500 no external assistance. It is safe to enable this when hardware
2501 support is unavailable.
2502
2503config MIPS_CPS_PM
2504 depends on MIPS_CPS
2505 bool
2506
2507config MIPS_CM
2508 bool
2509 select MIPS_CPC
2510
2511config MIPS_CPC
2512 bool
2513
2514config SB1_PASS_2_WORKAROUNDS
2515 bool
2516 depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2517 default y
2518
2519config SB1_PASS_2_1_WORKAROUNDS
2520 bool
2521 depends on CPU_SB1 && CPU_SB1_PASS_2
2522 default y
2523
2524choice
2525 prompt "SmartMIPS or microMIPS ASE support"
2526
2527config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2528 bool "None"
2529 help
2530 Select this if you want neither microMIPS nor SmartMIPS support
2531
2532config CPU_HAS_SMARTMIPS
2533 depends on SYS_SUPPORTS_SMARTMIPS
2534 bool "SmartMIPS"
2535 help
2536 SmartMIPS is a extension of the MIPS32 architecture aimed at
2537 increased security at both hardware and software level for
2538 smartcards. Enabling this option will allow proper use of the
2539 SmartMIPS instructions by Linux applications. However a kernel with
2540 this option will not work on a MIPS core without SmartMIPS core. If
2541 you don't know you probably don't have SmartMIPS and should say N
2542 here.
2543
2544config CPU_MICROMIPS
2545 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
2546 bool "microMIPS"
2547 help
2548 When this option is enabled the kernel will be built using the
2549 microMIPS ISA
2550
2551endchoice
2552
2553config CPU_HAS_MSA
2554 bool "Support for the MIPS SIMD Architecture"
2555 depends on CPU_SUPPORTS_MSA
2556 depends on MIPS_FP_SUPPORT
2557 depends on 64BIT || MIPS_O32_FP64_SUPPORT
2558 help
2559 MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2560 and a set of SIMD instructions to operate on them. When this option
2561 is enabled the kernel will support allocating & switching MSA
2562 vector register contexts. If you know that your kernel will only be
2563 running on CPUs which do not support MSA or that your userland will
2564 not be making use of it then you may wish to say N here to reduce
2565 the size & complexity of your kernel.
2566
2567 If unsure, say Y.
2568
2569config CPU_HAS_WB
2570 bool
2571
2572config XKS01
2573 bool
2574
2575config CPU_HAS_DIEI
2576 depends on !CPU_DIEI_BROKEN
2577 bool
2578
2579config CPU_DIEI_BROKEN
2580 bool
2581
2582config CPU_HAS_RIXI
2583 bool
2584
2585config CPU_NO_LOAD_STORE_LR
2586 bool
2587 help
2588 CPU lacks support for unaligned load and store instructions:
2589 LWL, LWR, SWL, SWR (Load/store word left/right).
2590 LDL, LDR, SDL, SDR (Load/store doubleword left/right, for 64bit
2591 systems).
2592
2593#
2594# Vectored interrupt mode is an R2 feature
2595#
2596config CPU_MIPSR2_IRQ_VI
2597 bool
2598
2599#
2600# Extended interrupt mode is an R2 feature
2601#
2602config CPU_MIPSR2_IRQ_EI
2603 bool
2604
2605config CPU_HAS_SYNC
2606 bool
2607 depends on !CPU_R3000
2608 default y
2609
2610#
2611# CPU non-features
2612#
2613config CPU_DADDI_WORKAROUNDS
2614 bool
2615
2616config CPU_R4000_WORKAROUNDS
2617 bool
2618 select CPU_R4400_WORKAROUNDS
2619
2620config CPU_R4400_WORKAROUNDS
2621 bool
2622
2623config CPU_R4X00_BUGS64
2624 bool
2625 default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
2626
2627config MIPS_ASID_SHIFT
2628 int
2629 default 6 if CPU_R3000 || CPU_TX39XX
2630 default 0
2631
2632config MIPS_ASID_BITS
2633 int
2634 default 0 if MIPS_ASID_BITS_VARIABLE
2635 default 6 if CPU_R3000 || CPU_TX39XX
2636 default 8
2637
2638config MIPS_ASID_BITS_VARIABLE
2639 bool
2640
2641config MIPS_CRC_SUPPORT
2642 bool
2643
2644# R4600 erratum. Due to the lack of errata information the exact
2645# technical details aren't known. I've experimentally found that disabling
2646# interrupts during indexed I-cache flushes seems to be sufficient to deal
2647# with the issue.
2648config WAR_R4600_V1_INDEX_ICACHEOP
2649 bool
2650
2651# Pleasures of the R4600 V1.x. Cite from the IDT R4600 V1.7 errata:
2652#
2653# 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
2654# Hit_Invalidate_D and Create_Dirty_Excl_D should only be
2655# executed if there is no other dcache activity. If the dcache is
2656# accessed for another instruction immeidately preceding when these
2657# cache instructions are executing, it is possible that the dcache
2658# tag match outputs used by these cache instructions will be
2659# incorrect. These cache instructions should be preceded by at least
2660# four instructions that are not any kind of load or store
2661# instruction.
2662#
2663# This is not allowed: lw
2664# nop
2665# nop
2666# nop
2667# cache Hit_Writeback_Invalidate_D
2668#
2669# This is allowed: lw
2670# nop
2671# nop
2672# nop
2673# nop
2674# cache Hit_Writeback_Invalidate_D
2675config WAR_R4600_V1_HIT_CACHEOP
2676 bool
2677
2678# Writeback and invalidate the primary cache dcache before DMA.
2679#
2680# R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
2681# Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
2682# operate correctly if the internal data cache refill buffer is empty. These
2683# CACHE instructions should be separated from any potential data cache miss
2684# by a load instruction to an uncached address to empty the response buffer."
2685# (Revision 2.0 device errata from IDT available on https://www.idt.com/
2686# in .pdf format.)
2687config WAR_R4600_V2_HIT_CACHEOP
2688 bool
2689
2690# From TX49/H2 manual: "If the instruction (i.e. CACHE) is issued for
2691# the line which this instruction itself exists, the following
2692# operation is not guaranteed."
2693#
2694# Workaround: do two phase flushing for Index_Invalidate_I
2695config WAR_TX49XX_ICACHE_INDEX_INV
2696 bool
2697
2698# The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
2699# opposes it being called that) where invalid instructions in the same
2700# I-cache line worth of instructions being fetched may case spurious
2701# exceptions.
2702config WAR_ICACHE_REFILLS
2703 bool
2704
2705# On the R10000 up to version 2.6 (not sure about 2.7) there is a bug that
2706# may cause ll / sc and lld / scd sequences to execute non-atomically.
2707config WAR_R10000_LLSC
2708 bool
2709
2710# 34K core erratum: "Problems Executing the TLBR Instruction"
2711config WAR_MIPS34K_MISSED_ITLB
2712 bool
2713
2714#
2715# - Highmem only makes sense for the 32-bit kernel.
2716# - The current highmem code will only work properly on physically indexed
2717# caches such as R3000, SB1, R7000 or those that look like they're virtually
2718# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
2719# moment we protect the user and offer the highmem option only on machines
2720# where it's known to be safe. This will not offer highmem on a few systems
2721# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2722# indexed CPUs but we're playing safe.
2723# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2724# know they might have memory configurations that could make use of highmem
2725# support.
2726#
2727config HIGHMEM
2728 bool "High Memory Support"
2729 depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
2730
2731config CPU_SUPPORTS_HIGHMEM
2732 bool
2733
2734config SYS_SUPPORTS_HIGHMEM
2735 bool
2736
2737config SYS_SUPPORTS_SMARTMIPS
2738 bool
2739
2740config SYS_SUPPORTS_MICROMIPS
2741 bool
2742
2743config SYS_SUPPORTS_MIPS16
2744 bool
2745 help
2746 This option must be set if a kernel might be executed on a MIPS16-
2747 enabled CPU even if MIPS16 is not actually being used. In other
2748 words, it makes the kernel MIPS16-tolerant.
2749
2750config CPU_SUPPORTS_MSA
2751 bool
2752
2753config ARCH_FLATMEM_ENABLE
2754 def_bool y
2755 depends on !NUMA && !CPU_LOONGSON2EF
2756
2757config ARCH_SPARSEMEM_ENABLE
2758 bool
2759 select SPARSEMEM_STATIC if !SGI_IP27
2760
2761config NUMA
2762 bool "NUMA Support"
2763 depends on SYS_SUPPORTS_NUMA
2764 help
2765 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2766 Access). This option improves performance on systems with more
2767 than two nodes; on two node systems it is generally better to
2768 leave it disabled; on single node systems leave this option
2769 disabled.
2770
2771config SYS_SUPPORTS_NUMA
2772 bool
2773
2774config HAVE_SETUP_PER_CPU_AREA
2775 def_bool y
2776 depends on NUMA
2777
2778config NEED_PER_CPU_EMBED_FIRST_CHUNK
2779 def_bool y
2780 depends on NUMA
2781
2782config RELOCATABLE
2783 bool "Relocatable kernel"
2784 depends on SYS_SUPPORTS_RELOCATABLE
2785 depends on CPU_MIPS32_R2 || CPU_MIPS64_R2 || \
2786 CPU_MIPS32_R5 || CPU_MIPS64_R5 || \
2787 CPU_MIPS32_R6 || CPU_MIPS64_R6 || \
2788 CPU_P5600 || CAVIUM_OCTEON_SOC
2789 help
2790 This builds a kernel image that retains relocation information
2791 so it can be loaded someplace besides the default 1MB.
2792 The relocations make the kernel binary about 15% larger,
2793 but are discarded at runtime
2794
2795config RELOCATION_TABLE_SIZE
2796 hex "Relocation table size"
2797 depends on RELOCATABLE
2798 range 0x0 0x01000000
2799 default "0x00100000"
2800 help
2801 A table of relocation data will be appended to the kernel binary
2802 and parsed at boot to fix up the relocated kernel.
2803
2804 This option allows the amount of space reserved for the table to be
2805 adjusted, although the default of 1Mb should be ok in most cases.
2806
2807 The build will fail and a valid size suggested if this is too small.
2808
2809 If unsure, leave at the default value.
2810
2811config RANDOMIZE_BASE
2812 bool "Randomize the address of the kernel image"
2813 depends on RELOCATABLE
2814 help
2815 Randomizes the physical and virtual address at which the
2816 kernel image is loaded, as a security feature that
2817 deters exploit attempts relying on knowledge of the location
2818 of kernel internals.
2819
2820 Entropy is generated using any coprocessor 0 registers available.
2821
2822 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
2823
2824 If unsure, say N.
2825
2826config RANDOMIZE_BASE_MAX_OFFSET
2827 hex "Maximum kASLR offset" if EXPERT
2828 depends on RANDOMIZE_BASE
2829 range 0x0 0x40000000 if EVA || 64BIT
2830 range 0x0 0x08000000
2831 default "0x01000000"
2832 help
2833 When kASLR is active, this provides the maximum offset that will
2834 be applied to the kernel image. It should be set according to the
2835 amount of physical RAM available in the target system minus
2836 PHYSICAL_START and must be a power of 2.
2837
2838 This is limited by the size of KSEG0, 256Mb on 32-bit or 1Gb with
2839 EVA or 64-bit. The default is 16Mb.
2840
2841config NODES_SHIFT
2842 int
2843 default "6"
2844 depends on NEED_MULTIPLE_NODES
2845
2846config HW_PERF_EVENTS
2847 bool "Enable hardware performance counter support for perf events"
2848 depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON64)
2849 default y
2850 help
2851 Enable hardware performance counter support for perf events. If
2852 disabled, perf events will use software events only.
2853
2854config DMI
2855 bool "Enable DMI scanning"
2856 depends on MACH_LOONGSON64
2857 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
2858 default y
2859 help
2860 Enabled scanning of DMI to identify machine quirks. Say Y
2861 here unless you have verified that your setup is not
2862 affected by entries in the DMI blacklist. Required by PNP
2863 BIOS code.
2864
2865config SMP
2866 bool "Multi-Processing support"
2867 depends on SYS_SUPPORTS_SMP
2868 help
2869 This enables support for systems with more than one CPU. If you have
2870 a system with only one CPU, say N. If you have a system with more
2871 than one CPU, say Y.
2872
2873 If you say N here, the kernel will run on uni- and multiprocessor
2874 machines, but will use only one CPU of a multiprocessor machine. If
2875 you say Y here, the kernel will run on many, but not all,
2876 uniprocessor machines. On a uniprocessor machine, the kernel
2877 will run faster if you say N here.
2878
2879 People using multiprocessor machines who say Y here should also say
2880 Y to "Enhanced Real Time Clock Support", below.
2881
2882 See also the SMP-HOWTO available at
2883 <https://www.tldp.org/docs.html#howto>.
2884
2885 If you don't know what to do here, say N.
2886
2887config HOTPLUG_CPU
2888 bool "Support for hot-pluggable CPUs"
2889 depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
2890 help
2891 Say Y here to allow turning CPUs off and on. CPUs can be
2892 controlled through /sys/devices/system/cpu.
2893 (Note: power management support will enable this option
2894 automatically on SMP systems. )
2895 Say N if you want to disable CPU hotplug.
2896
2897config SMP_UP
2898 bool
2899
2900config SYS_SUPPORTS_MIPS_CMP
2901 bool
2902
2903config SYS_SUPPORTS_MIPS_CPS
2904 bool
2905
2906config SYS_SUPPORTS_SMP
2907 bool
2908
2909config NR_CPUS_DEFAULT_4
2910 bool
2911
2912config NR_CPUS_DEFAULT_8
2913 bool
2914
2915config NR_CPUS_DEFAULT_16
2916 bool
2917
2918config NR_CPUS_DEFAULT_32
2919 bool
2920
2921config NR_CPUS_DEFAULT_64
2922 bool
2923
2924config NR_CPUS
2925 int "Maximum number of CPUs (2-256)"
2926 range 2 256
2927 depends on SMP
2928 default "4" if NR_CPUS_DEFAULT_4
2929 default "8" if NR_CPUS_DEFAULT_8
2930 default "16" if NR_CPUS_DEFAULT_16
2931 default "32" if NR_CPUS_DEFAULT_32
2932 default "64" if NR_CPUS_DEFAULT_64
2933 help
2934 This allows you to specify the maximum number of CPUs which this
2935 kernel will support. The maximum supported value is 32 for 32-bit
2936 kernel and 64 for 64-bit kernels; the minimum value which makes
2937 sense is 1 for Qemu (useful only for kernel debugging purposes)
2938 and 2 for all others.
2939
2940 This is purely to save memory - each supported CPU adds
2941 approximately eight kilobytes to the kernel image. For best
2942 performance should round up your number of processors to the next
2943 power of two.
2944
2945config MIPS_PERF_SHARED_TC_COUNTERS
2946 bool
2947
2948config MIPS_NR_CPU_NR_MAP_1024
2949 bool
2950
2951config MIPS_NR_CPU_NR_MAP
2952 int
2953 depends on SMP
2954 default 1024 if MIPS_NR_CPU_NR_MAP_1024
2955 default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
2956
2957#
2958# Timer Interrupt Frequency Configuration
2959#
2960
2961choice
2962 prompt "Timer frequency"
2963 default HZ_250
2964 help
2965 Allows the configuration of the timer frequency.
2966
2967 config HZ_24
2968 bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
2969
2970 config HZ_48
2971 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2972
2973 config HZ_100
2974 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2975
2976 config HZ_128
2977 bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2978
2979 config HZ_250
2980 bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2981
2982 config HZ_256
2983 bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2984
2985 config HZ_1000
2986 bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2987
2988 config HZ_1024
2989 bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2990
2991endchoice
2992
2993config SYS_SUPPORTS_24HZ
2994 bool
2995
2996config SYS_SUPPORTS_48HZ
2997 bool
2998
2999config SYS_SUPPORTS_100HZ
3000 bool
3001
3002config SYS_SUPPORTS_128HZ
3003 bool
3004
3005config SYS_SUPPORTS_250HZ
3006 bool
3007
3008config SYS_SUPPORTS_256HZ
3009 bool
3010
3011config SYS_SUPPORTS_1000HZ
3012 bool
3013
3014config SYS_SUPPORTS_1024HZ
3015 bool
3016
3017config SYS_SUPPORTS_ARBIT_HZ
3018 bool
3019 default y if !SYS_SUPPORTS_24HZ && \
3020 !SYS_SUPPORTS_48HZ && \
3021 !SYS_SUPPORTS_100HZ && \
3022 !SYS_SUPPORTS_128HZ && \
3023 !SYS_SUPPORTS_250HZ && \
3024 !SYS_SUPPORTS_256HZ && \
3025 !SYS_SUPPORTS_1000HZ && \
3026 !SYS_SUPPORTS_1024HZ
3027
3028config HZ
3029 int
3030 default 24 if HZ_24
3031 default 48 if HZ_48
3032 default 100 if HZ_100
3033 default 128 if HZ_128
3034 default 250 if HZ_250
3035 default 256 if HZ_256
3036 default 1000 if HZ_1000
3037 default 1024 if HZ_1024
3038
3039config SCHED_HRTICK
3040 def_bool HIGH_RES_TIMERS
3041
3042config KEXEC
3043 bool "Kexec system call"
3044 select KEXEC_CORE
3045 help
3046 kexec is a system call that implements the ability to shutdown your
3047 current kernel, and to start another kernel. It is like a reboot
3048 but it is independent of the system firmware. And like a reboot
3049 you can start any kernel with it, not just Linux.
3050
3051 The name comes from the similarity to the exec system call.
3052
3053 It is an ongoing process to be certain the hardware in a machine
3054 is properly shutdown, so do not be surprised if this code does not
3055 initially work for you. As of this writing the exact hardware
3056 interface is strongly in flux, so no good recommendation can be
3057 made.
3058
3059config CRASH_DUMP
3060 bool "Kernel crash dumps"
3061 help
3062 Generate crash dump after being started by kexec.
3063 This should be normally only set in special crash dump kernels
3064 which are loaded in the main kernel with kexec-tools into
3065 a specially reserved region and then later executed after
3066 a crash by kdump/kexec. The crash dump kernel must be compiled
3067 to a memory address not used by the main kernel or firmware using
3068 PHYSICAL_START.
3069
3070config PHYSICAL_START
3071 hex "Physical address where the kernel is loaded"
3072 default "0xffffffff84000000"
3073 depends on CRASH_DUMP
3074 help
3075 This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
3076 If you plan to use kernel for capturing the crash dump change
3077 this value to start of the reserved region (the "X" value as
3078 specified in the "crashkernel=YM@XM" command line boot parameter
3079 passed to the panic-ed kernel).
3080
3081config MIPS_O32_FP64_SUPPORT
3082 bool "Support for O32 binaries using 64-bit FP" if !CPU_MIPSR6
3083 depends on 32BIT || MIPS32_O32
3084 help
3085 When this is enabled, the kernel will support use of 64-bit floating
3086 point registers with binaries using the O32 ABI along with the
3087 EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
3088 32-bit MIPS systems this support is at the cost of increasing the
3089 size and complexity of the compiled FPU emulator. Thus if you are
3090 running a MIPS32 system and know that none of your userland binaries
3091 will require 64-bit floating point, you may wish to reduce the size
3092 of your kernel & potentially improve FP emulation performance by
3093 saying N here.
3094
3095 Although binutils currently supports use of this flag the details
3096 concerning its effect upon the O32 ABI in userland are still being
3097 worked on. In order to avoid userland becoming dependant upon current
3098 behaviour before the details have been finalised, this option should
3099 be considered experimental and only enabled by those working upon
3100 said details.
3101
3102 If unsure, say N.
3103
3104config USE_OF
3105 bool
3106 select OF
3107 select OF_EARLY_FLATTREE
3108 select IRQ_DOMAIN
3109
3110config UHI_BOOT
3111 bool
3112
3113config BUILTIN_DTB
3114 bool
3115
3116choice
3117 prompt "Kernel appended dtb support" if USE_OF
3118 default MIPS_NO_APPENDED_DTB
3119
3120 config MIPS_NO_APPENDED_DTB
3121 bool "None"
3122 help
3123 Do not enable appended dtb support.
3124
3125 config MIPS_ELF_APPENDED_DTB
3126 bool "vmlinux"
3127 help
3128 With this option, the boot code will look for a device tree binary
3129 DTB) included in the vmlinux ELF section .appended_dtb. By default
3130 it is empty and the DTB can be appended using binutils command
3131 objcopy:
3132
3133 objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
3134
3135 This is meant as a backward compatiblity convenience for those
3136 systems with a bootloader that can't be upgraded to accommodate
3137 the documented boot protocol using a device tree.
3138
3139 config MIPS_RAW_APPENDED_DTB
3140 bool "vmlinux.bin or vmlinuz.bin"
3141 help
3142 With this option, the boot code will look for a device tree binary
3143 DTB) appended to raw vmlinux.bin or vmlinuz.bin.
3144 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
3145
3146 This is meant as a backward compatibility convenience for those
3147 systems with a bootloader that can't be upgraded to accommodate
3148 the documented boot protocol using a device tree.
3149
3150 Beware that there is very little in terms of protection against
3151 this option being confused by leftover garbage in memory that might
3152 look like a DTB header after a reboot if no actual DTB is appended
3153 to vmlinux.bin. Do not leave this option active in a production kernel
3154 if you don't intend to always append a DTB.
3155endchoice
3156
3157choice
3158 prompt "Kernel command line type" if !CMDLINE_OVERRIDE
3159 default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
3160 !MACH_LOONGSON64 && !MIPS_MALTA && \
3161 !CAVIUM_OCTEON_SOC
3162 default MIPS_CMDLINE_FROM_BOOTLOADER
3163
3164 config MIPS_CMDLINE_FROM_DTB
3165 depends on USE_OF
3166 bool "Dtb kernel arguments if available"
3167
3168 config MIPS_CMDLINE_DTB_EXTEND
3169 depends on USE_OF
3170 bool "Extend dtb kernel arguments with bootloader arguments"
3171
3172 config MIPS_CMDLINE_FROM_BOOTLOADER
3173 bool "Bootloader kernel arguments if available"
3174
3175 config MIPS_CMDLINE_BUILTIN_EXTEND
3176 depends on CMDLINE_BOOL
3177 bool "Extend builtin kernel arguments with bootloader arguments"
3178endchoice
3179
3180endmenu
3181
3182config LOCKDEP_SUPPORT
3183 bool
3184 default y
3185
3186config STACKTRACE_SUPPORT
3187 bool
3188 default y
3189
3190config PGTABLE_LEVELS
3191 int
3192 default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
3193 default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48)
3194 default 2
3195
3196config MIPS_AUTO_PFN_OFFSET
3197 bool
3198
3199menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
3200
3201config PCI_DRIVERS_GENERIC
3202 select PCI_DOMAINS_GENERIC if PCI
3203 bool
3204
3205config PCI_DRIVERS_LEGACY
3206 def_bool !PCI_DRIVERS_GENERIC
3207 select NO_GENERIC_PCI_IOPORT_MAP
3208 select PCI_DOMAINS if PCI
3209
3210#
3211# ISA support is now enabled via select. Too many systems still have the one
3212# or other ISA chip on the board that users don't know about so don't expect
3213# users to choose the right thing ...
3214#
3215config ISA
3216 bool
3217
3218config TC
3219 bool "TURBOchannel support"
3220 depends on MACH_DECSTATION
3221 help
3222 TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
3223 processors. TURBOchannel programming specifications are available
3224 at:
3225 <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
3226 and:
3227 <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
3228 Linux driver support status is documented at:
3229 <http://www.linux-mips.org/wiki/DECstation>
3230
3231config MMU
3232 bool
3233 default y
3234
3235config ARCH_MMAP_RND_BITS_MIN
3236 default 12 if 64BIT
3237 default 8
3238
3239config ARCH_MMAP_RND_BITS_MAX
3240 default 18 if 64BIT
3241 default 15
3242
3243config ARCH_MMAP_RND_COMPAT_BITS_MIN
3244 default 8
3245
3246config ARCH_MMAP_RND_COMPAT_BITS_MAX
3247 default 15
3248
3249config I8253
3250 bool
3251 select CLKSRC_I8253
3252 select CLKEVT_I8253
3253 select MIPS_EXTERNAL_TIMER
3254
3255config ZONE_DMA
3256 bool
3257
3258config ZONE_DMA32
3259 bool
3260
3261endmenu
3262
3263config TRAD_SIGNALS
3264 bool
3265
3266config MIPS32_COMPAT
3267 bool
3268
3269config COMPAT
3270 bool
3271
3272config SYSVIPC_COMPAT
3273 bool
3274
3275config MIPS32_O32
3276 bool "Kernel support for o32 binaries"
3277 depends on 64BIT
3278 select ARCH_WANT_OLD_COMPAT_IPC
3279 select COMPAT
3280 select MIPS32_COMPAT
3281 select SYSVIPC_COMPAT if SYSVIPC
3282 help
3283 Select this option if you want to run o32 binaries. These are pure
3284 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
3285 existing binaries are in this format.
3286
3287 If unsure, say Y.
3288
3289config MIPS32_N32
3290 bool "Kernel support for n32 binaries"
3291 depends on 64BIT
3292 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
3293 select COMPAT
3294 select MIPS32_COMPAT
3295 select SYSVIPC_COMPAT if SYSVIPC
3296 help
3297 Select this option if you want to run n32 binaries. These are
3298 64-bit binaries using 32-bit quantities for addressing and certain
3299 data that would normally be 64-bit. They are used in special
3300 cases.
3301
3302 If unsure, say N.
3303
3304config BINFMT_ELF32
3305 bool
3306 default y if MIPS32_O32 || MIPS32_N32
3307 select ELFCORE
3308
3309menu "Power management options"
3310
3311config ARCH_HIBERNATION_POSSIBLE
3312 def_bool y
3313 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3314
3315config ARCH_SUSPEND_POSSIBLE
3316 def_bool y
3317 depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
3318
3319source "kernel/power/Kconfig"
3320
3321endmenu
3322
3323config MIPS_EXTERNAL_TIMER
3324 bool
3325
3326menu "CPU Power Management"
3327
3328if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
3329source "drivers/cpufreq/Kconfig"
3330endif
3331
3332source "drivers/cpuidle/Kconfig"
3333
3334endmenu
3335
3336source "drivers/firmware/Kconfig"
3337
3338source "arch/mips/kvm/Kconfig"
3339
3340source "arch/mips/vdso/Kconfig"