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