xref: /openbmc/linux/arch/mips/Kconfig (revision 19c233b7)
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	help
1431	  Choose this option to build a kernel for release 6 or later of the
1432	  MIPS64 architecture.  New MIPS processors, starting with the Warrior
1433	  family, are based on a MIPS64r6 processor. If you own an older
1434	  processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1435
1436config CPU_R3000
1437	bool "R3000"
1438	depends on SYS_HAS_CPU_R3000
1439	select CPU_HAS_WB
1440	select CPU_SUPPORTS_32BIT_KERNEL
1441	select CPU_SUPPORTS_HIGHMEM
1442	help
1443	  Please make sure to pick the right CPU type. Linux/MIPS is not
1444	  designed to be generic, i.e. Kernels compiled for R3000 CPUs will
1445	  *not* work on R4000 machines and vice versa.  However, since most
1446	  of the supported machines have an R4000 (or similar) CPU, R4x00
1447	  might be a safe bet.  If the resulting kernel does not work,
1448	  try to recompile with R3000.
1449
1450config CPU_TX39XX
1451	bool "R39XX"
1452	depends on SYS_HAS_CPU_TX39XX
1453	select CPU_SUPPORTS_32BIT_KERNEL
1454
1455config CPU_VR41XX
1456	bool "R41xx"
1457	depends on SYS_HAS_CPU_VR41XX
1458	select CPU_SUPPORTS_32BIT_KERNEL
1459	select CPU_SUPPORTS_64BIT_KERNEL
1460	help
1461	  The options selects support for the NEC VR4100 series of processors.
1462	  Only choose this option if you have one of these processors as a
1463	  kernel built with this option will not run on any other type of
1464	  processor or vice versa.
1465
1466config CPU_R4300
1467	bool "R4300"
1468	depends on SYS_HAS_CPU_R4300
1469	select CPU_SUPPORTS_32BIT_KERNEL
1470	select CPU_SUPPORTS_64BIT_KERNEL
1471	help
1472	  MIPS Technologies R4300-series processors.
1473
1474config CPU_R4X00
1475	bool "R4x00"
1476	depends on SYS_HAS_CPU_R4X00
1477	select CPU_SUPPORTS_32BIT_KERNEL
1478	select CPU_SUPPORTS_64BIT_KERNEL
1479	select CPU_SUPPORTS_HUGEPAGES
1480	help
1481	  MIPS Technologies R4000-series processors other than 4300, including
1482	  the R4000, R4400, R4600, and 4700.
1483
1484config CPU_TX49XX
1485	bool "R49XX"
1486	depends on SYS_HAS_CPU_TX49XX
1487	select CPU_HAS_PREFETCH
1488	select CPU_SUPPORTS_32BIT_KERNEL
1489	select CPU_SUPPORTS_64BIT_KERNEL
1490	select CPU_SUPPORTS_HUGEPAGES
1491
1492config CPU_R5000
1493	bool "R5000"
1494	depends on SYS_HAS_CPU_R5000
1495	select CPU_SUPPORTS_32BIT_KERNEL
1496	select CPU_SUPPORTS_64BIT_KERNEL
1497	select CPU_SUPPORTS_HUGEPAGES
1498	help
1499	  MIPS Technologies R5000-series processors other than the Nevada.
1500
1501config CPU_R5432
1502	bool "R5432"
1503	depends on SYS_HAS_CPU_R5432
1504	select CPU_SUPPORTS_32BIT_KERNEL
1505	select CPU_SUPPORTS_64BIT_KERNEL
1506	select CPU_SUPPORTS_HUGEPAGES
1507
1508config CPU_R5500
1509	bool "R5500"
1510	depends on SYS_HAS_CPU_R5500
1511	select CPU_SUPPORTS_32BIT_KERNEL
1512	select CPU_SUPPORTS_64BIT_KERNEL
1513	select CPU_SUPPORTS_HUGEPAGES
1514	help
1515	  NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
1516	  instruction set.
1517
1518config CPU_R6000
1519	bool "R6000"
1520	depends on SYS_HAS_CPU_R6000
1521	select CPU_SUPPORTS_32BIT_KERNEL
1522	help
1523	  MIPS Technologies R6000 and R6000A series processors.  Note these
1524	  processors are extremely rare and the support for them is incomplete.
1525
1526config CPU_NEVADA
1527	bool "RM52xx"
1528	depends on SYS_HAS_CPU_NEVADA
1529	select CPU_SUPPORTS_32BIT_KERNEL
1530	select CPU_SUPPORTS_64BIT_KERNEL
1531	select CPU_SUPPORTS_HUGEPAGES
1532	help
1533	  QED / PMC-Sierra RM52xx-series ("Nevada") processors.
1534
1535config CPU_R8000
1536	bool "R8000"
1537	depends on SYS_HAS_CPU_R8000
1538	select CPU_HAS_PREFETCH
1539	select CPU_SUPPORTS_64BIT_KERNEL
1540	help
1541	  MIPS Technologies R8000 processors.  Note these processors are
1542	  uncommon and the support for them is incomplete.
1543
1544config CPU_R10000
1545	bool "R10000"
1546	depends on SYS_HAS_CPU_R10000
1547	select CPU_HAS_PREFETCH
1548	select CPU_SUPPORTS_32BIT_KERNEL
1549	select CPU_SUPPORTS_64BIT_KERNEL
1550	select CPU_SUPPORTS_HIGHMEM
1551	select CPU_SUPPORTS_HUGEPAGES
1552	help
1553	  MIPS Technologies R10000-series processors.
1554
1555config CPU_RM7000
1556	bool "RM7000"
1557	depends on SYS_HAS_CPU_RM7000
1558	select CPU_HAS_PREFETCH
1559	select CPU_SUPPORTS_32BIT_KERNEL
1560	select CPU_SUPPORTS_64BIT_KERNEL
1561	select CPU_SUPPORTS_HIGHMEM
1562	select CPU_SUPPORTS_HUGEPAGES
1563
1564config CPU_SB1
1565	bool "SB1"
1566	depends on SYS_HAS_CPU_SB1
1567	select CPU_SUPPORTS_32BIT_KERNEL
1568	select CPU_SUPPORTS_64BIT_KERNEL
1569	select CPU_SUPPORTS_HIGHMEM
1570	select CPU_SUPPORTS_HUGEPAGES
1571	select WEAK_ORDERING
1572
1573config CPU_CAVIUM_OCTEON
1574	bool "Cavium Octeon processor"
1575	depends on SYS_HAS_CPU_CAVIUM_OCTEON
1576	select CPU_HAS_PREFETCH
1577	select CPU_SUPPORTS_64BIT_KERNEL
1578	select WEAK_ORDERING
1579	select CPU_SUPPORTS_HIGHMEM
1580	select CPU_SUPPORTS_HUGEPAGES
1581	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1582	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
1583	select MIPS_L1_CACHE_SHIFT_7
1584	help
1585	  The Cavium Octeon processor is a highly integrated chip containing
1586	  many ethernet hardware widgets for networking tasks. The processor
1587	  can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
1588	  Full details can be found at http://www.caviumnetworks.com.
1589
1590config CPU_BMIPS
1591	bool "Broadcom BMIPS"
1592	depends on SYS_HAS_CPU_BMIPS
1593	select CPU_MIPS32
1594	select CPU_BMIPS32_3300 if SYS_HAS_CPU_BMIPS32_3300
1595	select CPU_BMIPS4350 if SYS_HAS_CPU_BMIPS4350
1596	select CPU_BMIPS4380 if SYS_HAS_CPU_BMIPS4380
1597	select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
1598	select CPU_SUPPORTS_32BIT_KERNEL
1599	select DMA_NONCOHERENT
1600	select IRQ_MIPS_CPU
1601	select SWAP_IO_SPACE
1602	select WEAK_ORDERING
1603	select CPU_SUPPORTS_HIGHMEM
1604	select CPU_HAS_PREFETCH
1605	help
1606	  Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors.
1607
1608config CPU_XLR
1609	bool "Netlogic XLR SoC"
1610	depends on SYS_HAS_CPU_XLR
1611	select CPU_SUPPORTS_32BIT_KERNEL
1612	select CPU_SUPPORTS_64BIT_KERNEL
1613	select CPU_SUPPORTS_HIGHMEM
1614	select CPU_SUPPORTS_HUGEPAGES
1615	select WEAK_ORDERING
1616	select WEAK_REORDERING_BEYOND_LLSC
1617	help
1618	  Netlogic Microsystems XLR/XLS processors.
1619
1620config CPU_XLP
1621	bool "Netlogic XLP SoC"
1622	depends on SYS_HAS_CPU_XLP
1623	select CPU_SUPPORTS_32BIT_KERNEL
1624	select CPU_SUPPORTS_64BIT_KERNEL
1625	select CPU_SUPPORTS_HIGHMEM
1626	select WEAK_ORDERING
1627	select WEAK_REORDERING_BEYOND_LLSC
1628	select CPU_HAS_PREFETCH
1629	select CPU_MIPSR2
1630	select CPU_SUPPORTS_HUGEPAGES
1631	help
1632	  Netlogic Microsystems XLP processors.
1633endchoice
1634
1635config CPU_MIPS32_3_5_FEATURES
1636	bool "MIPS32 Release 3.5 Features"
1637	depends on SYS_HAS_CPU_MIPS32_R3_5
1638	depends on CPU_MIPS32_R2 || CPU_MIPS32_R6
1639	help
1640	  Choose this option to build a kernel for release 2 or later of the
1641	  MIPS32 architecture including features from the 3.5 release such as
1642	  support for Enhanced Virtual Addressing (EVA).
1643
1644config CPU_MIPS32_3_5_EVA
1645	bool "Enhanced Virtual Addressing (EVA)"
1646	depends on CPU_MIPS32_3_5_FEATURES
1647	select EVA
1648	default y
1649	help
1650	  Choose this option if you want to enable the Enhanced Virtual
1651	  Addressing (EVA) on your MIPS32 core (such as proAptiv).
1652	  One of its primary benefits is an increase in the maximum size
1653	  of lowmem (up to 3GB). If unsure, say 'N' here.
1654
1655config CPU_MIPS32_R5_FEATURES
1656	bool "MIPS32 Release 5 Features"
1657	depends on SYS_HAS_CPU_MIPS32_R5
1658	depends on CPU_MIPS32_R2
1659	help
1660	  Choose this option to build a kernel for release 2 or later of the
1661	  MIPS32 architecture including features from release 5 such as
1662	  support for Extended Physical Addressing (XPA).
1663
1664config CPU_MIPS32_R5_XPA
1665	bool "Extended Physical Addressing (XPA)"
1666	depends on CPU_MIPS32_R5_FEATURES
1667	depends on !EVA
1668	depends on !PAGE_SIZE_4KB
1669	depends on SYS_SUPPORTS_HIGHMEM
1670	select XPA
1671	select HIGHMEM
1672	select ARCH_PHYS_ADDR_T_64BIT
1673	default n
1674	help
1675	  Choose this option if you want to enable the Extended Physical
1676	  Addressing (XPA) on your MIPS32 core (such as P5600 series). The
1677	  benefit is to increase physical addressing equal to or greater
1678	  than 40 bits. Note that this has the side effect of turning on
1679	  64-bit addressing which in turn makes the PTEs 64-bit in size.
1680	  If unsure, say 'N' here.
1681
1682if CPU_LOONGSON2F
1683config CPU_NOP_WORKAROUNDS
1684	bool
1685
1686config CPU_JUMP_WORKAROUNDS
1687	bool
1688
1689config CPU_LOONGSON2F_WORKAROUNDS
1690	bool "Loongson 2F Workarounds"
1691	default y
1692	select CPU_NOP_WORKAROUNDS
1693	select CPU_JUMP_WORKAROUNDS
1694	help
1695	  Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1696	  require workarounds.  Without workarounds the system may hang
1697	  unexpectedly.  For more information please refer to the gas
1698	  -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1699
1700	  Loongson 2F03 and later have fixed these issues and no workarounds
1701	  are needed.  The workarounds have no significant side effect on them
1702	  but may decrease the performance of the system so this option should
1703	  be disabled unless the kernel is intended to be run on 2F01 or 2F02
1704	  systems.
1705
1706	  If unsure, please say Y.
1707endif # CPU_LOONGSON2F
1708
1709config SYS_SUPPORTS_ZBOOT
1710	bool
1711	select HAVE_KERNEL_GZIP
1712	select HAVE_KERNEL_BZIP2
1713	select HAVE_KERNEL_LZ4
1714	select HAVE_KERNEL_LZMA
1715	select HAVE_KERNEL_LZO
1716	select HAVE_KERNEL_XZ
1717
1718config SYS_SUPPORTS_ZBOOT_UART16550
1719	bool
1720	select SYS_SUPPORTS_ZBOOT
1721
1722config CPU_LOONGSON2
1723	bool
1724	select CPU_SUPPORTS_32BIT_KERNEL
1725	select CPU_SUPPORTS_64BIT_KERNEL
1726	select CPU_SUPPORTS_HIGHMEM
1727	select CPU_SUPPORTS_HUGEPAGES
1728
1729config CPU_LOONGSON1
1730	bool
1731	select CPU_MIPS32
1732	select CPU_MIPSR2
1733	select CPU_HAS_PREFETCH
1734	select CPU_SUPPORTS_32BIT_KERNEL
1735	select CPU_SUPPORTS_HIGHMEM
1736	select CPU_SUPPORTS_CPUFREQ
1737
1738config CPU_BMIPS32_3300
1739	select SMP_UP if SMP
1740	bool
1741
1742config CPU_BMIPS4350
1743	bool
1744	select SYS_SUPPORTS_SMP
1745	select SYS_SUPPORTS_HOTPLUG_CPU
1746
1747config CPU_BMIPS4380
1748	bool
1749	select MIPS_L1_CACHE_SHIFT_6
1750	select SYS_SUPPORTS_SMP
1751	select SYS_SUPPORTS_HOTPLUG_CPU
1752
1753config CPU_BMIPS5000
1754	bool
1755	select MIPS_CPU_SCACHE
1756	select MIPS_L1_CACHE_SHIFT_7
1757	select SYS_SUPPORTS_SMP
1758	select SYS_SUPPORTS_HOTPLUG_CPU
1759
1760config SYS_HAS_CPU_LOONGSON3
1761	bool
1762	select CPU_SUPPORTS_CPUFREQ
1763
1764config SYS_HAS_CPU_LOONGSON2E
1765	bool
1766
1767config SYS_HAS_CPU_LOONGSON2F
1768	bool
1769	select CPU_SUPPORTS_CPUFREQ
1770	select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1771	select CPU_SUPPORTS_UNCACHED_ACCELERATED
1772
1773config SYS_HAS_CPU_LOONGSON1B
1774	bool
1775
1776config SYS_HAS_CPU_MIPS32_R1
1777	bool
1778
1779config SYS_HAS_CPU_MIPS32_R2
1780	bool
1781
1782config SYS_HAS_CPU_MIPS32_R3_5
1783	bool
1784
1785config SYS_HAS_CPU_MIPS32_R5
1786	bool
1787
1788config SYS_HAS_CPU_MIPS32_R6
1789	bool
1790
1791config SYS_HAS_CPU_MIPS64_R1
1792	bool
1793
1794config SYS_HAS_CPU_MIPS64_R2
1795	bool
1796
1797config SYS_HAS_CPU_MIPS64_R6
1798	bool
1799
1800config SYS_HAS_CPU_R3000
1801	bool
1802
1803config SYS_HAS_CPU_TX39XX
1804	bool
1805
1806config SYS_HAS_CPU_VR41XX
1807	bool
1808
1809config SYS_HAS_CPU_R4300
1810	bool
1811
1812config SYS_HAS_CPU_R4X00
1813	bool
1814
1815config SYS_HAS_CPU_TX49XX
1816	bool
1817
1818config SYS_HAS_CPU_R5000
1819	bool
1820
1821config SYS_HAS_CPU_R5432
1822	bool
1823
1824config SYS_HAS_CPU_R5500
1825	bool
1826
1827config SYS_HAS_CPU_R6000
1828	bool
1829
1830config SYS_HAS_CPU_NEVADA
1831	bool
1832
1833config SYS_HAS_CPU_R8000
1834	bool
1835
1836config SYS_HAS_CPU_R10000
1837	bool
1838
1839config SYS_HAS_CPU_RM7000
1840	bool
1841
1842config SYS_HAS_CPU_SB1
1843	bool
1844
1845config SYS_HAS_CPU_CAVIUM_OCTEON
1846	bool
1847
1848config SYS_HAS_CPU_BMIPS
1849	bool
1850
1851config SYS_HAS_CPU_BMIPS32_3300
1852	bool
1853	select SYS_HAS_CPU_BMIPS
1854
1855config SYS_HAS_CPU_BMIPS4350
1856	bool
1857	select SYS_HAS_CPU_BMIPS
1858
1859config SYS_HAS_CPU_BMIPS4380
1860	bool
1861	select SYS_HAS_CPU_BMIPS
1862
1863config SYS_HAS_CPU_BMIPS5000
1864	bool
1865	select SYS_HAS_CPU_BMIPS
1866
1867config SYS_HAS_CPU_XLR
1868	bool
1869
1870config SYS_HAS_CPU_XLP
1871	bool
1872
1873config MIPS_MALTA_PM
1874	depends on MIPS_MALTA
1875	depends on PCI
1876	bool
1877	default y
1878
1879#
1880# CPU may reorder R->R, R->W, W->R, W->W
1881# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
1882#
1883config WEAK_ORDERING
1884	bool
1885
1886#
1887# CPU may reorder reads and writes beyond LL/SC
1888# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
1889#
1890config WEAK_REORDERING_BEYOND_LLSC
1891	bool
1892endmenu
1893
1894#
1895# These two indicate any level of the MIPS32 and MIPS64 architecture
1896#
1897config CPU_MIPS32
1898	bool
1899	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
1900
1901config CPU_MIPS64
1902	bool
1903	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
1904
1905#
1906# These two indicate the revision of the architecture, either Release 1 or Release 2
1907#
1908config CPU_MIPSR1
1909	bool
1910	default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
1911
1912config CPU_MIPSR2
1913	bool
1914	default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1915	select MIPS_SPRAM
1916
1917config CPU_MIPSR6
1918	bool
1919	default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
1920	select MIPS_SPRAM
1921
1922config EVA
1923	bool
1924
1925config XPA
1926	bool
1927
1928config SYS_SUPPORTS_32BIT_KERNEL
1929	bool
1930config SYS_SUPPORTS_64BIT_KERNEL
1931	bool
1932config CPU_SUPPORTS_32BIT_KERNEL
1933	bool
1934config CPU_SUPPORTS_64BIT_KERNEL
1935	bool
1936config CPU_SUPPORTS_CPUFREQ
1937	bool
1938config CPU_SUPPORTS_ADDRWINCFG
1939	bool
1940config CPU_SUPPORTS_HUGEPAGES
1941	bool
1942config CPU_SUPPORTS_UNCACHED_ACCELERATED
1943	bool
1944config MIPS_PGD_C0_CONTEXT
1945	bool
1946	default y if 64BIT && CPU_MIPSR2 && !CPU_XLP
1947
1948#
1949# Set to y for ptrace access to watch registers.
1950#
1951config HARDWARE_WATCHPOINTS
1952       bool
1953       default y if CPU_MIPSR1 || CPU_MIPSR2
1954
1955menu "Kernel type"
1956
1957choice
1958	prompt "Kernel code model"
1959	help
1960	  You should only select this option if you have a workload that
1961	  actually benefits from 64-bit processing or if your machine has
1962	  large memory.  You will only be presented a single option in this
1963	  menu if your system does not support both 32-bit and 64-bit kernels.
1964
1965config 32BIT
1966	bool "32-bit kernel"
1967	depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
1968	select TRAD_SIGNALS
1969	help
1970	  Select this option if you want to build a 32-bit kernel.
1971config 64BIT
1972	bool "64-bit kernel"
1973	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
1974	help
1975	  Select this option if you want to build a 64-bit kernel.
1976
1977endchoice
1978
1979config KVM_GUEST
1980	bool "KVM Guest Kernel"
1981	depends on BROKEN_ON_SMP
1982	help
1983	  Select this option if building a guest kernel for KVM (Trap & Emulate) mode
1984
1985config KVM_GUEST_TIMER_FREQ
1986	int "Count/Compare Timer Frequency (MHz)"
1987	depends on KVM_GUEST
1988	default 100
1989	help
1990	  Set this to non-zero if building a guest kernel for KVM to skip RTC
1991	  emulation when determining guest CPU Frequency. Instead, the guest's
1992	  timer frequency is specified directly.
1993
1994choice
1995	prompt "Kernel page size"
1996	default PAGE_SIZE_4KB
1997
1998config PAGE_SIZE_4KB
1999	bool "4kB"
2000	depends on !CPU_LOONGSON2 && !CPU_LOONGSON3
2001	help
2002	 This option select the standard 4kB Linux page size.  On some
2003	 R3000-family processors this is the only available page size.  Using
2004	 4kB page size will minimize memory consumption and is therefore
2005	 recommended for low memory systems.
2006
2007config PAGE_SIZE_8KB
2008	bool "8kB"
2009	depends on CPU_R8000 || CPU_CAVIUM_OCTEON
2010	help
2011	  Using 8kB page size will result in higher performance kernel at
2012	  the price of higher memory consumption.  This option is available
2013	  only on R8000 and cnMIPS processors.  Note that you will need a
2014	  suitable Linux distribution to support this.
2015
2016config PAGE_SIZE_16KB
2017	bool "16kB"
2018	depends on !CPU_R3000 && !CPU_TX39XX
2019	help
2020	  Using 16kB page size will result in higher performance kernel at
2021	  the price of higher memory consumption.  This option is available on
2022	  all non-R3000 family processors.  Note that you will need a suitable
2023	  Linux distribution to support this.
2024
2025config PAGE_SIZE_32KB
2026	bool "32kB"
2027	depends on CPU_CAVIUM_OCTEON
2028	help
2029	  Using 32kB page size will result in higher performance kernel at
2030	  the price of higher memory consumption.  This option is available
2031	  only on cnMIPS cores.  Note that you will need a suitable Linux
2032	  distribution to support this.
2033
2034config PAGE_SIZE_64KB
2035	bool "64kB"
2036	depends on !CPU_R3000 && !CPU_TX39XX
2037	help
2038	  Using 64kB page size will result in higher performance kernel at
2039	  the price of higher memory consumption.  This option is available on
2040	  all non-R3000 family processor.  Not that at the time of this
2041	  writing this option is still high experimental.
2042
2043endchoice
2044
2045config FORCE_MAX_ZONEORDER
2046	int "Maximum zone order"
2047	range 14 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2048	default "14" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_64KB
2049	range 13 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2050	default "13" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_32KB
2051	range 12 64 if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2052	default "12" if MIPS_HUGE_TLB_SUPPORT && PAGE_SIZE_16KB
2053	range 11 64
2054	default "11"
2055	help
2056	  The kernel memory allocator divides physically contiguous memory
2057	  blocks into "zones", where each zone is a power of two number of
2058	  pages.  This option selects the largest power of two that the kernel
2059	  keeps in the memory allocator.  If you need to allocate very large
2060	  blocks of physically contiguous memory, then you may need to
2061	  increase this value.
2062
2063	  This config option is actually maximum order plus one. For example,
2064	  a value of 11 means that the largest free memory block is 2^10 pages.
2065
2066	  The page size is not necessarily 4KB.  Keep this in mind
2067	  when choosing a value for this option.
2068
2069config BOARD_SCACHE
2070	bool
2071
2072config IP22_CPU_SCACHE
2073	bool
2074	select BOARD_SCACHE
2075
2076#
2077# Support for a MIPS32 / MIPS64 style S-caches
2078#
2079config MIPS_CPU_SCACHE
2080	bool
2081	select BOARD_SCACHE
2082
2083config R5000_CPU_SCACHE
2084	bool
2085	select BOARD_SCACHE
2086
2087config RM7000_CPU_SCACHE
2088	bool
2089	select BOARD_SCACHE
2090
2091config SIBYTE_DMA_PAGEOPS
2092	bool "Use DMA to clear/copy pages"
2093	depends on CPU_SB1
2094	help
2095	  Instead of using the CPU to zero and copy pages, use a Data Mover
2096	  channel.  These DMA channels are otherwise unused by the standard
2097	  SiByte Linux port.  Seems to give a small performance benefit.
2098
2099config CPU_HAS_PREFETCH
2100	bool
2101
2102config CPU_GENERIC_DUMP_TLB
2103	bool
2104	default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
2105
2106config CPU_R4K_FPU
2107	bool
2108	default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
2109
2110config CPU_R4K_CACHE_TLB
2111	bool
2112	default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
2113
2114config MIPS_MT_SMP
2115	bool "MIPS MT SMP support (1 TC on each available VPE)"
2116	depends on SYS_SUPPORTS_MULTITHREADING
2117	select CPU_MIPSR2_IRQ_VI
2118	select CPU_MIPSR2_IRQ_EI
2119	select SYNC_R4K
2120	select MIPS_GIC_IPI
2121	select MIPS_MT
2122	select SMP
2123	select SMP_UP
2124	select SYS_SUPPORTS_SMP
2125	select SYS_SUPPORTS_SCHED_SMT
2126	select MIPS_PERF_SHARED_TC_COUNTERS
2127	help
2128	  This is a kernel model which is known as SMVP. This is supported
2129	  on cores with the MT ASE and uses the available VPEs to implement
2130	  virtual processors which supports SMP. This is equivalent to the
2131	  Intel Hyperthreading feature. For further information go to
2132	  <http://www.imgtec.com/mips/mips-multithreading.asp>.
2133
2134config MIPS_MT
2135	bool
2136
2137config SCHED_SMT
2138	bool "SMT (multithreading) scheduler support"
2139	depends on SYS_SUPPORTS_SCHED_SMT
2140	default n
2141	help
2142	  SMT scheduler support improves the CPU scheduler's decision making
2143	  when dealing with MIPS MT enabled cores at a cost of slightly
2144	  increased overhead in some places. If unsure say N here.
2145
2146config SYS_SUPPORTS_SCHED_SMT
2147	bool
2148
2149config SYS_SUPPORTS_MULTITHREADING
2150	bool
2151
2152config MIPS_MT_FPAFF
2153	bool "Dynamic FPU affinity for FP-intensive threads"
2154	default y
2155	depends on MIPS_MT_SMP
2156
2157config MIPSR2_TO_R6_EMULATOR
2158	bool "MIPS R2-to-R6 emulator"
2159	depends on CPU_MIPSR6 && !SMP
2160	default y
2161	help
2162	  Choose this option if you want to run non-R6 MIPS userland code.
2163	  Even if you say 'Y' here, the emulator will still be disabled by
2164	  default. You can enable it using the 'mipsr2emu' kernel option.
2165	  The only reason this is a build-time option is to save ~14K from the
2166	  final kernel image.
2167comment "MIPS R2-to-R6 emulator is only available for UP kernels"
2168	depends on SMP && CPU_MIPSR6
2169
2170config MIPS_VPE_LOADER
2171	bool "VPE loader support."
2172	depends on SYS_SUPPORTS_MULTITHREADING && MODULES
2173	select CPU_MIPSR2_IRQ_VI
2174	select CPU_MIPSR2_IRQ_EI
2175	select MIPS_MT
2176	help
2177	  Includes a loader for loading an elf relocatable object
2178	  onto another VPE and running it.
2179
2180config MIPS_VPE_LOADER_CMP
2181	bool
2182	default "y"
2183	depends on MIPS_VPE_LOADER && MIPS_CMP
2184
2185config MIPS_VPE_LOADER_MT
2186	bool
2187	default "y"
2188	depends on MIPS_VPE_LOADER && !MIPS_CMP
2189
2190config MIPS_VPE_LOADER_TOM
2191	bool "Load VPE program into memory hidden from linux"
2192	depends on MIPS_VPE_LOADER
2193	default y
2194	help
2195	  The loader can use memory that is present but has been hidden from
2196	  Linux using the kernel command line option "mem=xxMB". It's up to
2197	  you to ensure the amount you put in the option and the space your
2198	  program requires is less or equal to the amount physically present.
2199
2200config MIPS_VPE_APSP_API
2201	bool "Enable support for AP/SP API (RTLX)"
2202	depends on MIPS_VPE_LOADER
2203	help
2204
2205config MIPS_VPE_APSP_API_CMP
2206	bool
2207	default "y"
2208	depends on MIPS_VPE_APSP_API && MIPS_CMP
2209
2210config MIPS_VPE_APSP_API_MT
2211	bool
2212	default "y"
2213	depends on MIPS_VPE_APSP_API && !MIPS_CMP
2214
2215config MIPS_CMP
2216	bool "MIPS CMP framework support (DEPRECATED)"
2217	depends on SYS_SUPPORTS_MIPS_CMP
2218	select MIPS_GIC_IPI
2219	select SMP
2220	select SYNC_R4K
2221	select SYS_SUPPORTS_SMP
2222	select WEAK_ORDERING
2223	default n
2224	help
2225	  Select this if you are using a bootloader which implements the "CMP
2226	  framework" protocol (ie. YAMON) and want your kernel to make use of
2227	  its ability to start secondary CPUs.
2228
2229	  Unless you have a specific need, you should use CONFIG_MIPS_CPS
2230	  instead of this.
2231
2232config MIPS_CPS
2233	bool "MIPS Coherent Processing System support"
2234	depends on SYS_SUPPORTS_MIPS_CPS
2235	select MIPS_CM
2236	select MIPS_CPC
2237	select MIPS_CPS_PM if HOTPLUG_CPU
2238	select MIPS_GIC_IPI
2239	select SMP
2240	select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
2241	select SYS_SUPPORTS_HOTPLUG_CPU
2242	select SYS_SUPPORTS_SMP
2243	select WEAK_ORDERING
2244	help
2245	  Select this if you wish to run an SMP kernel across multiple cores
2246	  within a MIPS Coherent Processing System. When this option is
2247	  enabled the kernel will probe for other cores and boot them with
2248	  no external assistance. It is safe to enable this when hardware
2249	  support is unavailable.
2250
2251config MIPS_CPS_PM
2252	depends on MIPS_CPS
2253	select MIPS_CPC
2254	bool
2255
2256config MIPS_GIC_IPI
2257	bool
2258
2259config MIPS_CM
2260	bool
2261
2262config MIPS_CPC
2263	bool
2264
2265config SB1_PASS_1_WORKAROUNDS
2266	bool
2267	depends on CPU_SB1_PASS_1
2268	default y
2269
2270config SB1_PASS_2_WORKAROUNDS
2271	bool
2272	depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
2273	default y
2274
2275config SB1_PASS_2_1_WORKAROUNDS
2276	bool
2277	depends on CPU_SB1 && CPU_SB1_PASS_2
2278	default y
2279
2280
2281config ARCH_PHYS_ADDR_T_64BIT
2282       bool
2283
2284choice
2285	prompt "SmartMIPS or microMIPS ASE support"
2286
2287config CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS
2288	bool "None"
2289	help
2290	  Select this if you want neither microMIPS nor SmartMIPS support
2291
2292config CPU_HAS_SMARTMIPS
2293	depends on SYS_SUPPORTS_SMARTMIPS
2294	bool "SmartMIPS"
2295	help
2296	  SmartMIPS is a extension of the MIPS32 architecture aimed at
2297	  increased security at both hardware and software level for
2298	  smartcards.  Enabling this option will allow proper use of the
2299	  SmartMIPS instructions by Linux applications.  However a kernel with
2300	  this option will not work on a MIPS core without SmartMIPS core.  If
2301	  you don't know you probably don't have SmartMIPS and should say N
2302	  here.
2303
2304config CPU_MICROMIPS
2305	depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
2306	bool "microMIPS"
2307	help
2308	  When this option is enabled the kernel will be built using the
2309	  microMIPS ISA
2310
2311endchoice
2312
2313config CPU_HAS_MSA
2314	bool "Support for the MIPS SIMD Architecture (EXPERIMENTAL)"
2315	depends on CPU_SUPPORTS_MSA
2316	depends on 64BIT || MIPS_O32_FP64_SUPPORT
2317	help
2318	  MIPS SIMD Architecture (MSA) introduces 128 bit wide vector registers
2319	  and a set of SIMD instructions to operate on them. When this option
2320	  is enabled the kernel will support allocating & switching MSA
2321	  vector register contexts. If you know that your kernel will only be
2322	  running on CPUs which do not support MSA or that your userland will
2323	  not be making use of it then you may wish to say N here to reduce
2324	  the size & complexity of your kernel.
2325
2326	  If unsure, say Y.
2327
2328config CPU_HAS_WB
2329	bool
2330
2331config XKS01
2332	bool
2333
2334#
2335# Vectored interrupt mode is an R2 feature
2336#
2337config CPU_MIPSR2_IRQ_VI
2338	bool
2339
2340#
2341# Extended interrupt mode is an R2 feature
2342#
2343config CPU_MIPSR2_IRQ_EI
2344	bool
2345
2346config CPU_HAS_SYNC
2347	bool
2348	depends on !CPU_R3000
2349	default y
2350
2351#
2352# CPU non-features
2353#
2354config CPU_DADDI_WORKAROUNDS
2355	bool
2356
2357config CPU_R4000_WORKAROUNDS
2358	bool
2359	select CPU_R4400_WORKAROUNDS
2360
2361config CPU_R4400_WORKAROUNDS
2362	bool
2363
2364#
2365# - Highmem only makes sense for the 32-bit kernel.
2366# - The current highmem code will only work properly on physically indexed
2367#   caches such as R3000, SB1, R7000 or those that look like they're virtually
2368#   indexed such as R4000/R4400 SC and MC versions or R10000.  So for the
2369#   moment we protect the user and offer the highmem option only on machines
2370#   where it's known to be safe.  This will not offer highmem on a few systems
2371#   such as MIPS32 and MIPS64 CPUs which may have virtual and physically
2372#   indexed CPUs but we're playing safe.
2373# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
2374#   know they might have memory configurations that could make use of highmem
2375#   support.
2376#
2377config HIGHMEM
2378	bool "High Memory Support"
2379	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
2380
2381config CPU_SUPPORTS_HIGHMEM
2382	bool
2383
2384config SYS_SUPPORTS_HIGHMEM
2385	bool
2386
2387config SYS_SUPPORTS_SMARTMIPS
2388	bool
2389
2390config SYS_SUPPORTS_MICROMIPS
2391	bool
2392
2393config SYS_SUPPORTS_MIPS16
2394	bool
2395	help
2396	  This option must be set if a kernel might be executed on a MIPS16-
2397	  enabled CPU even if MIPS16 is not actually being used.  In other
2398	  words, it makes the kernel MIPS16-tolerant.
2399
2400config CPU_SUPPORTS_MSA
2401	bool
2402
2403config ARCH_FLATMEM_ENABLE
2404	def_bool y
2405	depends on !NUMA && !CPU_LOONGSON2
2406
2407config ARCH_DISCONTIGMEM_ENABLE
2408	bool
2409	default y if SGI_IP27
2410	help
2411	  Say Y to support efficient handling of discontiguous physical memory,
2412	  for architectures which are either NUMA (Non-Uniform Memory Access)
2413	  or have huge holes in the physical address space for other reasons.
2414	  See <file:Documentation/vm/numa> for more.
2415
2416config ARCH_SPARSEMEM_ENABLE
2417	bool
2418	select SPARSEMEM_STATIC
2419
2420config NUMA
2421	bool "NUMA Support"
2422	depends on SYS_SUPPORTS_NUMA
2423	help
2424	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
2425	  Access).  This option improves performance on systems with more
2426	  than two nodes; on two node systems it is generally better to
2427	  leave it disabled; on single node systems disable this option
2428	  disabled.
2429
2430config SYS_SUPPORTS_NUMA
2431	bool
2432
2433config NODES_SHIFT
2434	int
2435	default "6"
2436	depends on NEED_MULTIPLE_NODES
2437
2438config HW_PERF_EVENTS
2439	bool "Enable hardware performance counter support for perf events"
2440	depends on PERF_EVENTS && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON3)
2441	default y
2442	help
2443	  Enable hardware performance counter support for perf events. If
2444	  disabled, perf events will use software events only.
2445
2446source "mm/Kconfig"
2447
2448config SMP
2449	bool "Multi-Processing support"
2450	depends on SYS_SUPPORTS_SMP
2451	help
2452	  This enables support for systems with more than one CPU. If you have
2453	  a system with only one CPU, say N. If you have a system with more
2454	  than one CPU, say Y.
2455
2456	  If you say N here, the kernel will run on uni- and multiprocessor
2457	  machines, but will use only one CPU of a multiprocessor machine. If
2458	  you say Y here, the kernel will run on many, but not all,
2459	  uniprocessor machines. On a uniprocessor machine, the kernel
2460	  will run faster if you say N here.
2461
2462	  People using multiprocessor machines who say Y here should also say
2463	  Y to "Enhanced Real Time Clock Support", below.
2464
2465	  See also the SMP-HOWTO available at
2466	  <http://www.tldp.org/docs.html#howto>.
2467
2468	  If you don't know what to do here, say N.
2469
2470config SMP_UP
2471	bool
2472
2473config SYS_SUPPORTS_MIPS_CMP
2474	bool
2475
2476config SYS_SUPPORTS_MIPS_CPS
2477	bool
2478
2479config SYS_SUPPORTS_SMP
2480	bool
2481
2482config NR_CPUS_DEFAULT_4
2483	bool
2484
2485config NR_CPUS_DEFAULT_8
2486	bool
2487
2488config NR_CPUS_DEFAULT_16
2489	bool
2490
2491config NR_CPUS_DEFAULT_32
2492	bool
2493
2494config NR_CPUS_DEFAULT_64
2495	bool
2496
2497config NR_CPUS
2498	int "Maximum number of CPUs (2-256)"
2499	range 2 256
2500	depends on SMP
2501	default "4" if NR_CPUS_DEFAULT_4
2502	default "8" if NR_CPUS_DEFAULT_8
2503	default "16" if NR_CPUS_DEFAULT_16
2504	default "32" if NR_CPUS_DEFAULT_32
2505	default "64" if NR_CPUS_DEFAULT_64
2506	help
2507	  This allows you to specify the maximum number of CPUs which this
2508	  kernel will support.  The maximum supported value is 32 for 32-bit
2509	  kernel and 64 for 64-bit kernels; the minimum value which makes
2510	  sense is 1 for Qemu (useful only for kernel debugging purposes)
2511	  and 2 for all others.
2512
2513	  This is purely to save memory - each supported CPU adds
2514	  approximately eight kilobytes to the kernel image.  For best
2515	  performance should round up your number of processors to the next
2516	  power of two.
2517
2518config MIPS_PERF_SHARED_TC_COUNTERS
2519	bool
2520
2521#
2522# Timer Interrupt Frequency Configuration
2523#
2524
2525choice
2526	prompt "Timer frequency"
2527	default HZ_250
2528	help
2529	 Allows the configuration of the timer frequency.
2530
2531	config HZ_48
2532		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
2533
2534	config HZ_100
2535		bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
2536
2537	config HZ_128
2538		bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
2539
2540	config HZ_250
2541		bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
2542
2543	config HZ_256
2544		bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
2545
2546	config HZ_1000
2547		bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
2548
2549	config HZ_1024
2550		bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
2551
2552endchoice
2553
2554config SYS_SUPPORTS_48HZ
2555	bool
2556
2557config SYS_SUPPORTS_100HZ
2558	bool
2559
2560config SYS_SUPPORTS_128HZ
2561	bool
2562
2563config SYS_SUPPORTS_250HZ
2564	bool
2565
2566config SYS_SUPPORTS_256HZ
2567	bool
2568
2569config SYS_SUPPORTS_1000HZ
2570	bool
2571
2572config SYS_SUPPORTS_1024HZ
2573	bool
2574
2575config SYS_SUPPORTS_ARBIT_HZ
2576	bool
2577	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
2578		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
2579		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
2580		     !SYS_SUPPORTS_1024HZ
2581
2582config HZ
2583	int
2584	default 48 if HZ_48
2585	default 100 if HZ_100
2586	default 128 if HZ_128
2587	default 250 if HZ_250
2588	default 256 if HZ_256
2589	default 1000 if HZ_1000
2590	default 1024 if HZ_1024
2591
2592config SCHED_HRTICK
2593	def_bool HIGH_RES_TIMERS
2594
2595source "kernel/Kconfig.preempt"
2596
2597config KEXEC
2598	bool "Kexec system call"
2599	help
2600	  kexec is a system call that implements the ability to shutdown your
2601	  current kernel, and to start another kernel.  It is like a reboot
2602	  but it is independent of the system firmware.   And like a reboot
2603	  you can start any kernel with it, not just Linux.
2604
2605	  The name comes from the similarity to the exec system call.
2606
2607	  It is an ongoing process to be certain the hardware in a machine
2608	  is properly shutdown, so do not be surprised if this code does not
2609	  initially work for you.  As of this writing the exact hardware
2610	  interface is strongly in flux, so no good recommendation can be
2611	  made.
2612
2613config CRASH_DUMP
2614	  bool "Kernel crash dumps"
2615	  help
2616	  Generate crash dump after being started by kexec.
2617	  This should be normally only set in special crash dump kernels
2618	  which are loaded in the main kernel with kexec-tools into
2619	  a specially reserved region and then later executed after
2620	  a crash by kdump/kexec. The crash dump kernel must be compiled
2621	  to a memory address not used by the main kernel or firmware using
2622	  PHYSICAL_START.
2623
2624config PHYSICAL_START
2625	  hex "Physical address where the kernel is loaded"
2626	  default "0xffffffff84000000" if 64BIT
2627	  default "0x84000000" if 32BIT
2628	  depends on CRASH_DUMP
2629	  help
2630	  This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
2631	  If you plan to use kernel for capturing the crash dump change
2632	  this value to start of the reserved region (the "X" value as
2633	  specified in the "crashkernel=YM@XM" command line boot parameter
2634	  passed to the panic-ed kernel).
2635
2636config SECCOMP
2637	bool "Enable seccomp to safely compute untrusted bytecode"
2638	depends on PROC_FS
2639	default y
2640	help
2641	  This kernel feature is useful for number crunching applications
2642	  that may need to compute untrusted bytecode during their
2643	  execution. By using pipes or other transports made available to
2644	  the process as file descriptors supporting the read/write
2645	  syscalls, it's possible to isolate those applications in
2646	  their own address space using seccomp. Once seccomp is
2647	  enabled via /proc/<pid>/seccomp, it cannot be disabled
2648	  and the task is only allowed to execute a few safe syscalls
2649	  defined by each seccomp mode.
2650
2651	  If unsure, say Y. Only embedded should say N here.
2652
2653config MIPS_O32_FP64_SUPPORT
2654	bool "Support for O32 binaries using 64-bit FP (EXPERIMENTAL)"
2655	depends on 32BIT || MIPS32_O32
2656	help
2657	  When this is enabled, the kernel will support use of 64-bit floating
2658	  point registers with binaries using the O32 ABI along with the
2659	  EF_MIPS_FP64 ELF header flag (typically built with -mfp64). On
2660	  32-bit MIPS systems this support is at the cost of increasing the
2661	  size and complexity of the compiled FPU emulator. Thus if you are
2662	  running a MIPS32 system and know that none of your userland binaries
2663	  will require 64-bit floating point, you may wish to reduce the size
2664	  of your kernel & potentially improve FP emulation performance by
2665	  saying N here.
2666
2667	  Although binutils currently supports use of this flag the details
2668	  concerning its effect upon the O32 ABI in userland are still being
2669	  worked on. In order to avoid userland becoming dependant upon current
2670	  behaviour before the details have been finalised, this option should
2671	  be considered experimental and only enabled by those working upon
2672	  said details.
2673
2674	  If unsure, say N.
2675
2676config USE_OF
2677	bool
2678	select OF
2679	select OF_EARLY_FLATTREE
2680	select IRQ_DOMAIN
2681
2682config BUILTIN_DTB
2683	bool
2684
2685choice
2686	prompt "Kernel appended dtb support" if OF
2687	default MIPS_NO_APPENDED_DTB
2688
2689	config MIPS_NO_APPENDED_DTB
2690		bool "None"
2691		help
2692		  Do not enable appended dtb support.
2693
2694	config MIPS_RAW_APPENDED_DTB
2695		bool "vmlinux.bin"
2696		help
2697		  With this option, the boot code will look for a device tree binary
2698		  DTB) appended to raw vmlinux.bin (without decompressor).
2699		  (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
2700
2701		  This is meant as a backward compatibility convenience for those
2702		  systems with a bootloader that can't be upgraded to accommodate
2703		  the documented boot protocol using a device tree.
2704
2705		  Beware that there is very little in terms of protection against
2706		  this option being confused by leftover garbage in memory that might
2707		  look like a DTB header after a reboot if no actual DTB is appended
2708		  to vmlinux.bin.  Do not leave this option active in a production kernel
2709		  if you don't intend to always append a DTB.
2710
2711	config MIPS_ZBOOT_APPENDED_DTB
2712		bool "vmlinuz.bin"
2713		depends on SYS_SUPPORTS_ZBOOT
2714		help
2715		  With this option, the boot code will look for a device tree binary
2716		  DTB) appended to raw vmlinuz.bin (with decompressor).
2717		  (e.g. cat vmlinuz.bin <filename>.dtb > vmlinuz_w_dtb).
2718
2719		  This is meant as a backward compatibility convenience for those
2720		  systems with a bootloader that can't be upgraded to accommodate
2721		  the documented boot protocol using a device tree.
2722
2723		  Beware that there is very little in terms of protection against
2724		  this option being confused by leftover garbage in memory that might
2725		  look like a DTB header after a reboot if no actual DTB is appended
2726		  to vmlinuz.bin.  Do not leave this option active in a production kernel
2727		  if you don't intend to always append a DTB.
2728endchoice
2729
2730endmenu
2731
2732config LOCKDEP_SUPPORT
2733	bool
2734	default y
2735
2736config STACKTRACE_SUPPORT
2737	bool
2738	default y
2739
2740config PGTABLE_LEVELS
2741	int
2742	default 3 if 64BIT && !PAGE_SIZE_64KB
2743	default 2
2744
2745source "init/Kconfig"
2746
2747source "kernel/Kconfig.freezer"
2748
2749menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
2750
2751config HW_HAS_EISA
2752	bool
2753config HW_HAS_PCI
2754	bool
2755
2756config PCI
2757	bool "Support for PCI controller"
2758	depends on HW_HAS_PCI
2759	select PCI_DOMAINS
2760	select NO_GENERIC_PCI_IOPORT_MAP
2761	help
2762	  Find out whether you have a PCI motherboard. PCI is the name of a
2763	  bus system, i.e. the way the CPU talks to the other stuff inside
2764	  your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
2765	  say Y, otherwise N.
2766
2767config HT_PCI
2768	bool "Support for HT-linked PCI"
2769	default y
2770	depends on CPU_LOONGSON3
2771	select PCI
2772	select PCI_DOMAINS
2773	help
2774	  Loongson family machines use Hyper-Transport bus for inter-core
2775	  connection and device connection. The PCI bus is a subordinate
2776	  linked at HT. Choose Y for Loongson-3 based machines.
2777
2778config PCI_DOMAINS
2779	bool
2780
2781source "drivers/pci/Kconfig"
2782
2783source "drivers/pci/pcie/Kconfig"
2784
2785#
2786# ISA support is now enabled via select.  Too many systems still have the one
2787# or other ISA chip on the board that users don't know about so don't expect
2788# users to choose the right thing ...
2789#
2790config ISA
2791	bool
2792
2793config EISA
2794	bool "EISA support"
2795	depends on HW_HAS_EISA
2796	select ISA
2797	select GENERIC_ISA_DMA
2798	---help---
2799	  The Extended Industry Standard Architecture (EISA) bus was
2800	  developed as an open alternative to the IBM MicroChannel bus.
2801
2802	  The EISA bus provided some of the features of the IBM MicroChannel
2803	  bus while maintaining backward compatibility with cards made for
2804	  the older ISA bus.  The EISA bus saw limited use between 1988 and
2805	  1995 when it was made obsolete by the PCI bus.
2806
2807	  Say Y here if you are building a kernel for an EISA-based machine.
2808
2809	  Otherwise, say N.
2810
2811source "drivers/eisa/Kconfig"
2812
2813config TC
2814	bool "TURBOchannel support"
2815	depends on MACH_DECSTATION
2816	help
2817	  TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
2818	  processors.  TURBOchannel programming specifications are available
2819	  at:
2820	  <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
2821	  and:
2822	  <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
2823	  Linux driver support status is documented at:
2824	  <http://www.linux-mips.org/wiki/DECstation>
2825
2826config MMU
2827	bool
2828	default y
2829
2830config I8253
2831	bool
2832	select CLKSRC_I8253
2833	select CLKEVT_I8253
2834	select MIPS_EXTERNAL_TIMER
2835
2836config ZONE_DMA
2837	bool
2838
2839config ZONE_DMA32
2840	bool
2841
2842source "drivers/pcmcia/Kconfig"
2843
2844source "drivers/pci/hotplug/Kconfig"
2845
2846config RAPIDIO
2847	tristate "RapidIO support"
2848	depends on PCI
2849	default n
2850	help
2851	  If you say Y here, the kernel will include drivers and
2852	  infrastructure code to support RapidIO interconnect devices.
2853
2854source "drivers/rapidio/Kconfig"
2855
2856endmenu
2857
2858menu "Executable file formats"
2859
2860source "fs/Kconfig.binfmt"
2861
2862config TRAD_SIGNALS
2863	bool
2864
2865config MIPS32_COMPAT
2866	bool
2867
2868config COMPAT
2869	bool
2870
2871config SYSVIPC_COMPAT
2872	bool
2873
2874config MIPS32_O32
2875	bool "Kernel support for o32 binaries"
2876	depends on 64BIT
2877	select ARCH_WANT_OLD_COMPAT_IPC
2878	select COMPAT
2879	select MIPS32_COMPAT
2880	select SYSVIPC_COMPAT if SYSVIPC
2881	help
2882	  Select this option if you want to run o32 binaries.  These are pure
2883	  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
2884	  existing binaries are in this format.
2885
2886	  If unsure, say Y.
2887
2888config MIPS32_N32
2889	bool "Kernel support for n32 binaries"
2890	depends on 64BIT
2891	select COMPAT
2892	select MIPS32_COMPAT
2893	select SYSVIPC_COMPAT if SYSVIPC
2894	help
2895	  Select this option if you want to run n32 binaries.  These are
2896	  64-bit binaries using 32-bit quantities for addressing and certain
2897	  data that would normally be 64-bit.  They are used in special
2898	  cases.
2899
2900	  If unsure, say N.
2901
2902config BINFMT_ELF32
2903	bool
2904	default y if MIPS32_O32 || MIPS32_N32
2905
2906endmenu
2907
2908menu "Power management options"
2909
2910config ARCH_HIBERNATION_POSSIBLE
2911	def_bool y
2912	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2913
2914config ARCH_SUSPEND_POSSIBLE
2915	def_bool y
2916	depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
2917
2918source "kernel/power/Kconfig"
2919
2920endmenu
2921
2922config MIPS_EXTERNAL_TIMER
2923	bool
2924
2925menu "CPU Power Management"
2926
2927if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
2928source "drivers/cpufreq/Kconfig"
2929endif
2930
2931source "drivers/cpuidle/Kconfig"
2932
2933endmenu
2934
2935source "net/Kconfig"
2936
2937source "drivers/Kconfig"
2938
2939source "drivers/firmware/Kconfig"
2940
2941source "fs/Kconfig"
2942
2943source "arch/mips/Kconfig.debug"
2944
2945source "security/Kconfig"
2946
2947source "crypto/Kconfig"
2948
2949source "lib/Kconfig"
2950
2951source "arch/mips/kvm/Kconfig"
2952