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