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