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