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