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