arch/sparc: Introduce xchg16 for SPARC
[linux-block.git] / arch / sparc / Kconfig
CommitLineData
761b6026
BB
1config 64BIT
2 bool "64-bit kernel" if ARCH = "sparc"
3 default ARCH = "sparc64"
4 help
5 SPARC is a family of RISC microprocessors designed and marketed by
6 Sun Microsystems, incorporated. They are very widely found in Sun
7 workstations and clones.
8
9 Say yes to build a 64-bit kernel - formerly known as sparc64
10 Say no to build a 32-bit kernel - formerly known as sparc
11
35da3e39
SR
12config SPARC
13 bool
14 default y
ff649a6f 15 select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
a5252c28 16 select ARCH_MIGHT_HAVE_PC_SERIO
7b14c647 17 select OF
3cfc535c 18 select OF_PROMTREE
35da3e39
SR
19 select HAVE_IDE
20 select HAVE_OPROFILE
26b4c912 21 select HAVE_ARCH_KGDB if !SMP || SPARC64
35da3e39 22 select HAVE_ARCH_TRACEHOOK
5f56a5df 23 select HAVE_EXIT_THREAD
7ac57a89 24 select SYSCTL_EXCEPTION_TRACE
35da3e39
SR
25 select RTC_CLASS
26 select RTC_DRV_M48T59
460ea8d7 27 select RTC_SYSTOHC
451d7400 28 select HAVE_DMA_API_DEBUG
4f6500ff 29 select HAVE_ARCH_JUMP_LABEL if SPARC64
6baa9b20 30 select GENERIC_IRQ_SHOW
c1d7e01d 31 select ARCH_WANT_IPC_PARSE_VERSION
a21a2fd4 32 select GENERIC_PCI_IOMAP
d314d74c 33 select HAVE_NMI_WATCHDOG if SPARC64
7a12b503
DM
34 select HAVE_CBPF_JIT if SPARC32
35 select HAVE_EBPF_JIT if SPARC64
9b2a60c4 36 select HAVE_DEBUG_BUGVERBOSE
f0a2bc7e 37 select GENERIC_SMP_IDLE_THREAD
c7523a7c 38 select GENERIC_CLOCKEVENTS
2922585b 39 select GENERIC_STRNCPY_FROM_USER
2c66f623 40 select GENERIC_STRNLEN_USER
786d35d4 41 select MODULES_USE_ELF_RELA
eaca6eae 42 select ODD_RT_SIGACTION
52ad6b3f 43 select OLD_SIGSUSPEND
308c09f1 44 select ARCH_HAS_SG_CHAIN
fff7fb0b 45 select CPU_NO_EFFICIENT_FFS
395102db 46 select LOCKDEP_SMALL if LOCKDEP
1a8b6d76 47 select ARCH_WANT_RELAX_ORDER
35da3e39 48
35da3e39 49config SPARC32
761b6026 50 def_bool !64BIT
aea1181b 51 select GENERIC_ATOMIC64
c6df4b17 52 select CLZ_TAB
af1839eb 53 select HAVE_UID16
a274bd49 54 select OLD_SIGACTION
35da3e39 55
26b4c912 56config SPARC64
761b6026 57 def_bool 64BIT
26b4c912 58 select HAVE_FUNCTION_TRACER
9960e9e8 59 select HAVE_FUNCTION_GRAPH_TRACER
26b4c912
SR
60 select HAVE_KRETPROBES
61 select HAVE_KPROBES
4a0100f7 62 select HAVE_RCU_TABLE_FREE if SMP
95f72d1e 63 select HAVE_MEMBLOCK
2a4814df 64 select HAVE_MEMBLOCK_NODE_MAP
b9156ebb 65 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
9be12f9b
DM
66 select HAVE_DYNAMIC_FTRACE
67 select HAVE_FTRACE_MCOUNT_RECORD
c658ad1b 68 select HAVE_SYSCALL_TRACEPOINTS
812cb83a 69 select HAVE_CONTEXT_TRACKING
b69ec42b 70 select HAVE_DEBUG_KMEMLEAK
ee6a9333 71 select SPARSE_IRQ
26b4c912
SR
72 select RTC_DRV_CMOS
73 select RTC_DRV_BQ4802
74 select RTC_DRV_SUN4V
75 select RTC_DRV_STARFIRE
cdd6c482 76 select HAVE_PERF_EVENTS
906010b2 77 select PERF_USE_VMALLOC
fcd8d4f4 78 select IRQ_PREFLOW_FASTEOI
df013ffb 79 select ARCH_HAVE_NMI_SAFE_CMPXCHG
178a2960 80 select HAVE_C_RECORDMCOUNT
625d693e 81 select NO_BOOTMEM
7a017721 82 select HAVE_ARCH_AUDITSYSCALL
4badad35 83 select ARCH_SUPPORTS_ATOMIC_RMW
42a0bb3f 84 select HAVE_NMI
b7c02b73 85 select HAVE_REGS_AND_STACK_ACCESS_API
a37594f1 86 select ARCH_USE_QUEUED_RWLOCKS
26b4c912 87
5e538790
SR
88config ARCH_DEFCONFIG
89 string
90 default "arch/sparc/configs/sparc32_defconfig" if SPARC32
91 default "arch/sparc/configs/sparc64_defconfig" if SPARC64
92
3c08158e
DM
93config ARCH_PROC_KCORE_TEXT
94 def_bool y
95
97d9f969
BM
96config CPU_BIG_ENDIAN
97 def_bool y
98
c88c545b
DK
99config ARCH_ATU
100 bool
101 default y if SPARC64
102
d30a6b84
TD
103config ARCH_DMA_ADDR_T_64BIT
104 bool
105 default y if ARCH_ATU
106
26b4c912
SR
107config IOMMU_HELPER
108 bool
109 default y if SPARC64
110
26b4c912
SR
111config STACKTRACE_SUPPORT
112 bool
113 default y if SPARC64
114
115config LOCKDEP_SUPPORT
116 bool
117 default y if SPARC64
118
bdde6b3c
TK
119config ARCH_HIBERNATION_POSSIBLE
120 def_bool y if SPARC64
121
26b4c912
SR
122config AUDIT_ARCH
123 bool
7e7e93a2 124 default y
26b4c912
SR
125
126config HAVE_SETUP_PER_CPU_AREA
127 def_bool y if SPARC64
128
bcb2107f 129config NEED_PER_CPU_EMBED_FIRST_CHUNK
4fd78a5f
DM
130 def_bool y if SPARC64
131
a70c6913
TH
132config NEED_PER_CPU_PAGE_FIRST_CHUNK
133 def_bool y if SPARC64
134
1da177e4
LT
135config MMU
136 bool
137 default y
138
1da177e4
LT
139config HIGHMEM
140 bool
26b4c912 141 default y if SPARC32
1da177e4 142
5ac6da66
CL
143config ZONE_DMA
144 bool
26b4c912 145 default y if SPARC32
5ac6da66 146
d15b51be
FT
147config NEED_DMA_MAP_STATE
148 def_bool y
149
18e98307
FT
150config NEED_SG_DMA_LENGTH
151 def_bool y
152
1da177e4
LT
153config GENERIC_ISA_DMA
154 bool
26b4c912 155 default y if SPARC32
1da177e4 156
6a11f75b
AM
157config ARCH_SUPPORTS_DEBUG_PAGEALLOC
158 def_bool y if SPARC64
159
81a2936c
KS
160config PGTABLE_LEVELS
161 default 4 if 64BIT
162 default 3
163
e8f4aa60
AP
164config ARCH_SUPPORTS_UPROBES
165 def_bool y if SPARC64
166
1da177e4
LT
167source "init/Kconfig"
168
dc52ddc0
MH
169source "kernel/Kconfig.freezer"
170
26b4c912 171menu "Processor type and features"
1da177e4 172
1da177e4 173config SMP
6b7679dd 174 bool "Symmetric multi-processing support"
1da177e4
LT
175 ---help---
176 This enables support for systems with more than one CPU. If you have
177 a system with only one CPU, say N. If you have a system with more
178 than one CPU, say Y.
179
4a474157 180 If you say N here, the kernel will run on uni- and multiprocessor
1da177e4
LT
181 machines, but will use only one CPU of a multiprocessor machine. If
182 you say Y here, the kernel will run on many, but not all,
4a474157 183 uniprocessor machines. On a uniprocessor machine, the kernel
1da177e4
LT
184 will run faster if you say N here.
185
186 People using multiprocessor machines who say Y here should also say
187 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
188 Management" code will be disabled if you say Y here.
189
03502faa
AB
190 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
191 available at <http://www.tldp.org/docs.html#howto>.
1da177e4
LT
192
193 If you don't know what to do here, say N.
194
195config NR_CPUS
26b4c912 196 int "Maximum number of CPUs"
1da177e4 197 depends on SMP
26b4c912
SR
198 range 2 32 if SPARC32
199 range 2 1024 if SPARC64
200 default 32 if SPARC32
201 default 64 if SPARC64
1da177e4 202
26b4c912 203source kernel/Kconfig.hz
1da177e4 204
1da177e4
LT
205config RWSEM_GENERIC_SPINLOCK
206 bool
26b4c912 207 default y if SPARC32
1da177e4
LT
208
209config RWSEM_XCHGADD_ALGORITHM
210 bool
26b4c912 211 default y if SPARC64
1da177e4 212
d59288b7
AM
213config GENERIC_HWEIGHT
214 bool
e0b20296 215 default y
d59288b7 216
1da177e4
LT
217config GENERIC_CALIBRATE_DELAY
218 bool
219 default y
220
a08b6b79
Z
221config ARCH_MAY_HAVE_PC_FDC
222 bool
223 default y
224
5f81941c
MH
225config EMULATED_CMPXCHG
226 bool
26b4c912 227 default y if SPARC32
5f81941c
MH
228 help
229 Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
230 is emulated, and therefore it is not completely atomic.
231
d670bd4f
SR
232# Makefile helpers
233config SPARC32_SMP
234 bool
235 default y
236 depends on SPARC32 && SMP
237
238config SPARC64_SMP
239 bool
240 default y
241 depends on SPARC64 && SMP
242
c57ec52f
DM
243config EARLYFB
244 bool "Support for early boot text console"
245 default y
246 depends on SPARC64
247 help
248 Say Y here to enable a faster early framebuffer boot console.
249
26b4c912
SR
250config SECCOMP
251 bool "Enable seccomp to safely compute untrusted bytecode"
252 depends on SPARC64 && PROC_FS
253 default y
254 help
255 This kernel feature is useful for number crunching applications
256 that may need to compute untrusted bytecode during their
257 execution. By using pipes or other transports made available to
258 the process as file descriptors supporting the read/write
259 syscalls, it's possible to isolate those applications in
260 their own address space using seccomp. Once seccomp is
261 enabled via /proc/<pid>/seccomp, it cannot be disabled
262 and the task is only allowed to execute a few safe syscalls
263 defined by each seccomp mode.
264
265 If unsure, say Y. Only embedded should say N here.
266
267config HOTPLUG_CPU
268 bool "Support for hot-pluggable CPUs"
269 depends on SPARC64 && SMP
26b4c912
SR
270 help
271 Say Y here to experiment with turning CPUs off and on. CPUs
272 can be controlled through /sys/devices/system/cpu/cpu#.
273 Say N if you want to disable CPU hotplug.
274
26b4c912
SR
275if SPARC64
276source "drivers/cpufreq/Kconfig"
26b4c912
SR
277endif
278
279config US3_MC
280 tristate "UltraSPARC-III Memory Controller driver"
281 depends on SPARC64
282 default y
283 help
284 This adds a driver for the UltraSPARC-III memory controller.
285 Loading this driver allows exact mnemonic strings to be
286 printed in the event of a memory error, so that the faulty DIMM
287 on the motherboard can be matched to the error.
288
289 If in doubt, say Y, as this information can be very useful.
290
291# Global things across all Sun machines.
292config GENERIC_LOCKBREAK
1da177e4
LT
293 bool
294 default y
26b4c912
SR
295 depends on SPARC64 && SMP && PREEMPT
296
26b4c912
SR
297config NUMA
298 bool "NUMA support"
299 depends on SPARC64 && SMP
300
301config NODES_SHIFT
302 int
303 default "4"
304 depends on NEED_MULTIPLE_NODES
305
306# Some NUMA nodes have memory ranges that span
307# other nodes. Even though a pfn is valid and
308# between a node's start and end pfns, it may not
309# reside on that node. See memmap_init_zone()
310# for details.
311config NODES_SPAN_OTHER_NODES
312 def_bool y
313 depends on NEED_MULTIPLE_NODES
314
26b4c912
SR
315config ARCH_SELECT_MEMORY_MODEL
316 def_bool y if SPARC64
317
318config ARCH_SPARSEMEM_ENABLE
319 def_bool y if SPARC64
320 select SPARSEMEM_VMEMMAP_ENABLE
321
322config ARCH_SPARSEMEM_DEFAULT
323 def_bool y if SPARC64
324
c88c545b
DK
325config FORCE_MAX_ZONEORDER
326 int "Maximum zone order"
327 default "13"
328 help
329 The kernel memory allocator divides physically contiguous memory
330 blocks into "zones", where each zone is a power of two number of
331 pages. This option selects the largest power of two that the kernel
332 keeps in the memory allocator. If you need to allocate very large
333 blocks of physically contiguous memory, then you may need to
334 increase this value.
335
336 This config option is actually maximum order plus one. For example,
337 a value of 13 means that the largest free memory block is 2^12 pages.
338
26b4c912
SR
339source "mm/Kconfig"
340
bdde6b3c
TK
341if SPARC64
342source "kernel/power/Kconfig"
343endif
344
26b4c912
SR
345config SCHED_SMT
346 bool "SMT (Hyperthreading) scheduler support"
347 depends on SPARC64 && SMP
348 default y
349 help
350 SMT scheduler support improves the CPU scheduler's decision making
351 when dealing with SPARC cpus at a cost of slightly increased overhead
352 in some places. If unsure say N here.
353
354config SCHED_MC
355 bool "Multi-core scheduler support"
356 depends on SPARC64 && SMP
357 default y
358 help
359 Multi-core scheduler support improves the CPU scheduler's decision
360 making when dealing with multi-core CPU chips at a cost of slightly
361 increased overhead in some places. If unsure say N here.
362
26b4c912 363source "kernel/Kconfig.preempt"
26b4c912
SR
364
365config CMDLINE_BOOL
366 bool "Default bootloader kernel arguments"
367 depends on SPARC64
368
369config CMDLINE
370 string "Initial kernel command string"
371 depends on CMDLINE_BOOL
372 default "console=ttyS0,9600 root=/dev/sda1"
373 help
374 Say Y here if you want to be able to pass default arguments to
375 the kernel. This will be overridden by the bootloader, if you
376 use one (such as SILO). This is most useful if you want to boot
377 a kernel from TFTP, and want default options to be available
378 with having them passed on the command line.
379
380 NOTE: This option WILL override the PROM bootargs setting!
381
382config SUN_PM
383 bool
384 default y if SPARC32
1da177e4
LT
385 help
386 Enable power management and CPU standby features on supported
387 SPARC platforms.
388
4b27e0e1
SR
389config SPARC_LED
390 tristate "Sun4m LED driver"
26b4c912 391 depends on SPARC32
4b27e0e1
SR
392 help
393 This driver toggles the front-panel LED on sun4m systems
394 in a user-specifiable manner. Its state can be probed
395 by reading /proc/led and its blinking mode can be changed
396 via writes to /proc/led
397
26b4c912
SR
398config SERIAL_CONSOLE
399 bool
400 depends on SPARC32
401 default y
402 ---help---
403 If you say Y here, it will be possible to use a serial port as the
404 system console (the system console is the device which receives all
405 kernel messages and warnings and which allows logins in single user
406 mode). This could be useful if some terminal or printer is connected
407 to that serial port.
408
409 Even if you say Y here, the currently visible virtual console
410 (/dev/tty0) will still be used as the system console by default, but
411 you can alter that using a kernel command line option such as
412 "console=ttyS1". (Try "man bootparam" or see the documentation of
413 your boot loader (silo) about how to pass options to the kernel at
414 boot time.)
415
416 If you don't have a graphics card installed and you say Y here, the
417 kernel will automatically use the first serial line, /dev/ttyS0, as
418 system console.
419
420 If unsure, say N.
4b27e0e1 421
5213a780
KE
422config SPARC_LEON
423 bool "Sparc Leon processor family"
424 depends on SPARC32
9296d94d
FF
425 select USB_EHCI_BIG_ENDIAN_MMIO
426 select USB_EHCI_BIG_ENDIAN_DESC
5213a780
KE
427 ---help---
428 If you say Y here if you are running on a SPARC-LEON processor.
429 The LEON processor is a synthesizable VHDL model of the
430 SPARC-v8 standard. LEON is part of the GRLIB collection of
431 IP cores that are distributed under GPL. GRLIB can be downloaded
432 from www.gaisler.com. You can download a sparc-linux cross-compilation
433 toolchain at www.gaisler.com.
434
684151a7
DH
435if SPARC_LEON
436menu "U-Boot options"
437
438config UBOOT_LOAD_ADDR
439 hex "uImage Load Address"
440 default 0x40004000
441 ---help---
442 U-Boot kernel load address, the address in physical address space
443 where u-boot will place the Linux kernel before booting it.
444 This address is normally the base address of main memory + 0x4000.
445
446config UBOOT_FLASH_ADDR
447 hex "uImage.o Load Address"
448 default 0x00080000
449 ---help---
450 Optional setting only affecting the uImage.o ELF-image used to
451 download the uImage file to the target using a ELF-loader other than
452 U-Boot. It may for example be used to download an uImage to FLASH with
453 the GRMON utility before even starting u-boot.
454
455config UBOOT_ENTRY_ADDR
456 hex "uImage Entry Address"
457 default 0xf0004000
458 ---help---
459 Do not change this unless you know what you're doing. This is
460 hardcoded by the SPARC32 and LEON port.
461
462 This is the virtual address u-boot jumps to when booting the Linux
463 Kernel.
464
465endmenu
466endif
467
4b27e0e1
SR
468endmenu
469
470menu "Bus options (PCI etc.)"
4b27e0e1
SR
471config SBUS
472 bool
473 default y
474
475config SBUSCHAR
476 bool
477 default y
478
26b4c912
SR
479config SUN_LDOMS
480 bool "Sun Logical Domains support"
481 depends on SPARC64
482 help
483 Say Y here is you want to support virtual devices via
484 Logical Domains.
485
1da177e4
LT
486config PCI
487 bool "Support for PCI and PS/2 keyboard/mouse"
488 help
26b4c912
SR
489 Find out whether your system includes a PCI bus. PCI is the name of
490 a bus system, i.e. the way the CPU talks to the other stuff inside
491 your box. If you say Y here, the kernel will include drivers and
492 infrastructure code to support PCI bus devices.
493
1da177e4
LT
494 CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
495 CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
496 All of these platforms are extremely obscure, so say N if unsure.
497
26b4c912
SR
498config PCI_DOMAINS
499 def_bool PCI if SPARC64
500
36e23590
MW
501config PCI_SYSCALL
502 def_bool PCI
503
cfe3af5d
DH
504config PCIC_PCI
505 bool
8c47f8d0 506 depends on PCI && SPARC32 && !SPARC_LEON
cfe3af5d
DH
507 default y
508
26893c13
DH
509config LEON_PCI
510 bool
511 depends on PCI && SPARC_LEON
512 default y
513
d8650106
DH
514config SPARC_GRPCI1
515 bool "GRPCI Host Bridge Support"
516 depends on LEON_PCI
517 default y
518 help
519 Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
520 PCI host controller is typically found in GRLIB SPARC32/LEON
521 systems. The driver has one property (all_pci_errors) controlled
522 from the bootloader that makes the GRPCI to generate interrupts
523 on detected PCI Parity and System errors.
524
1ab0a676 525config SPARC_GRPCI2
5d07b786
DH
526 bool "GRPCI2 Host Bridge Support"
527 depends on LEON_PCI
528 default y
529 help
530 Say Y here to include the GRPCI2 Host Bridge Driver.
531
1da177e4
LT
532source "drivers/pci/Kconfig"
533
c6afec5e
DM
534source "drivers/pcmcia/Kconfig"
535
1da177e4
LT
536config SUN_OPENPROMFS
537 tristate "Openprom tree appears in /proc/openprom"
538 help
539 If you say Y, the OpenPROM device tree will be available as a
540 virtual file system, which you can mount to /proc/openprom by "mount
541 -t openpromfs none /proc/openprom".
542
543 To compile the /proc/openprom support as a module, choose M here: the
544 module will be called openpromfs.
545
546 Only choose N if you know in advance that you will not need to modify
547 OpenPROM settings on the running system.
548
a988fb80 549# Makefile helpers
d670bd4f
SR
550config SPARC64_PCI
551 bool
552 default y
553 depends on SPARC64 && PCI
30aaa808 554
a988fb80
TP
555config SPARC64_PCI_MSI
556 bool
557 default y
558 depends on SPARC64_PCI && PCI_MSI
559
30aaa808
WLII
560endmenu
561
12e271a8
SR
562menu "Executable file formats"
563
564source "fs/Kconfig.binfmt"
565
26b4c912
SR
566config COMPAT
567 bool
568 depends on SPARC64
569 default y
570 select COMPAT_BINFMT_ELF
af1839eb 571 select HAVE_UID16
48b25c43 572 select ARCH_WANT_OLD_COMPAT_IPC
a274bd49 573 select COMPAT_OLD_SIGACTION
26b4c912
SR
574
575config SYSVIPC_COMPAT
576 bool
577 depends on COMPAT && SYSVIPC
578 default y
579
45de6767
DH
580config KEYS_COMPAT
581 def_bool y if COMPAT && KEYS
582
12e271a8
SR
583endmenu
584
d5950b43
SR
585source "net/Kconfig"
586
30aaa808 587source "drivers/Kconfig"
1da177e4 588
1da177e4 589source "drivers/sbus/char/Kconfig"
1da177e4 590
1da177e4
LT
591source "fs/Kconfig"
592
1da177e4
LT
593source "arch/sparc/Kconfig.debug"
594
595source "security/Kconfig"
596
597source "crypto/Kconfig"
598
599source "lib/Kconfig"