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