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