source: src/linux/universal/linux-4.9/arch/mips/Kconfig @ 31859

Last change on this file since 31859 was 31859, checked in by brainslayer, 11 days ago

kernel update

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