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