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
12config SPARC
13	bool
14	default y
15	select OF
16	select OF_PROMTREE
17	select HAVE_IDE
18	select HAVE_OPROFILE
19	select HAVE_ARCH_KGDB if !SMP || SPARC64
20	select HAVE_ARCH_TRACEHOOK
21	select ARCH_WANT_OPTIONAL_GPIOLIB
22	select RTC_CLASS
23	select RTC_DRV_M48T59
24	select HAVE_IRQ_WORK
25	select HAVE_DMA_ATTRS
26	select HAVE_DMA_API_DEBUG
27	select HAVE_ARCH_JUMP_LABEL if SPARC64
28	select HAVE_GENERIC_HARDIRQS
29	select GENERIC_IRQ_SHOW
30	select USE_GENERIC_SMP_HELPERS if SMP
31	select GENERIC_PCI_IOMAP
32	select HAVE_NMI_WATCHDOG if SPARC64
33
34config SPARC32
35	def_bool !64BIT
36	select GENERIC_ATOMIC64
37	select CLZ_TAB
38
39config SPARC64
40	def_bool 64BIT
41	select ARCH_SUPPORTS_MSI
42	select HAVE_FUNCTION_TRACER
43	select HAVE_FUNCTION_GRAPH_TRACER
44	select HAVE_FUNCTION_GRAPH_FP_TEST
45	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
46	select HAVE_KRETPROBES
47	select HAVE_KPROBES
48	select HAVE_RCU_TABLE_FREE if SMP
49	select HAVE_MEMBLOCK
50	select HAVE_MEMBLOCK_NODE_MAP
51	select HAVE_SYSCALL_WRAPPERS
52	select HAVE_DYNAMIC_FTRACE
53	select HAVE_FTRACE_MCOUNT_RECORD
54	select HAVE_SYSCALL_TRACEPOINTS
55	select RTC_DRV_CMOS
56	select RTC_DRV_BQ4802
57	select RTC_DRV_SUN4V
58	select RTC_DRV_STARFIRE
59	select HAVE_PERF_EVENTS
60	select PERF_USE_VMALLOC
61	select IRQ_PREFLOW_FASTEOI
62	select ARCH_HAVE_NMI_SAFE_CMPXCHG
63	select HAVE_C_RECORDMCOUNT
64
65config ARCH_DEFCONFIG
66	string
67	default "arch/sparc/configs/sparc32_defconfig" if SPARC32
68	default "arch/sparc/configs/sparc64_defconfig" if SPARC64
69
70# CONFIG_BITS can be used at source level to get 32/64 bits
71config BITS
72	int
73	default 32 if SPARC32
74	default 64 if SPARC64
75
76config ARCH_USES_GETTIMEOFFSET
77	bool
78	default y if SPARC32
79
80config GENERIC_CMOS_UPDATE
81	bool
82	default y
83
84config GENERIC_CLOCKEVENTS
85	bool
86	default y if SPARC64
87
88config IOMMU_HELPER
89	bool
90	default y if SPARC64
91
92config STACKTRACE_SUPPORT
93	bool
94	default y if SPARC64
95
96config LOCKDEP_SUPPORT
97	bool
98	default y if SPARC64
99
100config HAVE_LATENCYTOP_SUPPORT
101	bool
102	default y if SPARC64
103
104config AUDIT_ARCH
105	bool
106	default y
107
108config HAVE_SETUP_PER_CPU_AREA
109	def_bool y if SPARC64
110
111config NEED_PER_CPU_EMBED_FIRST_CHUNK
112	def_bool y if SPARC64
113
114config NEED_PER_CPU_PAGE_FIRST_CHUNK
115	def_bool y if SPARC64
116
117config MMU
118	bool
119	default y
120
121config HIGHMEM
122	bool
123	default y if SPARC32
124
125config ZONE_DMA
126	bool
127	default y if SPARC32
128
129config NEED_DMA_MAP_STATE
130	def_bool y
131
132config NEED_SG_DMA_LENGTH
133	def_bool y
134
135config GENERIC_ISA_DMA
136	bool
137	default y if SPARC32
138
139config GENERIC_GPIO
140	bool
141	help
142	  Generic GPIO API support
143
144config ARCH_NO_VIRT_TO_BUS
145	def_bool y
146
147config ARCH_SUPPORTS_DEBUG_PAGEALLOC
148	def_bool y if SPARC64
149
150source "init/Kconfig"
151
152source "kernel/Kconfig.freezer"
153
154menu "Processor type and features"
155
156config SMP
157	bool "Symmetric multi-processing support (does not work on sun4/sun4c)"
158	---help---
159	  This enables support for systems with more than one CPU. If you have
160	  a system with only one CPU, say N. If you have a system with more
161	  than one CPU, say Y.
162
163	  If you say N here, the kernel will run on single and multiprocessor
164	  machines, but will use only one CPU of a multiprocessor machine. If
165	  you say Y here, the kernel will run on many, but not all,
166	  singleprocessor machines. On a singleprocessor machine, the kernel
167	  will run faster if you say N here.
168
169	  People using multiprocessor machines who say Y here should also say
170	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
171	  Management" code will be disabled if you say Y here.
172
173	  See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
174	  available at <http://www.tldp.org/docs.html#howto>.
175
176	  If you don't know what to do here, say N.
177
178config NR_CPUS
179	int "Maximum number of CPUs"
180	depends on SMP
181	range 2 32 if SPARC32
182	range 2 1024 if SPARC64
183	default 32 if SPARC32
184	default 64 if SPARC64
185
186source kernel/Kconfig.hz
187
188config RWSEM_GENERIC_SPINLOCK
189	bool
190	default y if SPARC32
191
192config RWSEM_XCHGADD_ALGORITHM
193	bool
194	default y if SPARC64
195
196config GENERIC_HWEIGHT
197	bool
198	default y if !ULTRA_HAS_POPULATION_COUNT
199
200config GENERIC_CALIBRATE_DELAY
201	bool
202	default y
203
204config ARCH_MAY_HAVE_PC_FDC
205	bool
206	default y
207
208config EMULATED_CMPXCHG
209	bool
210	default y if SPARC32
211	help
212	  Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
213	  is emulated, and therefore it is not completely atomic.
214
215# Makefile helpers
216config SPARC32_SMP
217	bool
218	default y
219	depends on SPARC32 && SMP
220
221config SPARC64_SMP
222	bool
223	default y
224	depends on SPARC64 && SMP
225
226config EARLYFB
227	bool "Support for early boot text console"
228	default y
229	depends on SPARC64
230	help
231	  Say Y here to enable a faster early framebuffer boot console.
232
233choice
234	prompt "Kernel page size" if SPARC64
235	default SPARC64_PAGE_SIZE_8KB
236
237config SPARC64_PAGE_SIZE_8KB
238	bool "8KB"
239	help
240	  This lets you select the page size of the kernel.
241
242	  8KB and 64KB work quite well, since SPARC ELF sections
243	  provide for up to 64KB alignment.
244
245	  If you don't know what to do, choose 8KB.
246
247config SPARC64_PAGE_SIZE_64KB
248	bool "64KB"
249
250endchoice
251
252config SECCOMP
253	bool "Enable seccomp to safely compute untrusted bytecode"
254	depends on SPARC64 && PROC_FS
255	default y
256	help
257	  This kernel feature is useful for number crunching applications
258	  that may need to compute untrusted bytecode during their
259	  execution. By using pipes or other transports made available to
260	  the process as file descriptors supporting the read/write
261	  syscalls, it's possible to isolate those applications in
262	  their own address space using seccomp. Once seccomp is
263	  enabled via /proc/<pid>/seccomp, it cannot be disabled
264	  and the task is only allowed to execute a few safe syscalls
265	  defined by each seccomp mode.
266
267	  If unsure, say Y. Only embedded should say N here.
268
269config HOTPLUG_CPU
270	bool "Support for hot-pluggable CPUs"
271	depends on SPARC64 && SMP
272	select HOTPLUG
273	help
274	  Say Y here to experiment with turning CPUs off and on.  CPUs
275	  can be controlled through /sys/devices/system/cpu/cpu#.
276	  Say N if you want to disable CPU hotplug.
277
278source "kernel/time/Kconfig"
279
280if SPARC64
281source "drivers/cpufreq/Kconfig"
282
283config US3_FREQ
284	tristate "UltraSPARC-III CPU Frequency driver"
285	depends on CPU_FREQ
286	select CPU_FREQ_TABLE
287	help
288	  This adds the CPUFreq driver for UltraSPARC-III processors.
289
290	  For details, take a look at <file:Documentation/cpu-freq>.
291
292	  If in doubt, say N.
293
294config US2E_FREQ
295	tristate "UltraSPARC-IIe CPU Frequency driver"
296	depends on CPU_FREQ
297	select CPU_FREQ_TABLE
298	help
299	  This adds the CPUFreq driver for UltraSPARC-IIe processors.
300
301	  For details, take a look at <file:Documentation/cpu-freq>.
302
303	  If in doubt, say N.
304
305endif
306
307config US3_MC
308	tristate "UltraSPARC-III Memory Controller driver"
309	depends on SPARC64
310	default y
311	help
312	  This adds a driver for the UltraSPARC-III memory controller.
313	  Loading this driver allows exact mnemonic strings to be
314	  printed in the event of a memory error, so that the faulty DIMM
315	  on the motherboard can be matched to the error.
316
317	  If in doubt, say Y, as this information can be very useful.
318
319# Global things across all Sun machines.
320config GENERIC_LOCKBREAK
321	bool
322	default y
323	depends on SPARC64 && SMP && PREEMPT
324
325choice
326	prompt "SPARC64 Huge TLB Page Size"
327	depends on SPARC64 && HUGETLB_PAGE
328	default HUGETLB_PAGE_SIZE_4MB
329
330config HUGETLB_PAGE_SIZE_4MB
331	bool "4MB"
332
333config HUGETLB_PAGE_SIZE_512K
334	bool "512K"
335
336config HUGETLB_PAGE_SIZE_64K
337	depends on !SPARC64_PAGE_SIZE_64KB
338	bool "64K"
339
340endchoice
341
342config NUMA
343	bool "NUMA support"
344	depends on SPARC64 && SMP
345
346config NODES_SHIFT
347	int
348	default "4"
349	depends on NEED_MULTIPLE_NODES
350
351# Some NUMA nodes have memory ranges that span
352# other nodes.  Even though a pfn is valid and
353# between a node's start and end pfns, it may not
354# reside on that node.  See memmap_init_zone()
355# for details.
356config NODES_SPAN_OTHER_NODES
357	def_bool y
358	depends on NEED_MULTIPLE_NODES
359
360config ARCH_SELECT_MEMORY_MODEL
361	def_bool y if SPARC64
362
363config ARCH_SPARSEMEM_ENABLE
364	def_bool y if SPARC64
365	select SPARSEMEM_VMEMMAP_ENABLE
366
367config ARCH_SPARSEMEM_DEFAULT
368	def_bool y if SPARC64
369
370source "mm/Kconfig"
371
372config SCHED_SMT
373	bool "SMT (Hyperthreading) scheduler support"
374	depends on SPARC64 && SMP
375	default y
376	help
377	  SMT scheduler support improves the CPU scheduler's decision making
378	  when dealing with SPARC cpus at a cost of slightly increased overhead
379	  in some places. If unsure say N here.
380
381config SCHED_MC
382	bool "Multi-core scheduler support"
383	depends on SPARC64 && SMP
384	default y
385	help
386	  Multi-core scheduler support improves the CPU scheduler's decision
387	  making when dealing with multi-core CPU chips at a cost of slightly
388	  increased overhead in some places. If unsure say N here.
389
390source "kernel/Kconfig.preempt"
391
392config CMDLINE_BOOL
393	bool "Default bootloader kernel arguments"
394	depends on SPARC64
395
396config CMDLINE
397	string "Initial kernel command string"
398	depends on CMDLINE_BOOL
399	default "console=ttyS0,9600 root=/dev/sda1"
400	help
401	  Say Y here if you want to be able to pass default arguments to
402	  the kernel. This will be overridden by the bootloader, if you
403	  use one (such as SILO). This is most useful if you want to boot
404	  a kernel from TFTP, and want default options to be available
405	  with having them passed on the command line.
406
407	  NOTE: This option WILL override the PROM bootargs setting!
408
409config SUN_PM
410	bool
411	default y if SPARC32
412	help
413	  Enable power management and CPU standby features on supported
414	  SPARC platforms.
415
416config SPARC_LED
417	tristate "Sun4m LED driver"
418	depends on SPARC32
419	help
420	  This driver toggles the front-panel LED on sun4m systems
421	  in a user-specifiable manner.  Its state can be probed
422	  by reading /proc/led and its blinking mode can be changed
423	  via writes to /proc/led
424
425config SERIAL_CONSOLE
426	bool
427	depends on SPARC32
428	default y
429	---help---
430	  If you say Y here, it will be possible to use a serial port as the
431	  system console (the system console is the device which receives all
432	  kernel messages and warnings and which allows logins in single user
433	  mode). This could be useful if some terminal or printer is connected
434	  to that serial port.
435
436	  Even if you say Y here, the currently visible virtual console
437	  (/dev/tty0) will still be used as the system console by default, but
438	  you can alter that using a kernel command line option such as
439	  "console=ttyS1". (Try "man bootparam" or see the documentation of
440	  your boot loader (silo) about how to pass options to the kernel at
441	  boot time.)
442
443	  If you don't have a graphics card installed and you say Y here, the
444	  kernel will automatically use the first serial line, /dev/ttyS0, as
445	  system console.
446
447	  If unsure, say N.
448
449config SPARC_LEON
450	bool "Sparc Leon processor family"
451	depends on SPARC32
452	---help---
453	  If you say Y here if you are running on a SPARC-LEON processor.
454	  The LEON processor is a synthesizable VHDL model of the
455	  SPARC-v8 standard. LEON is  part of the GRLIB collection of
456	  IP cores that are distributed under GPL. GRLIB can be downloaded
457	  from www.gaisler.com. You can download a sparc-linux cross-compilation
458	  toolchain at www.gaisler.com.
459
460if SPARC_LEON
461menu "U-Boot options"
462
463config UBOOT_LOAD_ADDR
464	hex "uImage Load Address"
465	default 0x40004000
466	---help---
467	 U-Boot kernel load address, the address in physical address space
468	 where u-boot will place the Linux kernel before booting it.
469	 This address is normally the base address of main memory + 0x4000.
470
471config UBOOT_FLASH_ADDR
472	hex "uImage.o Load Address"
473	default 0x00080000
474	---help---
475	 Optional setting only affecting the uImage.o ELF-image used to
476	 download the uImage file to the target using a ELF-loader other than
477	 U-Boot. It may for example be used to download an uImage to FLASH with
478	 the GRMON utility before even starting u-boot.
479
480config UBOOT_ENTRY_ADDR
481	hex "uImage Entry Address"
482	default 0xf0004000
483	---help---
484	 Do not change this unless you know what you're doing. This is
485	 hardcoded by the SPARC32 and LEON port.
486
487	 This is the virtual address u-boot jumps to when booting the Linux
488	 Kernel.
489
490endmenu
491endif
492
493endmenu
494
495menu "Bus options (PCI etc.)"
496config SBUS
497	bool
498	default y
499
500config SBUSCHAR
501	bool
502	default y
503
504config SUN_LDOMS
505	bool "Sun Logical Domains support"
506	depends on SPARC64
507	help
508	  Say Y here is you want to support virtual devices via
509	  Logical Domains.
510
511config PCI
512	bool "Support for PCI and PS/2 keyboard/mouse"
513	help
514	  Find out whether your system includes a PCI bus. PCI is the name of
515	  a bus system, i.e. the way the CPU talks to the other stuff inside
516	  your box.  If you say Y here, the kernel will include drivers and
517	  infrastructure code to support PCI bus devices.
518
519	  CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
520	  CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
521	  All of these platforms are extremely obscure, so say N if unsure.
522
523config PCI_DOMAINS
524	def_bool PCI if SPARC64
525
526config PCI_SYSCALL
527	def_bool PCI
528
529config PCIC_PCI
530	bool
531	depends on PCI && SPARC32 && !SPARC_LEON
532	default y
533
534config LEON_PCI
535	bool
536	depends on PCI && SPARC_LEON
537	default y
538
539config GRPCI2
540	bool "GRPCI2 Host Bridge Support"
541	depends on LEON_PCI
542	default y
543	help
544	  Say Y here to include the GRPCI2 Host Bridge Driver.
545
546source "drivers/pci/Kconfig"
547
548source "drivers/pcmcia/Kconfig"
549
550config SUN_OPENPROMFS
551	tristate "Openprom tree appears in /proc/openprom"
552	help
553	  If you say Y, the OpenPROM device tree will be available as a
554	  virtual file system, which you can mount to /proc/openprom by "mount
555	  -t openpromfs none /proc/openprom".
556
557	  To compile the /proc/openprom support as a module, choose M here: the
558	  module will be called openpromfs.
559
560	  Only choose N if you know in advance that you will not need to modify
561	  OpenPROM settings on the running system.
562
563# Makefile helper
564config SPARC64_PCI
565	bool
566	default y
567	depends on SPARC64 && PCI
568
569endmenu
570
571menu "Executable file formats"
572
573source "fs/Kconfig.binfmt"
574
575config COMPAT
576	bool
577	depends on SPARC64
578	default y
579	select COMPAT_BINFMT_ELF
580	select ARCH_WANT_OLD_COMPAT_IPC
581
582config SYSVIPC_COMPAT
583	bool
584	depends on COMPAT && SYSVIPC
585	default y
586
587config KEYS_COMPAT
588	def_bool y if COMPAT && KEYS
589
590endmenu
591
592source "net/Kconfig"
593
594source "drivers/Kconfig"
595
596source "drivers/sbus/char/Kconfig"
597
598source "fs/Kconfig"
599
600source "arch/sparc/Kconfig.debug"
601
602source "security/Kconfig"
603
604source "crypto/Kconfig"
605
606source "lib/Kconfig"
607