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