| config 64BIT | 
 | 	bool "64-bit kernel" if "$(ARCH)" = "sparc" | 
 | 	default "$(ARCH)" = "sparc64" | 
 | 	help | 
 | 	  SPARC is a family of RISC microprocessors designed and marketed by | 
 | 	  Sun Microsystems, incorporated.  They are very widely found in Sun | 
 | 	  workstations and clones. | 
 |  | 
 | 	  Say yes to build a 64-bit kernel - formerly known as sparc64 | 
 | 	  Say no to build a 32-bit kernel - formerly known as sparc | 
 |  | 
 | config SPARC | 
 | 	bool | 
 | 	default y | 
 | 	select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI | 
 | 	select ARCH_MIGHT_HAVE_PC_SERIO | 
 | 	select OF | 
 | 	select OF_PROMTREE | 
 | 	select HAVE_IDE | 
 | 	select HAVE_OPROFILE | 
 | 	select HAVE_ARCH_KGDB if !SMP || SPARC64 | 
 | 	select HAVE_ARCH_TRACEHOOK | 
 | 	select HAVE_EXIT_THREAD | 
 | 	select SYSCTL_EXCEPTION_TRACE | 
 | 	select RTC_CLASS | 
 | 	select RTC_DRV_M48T59 | 
 | 	select RTC_SYSTOHC | 
 | 	select HAVE_ARCH_JUMP_LABEL if SPARC64 | 
 | 	select GENERIC_IRQ_SHOW | 
 | 	select ARCH_WANT_IPC_PARSE_VERSION | 
 | 	select GENERIC_PCI_IOMAP | 
 | 	select HAVE_NMI_WATCHDOG if SPARC64 | 
 | 	select HAVE_CBPF_JIT if SPARC32 | 
 | 	select HAVE_EBPF_JIT if SPARC64 | 
 | 	select HAVE_DEBUG_BUGVERBOSE | 
 | 	select GENERIC_SMP_IDLE_THREAD | 
 | 	select GENERIC_CLOCKEVENTS | 
 | 	select GENERIC_STRNCPY_FROM_USER | 
 | 	select GENERIC_STRNLEN_USER | 
 | 	select MODULES_USE_ELF_RELA | 
 | 	select ODD_RT_SIGACTION | 
 | 	select OLD_SIGSUSPEND | 
 | 	select ARCH_HAS_SG_CHAIN | 
 | 	select CPU_NO_EFFICIENT_FFS | 
 | 	select LOCKDEP_SMALL if LOCKDEP | 
 | 	select NEED_DMA_MAP_STATE | 
 | 	select NEED_SG_DMA_LENGTH | 
 |  | 
 | config SPARC32 | 
 | 	def_bool !64BIT | 
 | 	select ARCH_HAS_SYNC_DMA_FOR_CPU | 
 | 	select DMA_DIRECT_OPS | 
 | 	select GENERIC_ATOMIC64 | 
 | 	select CLZ_TAB | 
 | 	select HAVE_UID16 | 
 | 	select OLD_SIGACTION | 
 |  | 
 | config SPARC64 | 
 | 	def_bool 64BIT | 
 | 	select HAVE_FUNCTION_TRACER | 
 | 	select HAVE_FUNCTION_GRAPH_TRACER | 
 | 	select HAVE_KRETPROBES | 
 | 	select HAVE_KPROBES | 
 | 	select HAVE_RCU_TABLE_FREE if SMP | 
 | 	select HAVE_MEMBLOCK_NODE_MAP | 
 | 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE | 
 | 	select HAVE_DYNAMIC_FTRACE | 
 | 	select HAVE_FTRACE_MCOUNT_RECORD | 
 | 	select HAVE_SYSCALL_TRACEPOINTS | 
 | 	select HAVE_CONTEXT_TRACKING | 
 | 	select HAVE_DEBUG_KMEMLEAK | 
 | 	select IOMMU_HELPER | 
 | 	select SPARSE_IRQ | 
 | 	select RTC_DRV_CMOS | 
 | 	select RTC_DRV_BQ4802 | 
 | 	select RTC_DRV_SUN4V | 
 | 	select RTC_DRV_STARFIRE | 
 | 	select HAVE_PERF_EVENTS | 
 | 	select PERF_USE_VMALLOC | 
 | 	select IRQ_PREFLOW_FASTEOI | 
 | 	select ARCH_HAVE_NMI_SAFE_CMPXCHG | 
 | 	select HAVE_C_RECORDMCOUNT | 
 | 	select HAVE_ARCH_AUDITSYSCALL | 
 | 	select ARCH_SUPPORTS_ATOMIC_RMW | 
 | 	select HAVE_NMI | 
 | 	select HAVE_REGS_AND_STACK_ACCESS_API | 
 | 	select ARCH_USE_QUEUED_RWLOCKS | 
 | 	select ARCH_USE_QUEUED_SPINLOCKS | 
 | 	select GENERIC_TIME_VSYSCALL | 
 | 	select ARCH_CLOCKSOURCE_DATA | 
 | 	select ARCH_HAS_PTE_SPECIAL | 
 |  | 
 | config ARCH_DEFCONFIG | 
 | 	string | 
 | 	default "arch/sparc/configs/sparc32_defconfig" if SPARC32 | 
 | 	default "arch/sparc/configs/sparc64_defconfig" if SPARC64 | 
 |  | 
 | config ARCH_PROC_KCORE_TEXT | 
 | 	def_bool y | 
 |  | 
 | config CPU_BIG_ENDIAN | 
 | 	def_bool y | 
 |  | 
 | config ARCH_ATU | 
 | 	bool | 
 | 	default y if SPARC64 | 
 |  | 
 | config STACKTRACE_SUPPORT | 
 | 	bool | 
 | 	default y if SPARC64 | 
 |  | 
 | config LOCKDEP_SUPPORT | 
 | 	bool | 
 | 	default y if SPARC64 | 
 |  | 
 | config ARCH_HIBERNATION_POSSIBLE | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config AUDIT_ARCH | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config HAVE_SETUP_PER_CPU_AREA | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config NEED_PER_CPU_EMBED_FIRST_CHUNK | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config NEED_PER_CPU_PAGE_FIRST_CHUNK | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config MMU | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config HIGHMEM | 
 | 	bool | 
 | 	default y if SPARC32 | 
 |  | 
 | config ZONE_DMA | 
 | 	bool | 
 | 	default y if SPARC32 | 
 |  | 
 | config GENERIC_ISA_DMA | 
 | 	bool | 
 | 	default y if SPARC32 | 
 |  | 
 | config ARCH_SUPPORTS_DEBUG_PAGEALLOC | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config PGTABLE_LEVELS | 
 | 	default 4 if 64BIT | 
 | 	default 3 | 
 |  | 
 | config ARCH_SUPPORTS_UPROBES | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | menu "Processor type and features" | 
 |  | 
 | config SMP | 
 | 	bool "Symmetric multi-processing support" | 
 | 	---help--- | 
 | 	  This enables support for systems with more than one CPU. If you have | 
 | 	  a system with only one CPU, say N. If you have a system with more | 
 | 	  than one CPU, say Y. | 
 |  | 
 | 	  If you say N here, the kernel will run on uni- and multiprocessor | 
 | 	  machines, but will use only one CPU of a multiprocessor machine. If | 
 | 	  you say Y here, the kernel will run on many, but not all, | 
 | 	  uniprocessor machines. On a uniprocessor machine, the kernel | 
 | 	  will run faster if you say N here. | 
 |  | 
 | 	  People using multiprocessor machines who say Y here should also say | 
 | 	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power | 
 | 	  Management" code will be disabled if you say Y here. | 
 |  | 
 | 	  See also <file:Documentation/lockup-watchdogs.txt> and the SMP-HOWTO | 
 | 	  available at <http://www.tldp.org/docs.html#howto>. | 
 |  | 
 | 	  If you don't know what to do here, say N. | 
 |  | 
 | config NR_CPUS | 
 | 	int "Maximum number of CPUs" | 
 | 	depends on SMP | 
 | 	range 2 32 if SPARC32 | 
 | 	range 2 4096 if SPARC64 | 
 | 	default 32 if SPARC32 | 
 | 	default 4096 if SPARC64 | 
 |  | 
 | source kernel/Kconfig.hz | 
 |  | 
 | config RWSEM_GENERIC_SPINLOCK | 
 | 	bool | 
 | 	default y if SPARC32 | 
 |  | 
 | config RWSEM_XCHGADD_ALGORITHM | 
 | 	bool | 
 | 	default y if SPARC64 | 
 |  | 
 | config GENERIC_HWEIGHT | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config GENERIC_CALIBRATE_DELAY | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config ARCH_MAY_HAVE_PC_FDC | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config EMULATED_CMPXCHG | 
 | 	bool | 
 | 	default y if SPARC32 | 
 | 	help | 
 | 	  Sparc32 does not have a CAS instruction like sparc64. cmpxchg() | 
 | 	  is emulated, and therefore it is not completely atomic. | 
 |  | 
 | # Makefile helpers | 
 | config SPARC32_SMP | 
 | 	bool | 
 | 	default y | 
 | 	depends on SPARC32 && SMP | 
 |  | 
 | config SPARC64_SMP | 
 | 	bool | 
 | 	default y | 
 | 	depends on SPARC64 && SMP | 
 |  | 
 | config EARLYFB | 
 | 	bool "Support for early boot text console" | 
 | 	default y | 
 | 	depends on SPARC64 | 
 | 	help | 
 | 	  Say Y here to enable a faster early framebuffer boot console. | 
 |  | 
 | config SECCOMP | 
 | 	bool "Enable seccomp to safely compute untrusted bytecode" | 
 | 	depends on SPARC64 && PROC_FS | 
 | 	default y | 
 | 	help | 
 | 	  This kernel feature is useful for number crunching applications | 
 | 	  that may need to compute untrusted bytecode during their | 
 | 	  execution. By using pipes or other transports made available to | 
 | 	  the process as file descriptors supporting the read/write | 
 | 	  syscalls, it's possible to isolate those applications in | 
 | 	  their own address space using seccomp. Once seccomp is | 
 | 	  enabled via /proc/<pid>/seccomp, it cannot be disabled | 
 | 	  and the task is only allowed to execute a few safe syscalls | 
 | 	  defined by each seccomp mode. | 
 |  | 
 | 	  If unsure, say Y. Only embedded should say N here. | 
 |  | 
 | config HOTPLUG_CPU | 
 | 	bool "Support for hot-pluggable CPUs" | 
 | 	depends on SPARC64 && SMP | 
 | 	help | 
 | 	  Say Y here to experiment with turning CPUs off and on.  CPUs | 
 | 	  can be controlled through /sys/devices/system/cpu/cpu#. | 
 | 	  Say N if you want to disable CPU hotplug. | 
 |  | 
 | if SPARC64 | 
 | source "drivers/cpufreq/Kconfig" | 
 | endif | 
 |  | 
 | config US3_MC | 
 | 	tristate "UltraSPARC-III Memory Controller driver" | 
 | 	depends on SPARC64 | 
 | 	default y | 
 | 	help | 
 | 	  This adds a driver for the UltraSPARC-III memory controller. | 
 | 	  Loading this driver allows exact mnemonic strings to be | 
 | 	  printed in the event of a memory error, so that the faulty DIMM | 
 | 	  on the motherboard can be matched to the error. | 
 |  | 
 | 	  If in doubt, say Y, as this information can be very useful. | 
 |  | 
 | # Global things across all Sun machines. | 
 | config GENERIC_LOCKBREAK | 
 | 	bool | 
 | 	default y | 
 | 	depends on SPARC64 && SMP && PREEMPT | 
 |  | 
 | config NUMA | 
 | 	bool "NUMA support" | 
 | 	depends on SPARC64 && SMP | 
 |  | 
 | config NODES_SHIFT | 
 | 	int "Maximum NUMA Nodes (as a power of 2)" | 
 | 	range 4 5 if SPARC64 | 
 | 	default "5" | 
 | 	depends on NEED_MULTIPLE_NODES | 
 | 	help | 
 | 	  Specify the maximum number of NUMA Nodes available on the target | 
 | 	  system.  Increases memory reserved to accommodate various tables. | 
 |  | 
 | # Some NUMA nodes have memory ranges that span | 
 | # other nodes.  Even though a pfn is valid and | 
 | # between a node's start and end pfns, it may not | 
 | # reside on that node.  See memmap_init_zone() | 
 | # for details. | 
 | config NODES_SPAN_OTHER_NODES | 
 | 	def_bool y | 
 | 	depends on NEED_MULTIPLE_NODES | 
 |  | 
 | config ARCH_SELECT_MEMORY_MODEL | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config ARCH_SPARSEMEM_ENABLE | 
 | 	def_bool y if SPARC64 | 
 | 	select SPARSEMEM_VMEMMAP_ENABLE | 
 |  | 
 | config ARCH_SPARSEMEM_DEFAULT | 
 | 	def_bool y if SPARC64 | 
 |  | 
 | config FORCE_MAX_ZONEORDER | 
 | 	int "Maximum zone order" | 
 | 	default "13" | 
 | 	help | 
 | 	  The kernel memory allocator divides physically contiguous memory | 
 | 	  blocks into "zones", where each zone is a power of two number of | 
 | 	  pages.  This option selects the largest power of two that the kernel | 
 | 	  keeps in the memory allocator.  If you need to allocate very large | 
 | 	  blocks of physically contiguous memory, then you may need to | 
 | 	  increase this value. | 
 |  | 
 | 	  This config option is actually maximum order plus one. For example, | 
 | 	  a value of 13 means that the largest free memory block is 2^12 pages. | 
 |  | 
 | if SPARC64 | 
 | source "kernel/power/Kconfig" | 
 | endif | 
 |  | 
 | config SCHED_SMT | 
 | 	bool "SMT (Hyperthreading) scheduler support" | 
 | 	depends on SPARC64 && SMP | 
 | 	default y | 
 | 	help | 
 | 	  SMT scheduler support improves the CPU scheduler's decision making | 
 | 	  when dealing with SPARC cpus at a cost of slightly increased overhead | 
 | 	  in some places. If unsure say N here. | 
 |  | 
 | config SCHED_MC | 
 | 	bool "Multi-core scheduler support" | 
 | 	depends on SPARC64 && SMP | 
 | 	default y | 
 | 	help | 
 | 	  Multi-core scheduler support improves the CPU scheduler's decision | 
 | 	  making when dealing with multi-core CPU chips at a cost of slightly | 
 | 	  increased overhead in some places. If unsure say N here. | 
 |  | 
 | config CMDLINE_BOOL | 
 | 	bool "Default bootloader kernel arguments" | 
 | 	depends on SPARC64 | 
 |  | 
 | config CMDLINE | 
 | 	string "Initial kernel command string" | 
 | 	depends on CMDLINE_BOOL | 
 | 	default "console=ttyS0,9600 root=/dev/sda1" | 
 | 	help | 
 | 	  Say Y here if you want to be able to pass default arguments to | 
 | 	  the kernel. This will be overridden by the bootloader, if you | 
 | 	  use one (such as SILO). This is most useful if you want to boot | 
 | 	  a kernel from TFTP, and want default options to be available | 
 | 	  with having them passed on the command line. | 
 |  | 
 | 	  NOTE: This option WILL override the PROM bootargs setting! | 
 |  | 
 | config SUN_PM | 
 | 	bool | 
 | 	default y if SPARC32 | 
 | 	help | 
 | 	  Enable power management and CPU standby features on supported | 
 | 	  SPARC platforms. | 
 |  | 
 | config SPARC_LED | 
 | 	tristate "Sun4m LED driver" | 
 | 	depends on SPARC32 | 
 | 	help | 
 | 	  This driver toggles the front-panel LED on sun4m systems | 
 | 	  in a user-specifiable manner.  Its state can be probed | 
 | 	  by reading /proc/led and its blinking mode can be changed | 
 | 	  via writes to /proc/led | 
 |  | 
 | config SERIAL_CONSOLE | 
 | 	bool | 
 | 	depends on SPARC32 | 
 | 	default y | 
 | 	---help--- | 
 | 	  If you say Y here, it will be possible to use a serial port as the | 
 | 	  system console (the system console is the device which receives all | 
 | 	  kernel messages and warnings and which allows logins in single user | 
 | 	  mode). This could be useful if some terminal or printer is connected | 
 | 	  to that serial port. | 
 |  | 
 | 	  Even if you say Y here, the currently visible virtual console | 
 | 	  (/dev/tty0) will still be used as the system console by default, but | 
 | 	  you can alter that using a kernel command line option such as | 
 | 	  "console=ttyS1". (Try "man bootparam" or see the documentation of | 
 | 	  your boot loader (silo) about how to pass options to the kernel at | 
 | 	  boot time.) | 
 |  | 
 | 	  If you don't have a graphics card installed and you say Y here, the | 
 | 	  kernel will automatically use the first serial line, /dev/ttyS0, as | 
 | 	  system console. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config SPARC_LEON | 
 | 	bool "Sparc Leon processor family" | 
 | 	depends on SPARC32 | 
 | 	select USB_EHCI_BIG_ENDIAN_MMIO | 
 | 	select USB_EHCI_BIG_ENDIAN_DESC | 
 | 	select USB_UHCI_BIG_ENDIAN_MMIO | 
 | 	select USB_UHCI_BIG_ENDIAN_DESC | 
 | 	---help--- | 
 | 	  If you say Y here if you are running on a SPARC-LEON processor. | 
 | 	  The LEON processor is a synthesizable VHDL model of the | 
 | 	  SPARC-v8 standard. LEON is  part of the GRLIB collection of | 
 | 	  IP cores that are distributed under GPL. GRLIB can be downloaded | 
 | 	  from www.gaisler.com. You can download a sparc-linux cross-compilation | 
 | 	  toolchain at www.gaisler.com. | 
 |  | 
 | if SPARC_LEON | 
 | menu "U-Boot options" | 
 |  | 
 | config UBOOT_LOAD_ADDR | 
 | 	hex "uImage Load Address" | 
 | 	default 0x40004000 | 
 | 	---help--- | 
 | 	 U-Boot kernel load address, the address in physical address space | 
 | 	 where u-boot will place the Linux kernel before booting it. | 
 | 	 This address is normally the base address of main memory + 0x4000. | 
 |  | 
 | config UBOOT_FLASH_ADDR | 
 | 	hex "uImage.o Load Address" | 
 | 	default 0x00080000 | 
 | 	---help--- | 
 | 	 Optional setting only affecting the uImage.o ELF-image used to | 
 | 	 download the uImage file to the target using a ELF-loader other than | 
 | 	 U-Boot. It may for example be used to download an uImage to FLASH with | 
 | 	 the GRMON utility before even starting u-boot. | 
 |  | 
 | config UBOOT_ENTRY_ADDR | 
 | 	hex "uImage Entry Address" | 
 | 	default 0xf0004000 | 
 | 	---help--- | 
 | 	 Do not change this unless you know what you're doing. This is | 
 | 	 hardcoded by the SPARC32 and LEON port. | 
 |  | 
 | 	 This is the virtual address u-boot jumps to when booting the Linux | 
 | 	 Kernel. | 
 |  | 
 | endmenu | 
 | endif | 
 |  | 
 | endmenu | 
 |  | 
 | menu "Bus options (PCI etc.)" | 
 | config SBUS | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config SBUSCHAR | 
 | 	bool | 
 | 	default y | 
 |  | 
 | config SUN_LDOMS | 
 | 	bool "Sun Logical Domains support" | 
 | 	depends on SPARC64 | 
 | 	help | 
 | 	  Say Y here is you want to support virtual devices via | 
 | 	  Logical Domains. | 
 |  | 
 | config PCI | 
 | 	bool "Support for PCI and PS/2 keyboard/mouse" | 
 | 	help | 
 | 	  Find out whether your system includes a PCI bus. PCI is the name of | 
 | 	  a bus system, i.e. the way the CPU talks to the other stuff inside | 
 | 	  your box.  If you say Y here, the kernel will include drivers and | 
 | 	  infrastructure code to support PCI bus devices. | 
 |  | 
 | 	  CONFIG_PCI is needed for all JavaStation's (including MrCoffee), | 
 | 	  CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC. | 
 | 	  All of these platforms are extremely obscure, so say N if unsure. | 
 |  | 
 | config PCI_DOMAINS | 
 | 	def_bool PCI if SPARC64 | 
 |  | 
 | config PCI_SYSCALL | 
 | 	def_bool PCI | 
 |  | 
 | config PCIC_PCI | 
 | 	bool | 
 | 	depends on PCI && SPARC32 && !SPARC_LEON | 
 | 	default y | 
 |  | 
 | config LEON_PCI | 
 | 	bool | 
 | 	depends on PCI && SPARC_LEON | 
 | 	default y | 
 |  | 
 | config SPARC_GRPCI1 | 
 | 	bool "GRPCI Host Bridge Support" | 
 | 	depends on LEON_PCI | 
 | 	default y | 
 | 	help | 
 | 	  Say Y here to include the GRPCI Host Bridge Driver. The GRPCI | 
 | 	  PCI host controller is typically found in GRLIB SPARC32/LEON | 
 | 	  systems. The driver has one property (all_pci_errors) controlled | 
 | 	  from the bootloader that makes the GRPCI to generate interrupts | 
 | 	  on detected PCI Parity and System errors. | 
 |  | 
 | config SPARC_GRPCI2 | 
 | 	bool "GRPCI2 Host Bridge Support" | 
 | 	depends on LEON_PCI | 
 | 	default y | 
 | 	help | 
 | 	  Say Y here to include the GRPCI2 Host Bridge Driver. | 
 |  | 
 | source "drivers/pci/Kconfig" | 
 |  | 
 | source "drivers/pcmcia/Kconfig" | 
 |  | 
 | config SUN_OPENPROMFS | 
 | 	tristate "Openprom tree appears in /proc/openprom" | 
 | 	help | 
 | 	  If you say Y, the OpenPROM device tree will be available as a | 
 | 	  virtual file system, which you can mount to /proc/openprom by "mount | 
 | 	  -t openpromfs none /proc/openprom". | 
 |  | 
 | 	  To compile the /proc/openprom support as a module, choose M here: the | 
 | 	  module will be called openpromfs. | 
 |  | 
 | 	  Only choose N if you know in advance that you will not need to modify | 
 | 	  OpenPROM settings on the running system. | 
 |  | 
 | # Makefile helpers | 
 | config SPARC64_PCI | 
 | 	bool | 
 | 	default y | 
 | 	depends on SPARC64 && PCI | 
 |  | 
 | config SPARC64_PCI_MSI | 
 | 	bool | 
 | 	default y | 
 | 	depends on SPARC64_PCI && PCI_MSI | 
 |  | 
 | endmenu | 
 |  | 
 | config COMPAT | 
 | 	bool | 
 | 	depends on SPARC64 | 
 | 	default y | 
 | 	select COMPAT_BINFMT_ELF | 
 | 	select HAVE_UID16 | 
 | 	select ARCH_WANT_OLD_COMPAT_IPC | 
 | 	select COMPAT_OLD_SIGACTION | 
 |  | 
 | config SYSVIPC_COMPAT | 
 | 	bool | 
 | 	depends on COMPAT && SYSVIPC | 
 | 	default y | 
 |  | 
 | source "drivers/sbus/char/Kconfig" |