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