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