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