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