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