Root/arch/mips/Kconfig

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

Archive Download this file



interactive