![David S. Miller](/assets/img/avatar_default.png)
Several implementations were essentialy a common piece of C code using the cmpxchg() macro. Put the implementation in one spot that everyone can share, and convert sparc64 over to using this. Alpha is the lone arch-specific implementation, which codes up a special fast path for the common case in order to avoid GP reloading which a pure C version would require. Signed-off-by: David S. Miller <davem@davemloft.net>
478 lines
11 KiB
Text
478 lines
11 KiB
Text
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
#
|
|
|
|
config 64BIT
|
|
def_bool y
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config UID16
|
|
bool
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
bool
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_ISA_DMA
|
|
bool
|
|
default y
|
|
|
|
config EARLY_PRINTK
|
|
bool
|
|
default y
|
|
|
|
config COMPAT
|
|
bool
|
|
default y
|
|
|
|
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
|
bool
|
|
default y
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
bool
|
|
default y
|
|
|
|
# We optimistically allocate largepages from the VM, so make the limit
|
|
# large enough (16MB). This badly named config option is actually
|
|
# max order + 1
|
|
config FORCE_MAX_ZONEORDER
|
|
int
|
|
default "13"
|
|
|
|
source "init/Kconfig"
|
|
|
|
config SYSVIPC_COMPAT
|
|
bool
|
|
depends on COMPAT && SYSVIPC
|
|
default y
|
|
|
|
menu "Platform support"
|
|
|
|
choice
|
|
prompt "Platform Type"
|
|
default PPC_MULTIPLATFORM
|
|
|
|
config PPC_ISERIES
|
|
bool "IBM Legacy iSeries"
|
|
|
|
config PPC_MULTIPLATFORM
|
|
bool "Generic"
|
|
|
|
endchoice
|
|
|
|
config PPC_PSERIES
|
|
depends on PPC_MULTIPLATFORM
|
|
bool " IBM pSeries & new iSeries"
|
|
default y
|
|
|
|
config PPC_BPA
|
|
bool " Broadband Processor Architecture"
|
|
depends on PPC_MULTIPLATFORM
|
|
|
|
config PPC_PMAC
|
|
depends on PPC_MULTIPLATFORM
|
|
bool " Apple G5 based machines"
|
|
default y
|
|
select U3_DART
|
|
|
|
config PPC_MAPLE
|
|
depends on PPC_MULTIPLATFORM
|
|
bool " Maple 970FX Evaluation Board"
|
|
select U3_DART
|
|
select MPIC_BROKEN_U3
|
|
default n
|
|
help
|
|
This option enables support for the Maple 970FX Evaluation Board.
|
|
For more informations, refer to <http://www.970eval.com>
|
|
|
|
config PPC
|
|
bool
|
|
default y
|
|
|
|
config PPC64
|
|
bool
|
|
default y
|
|
|
|
config PPC_OF
|
|
depends on PPC_MULTIPLATFORM
|
|
bool
|
|
default y
|
|
|
|
config XICS
|
|
depends on PPC_PSERIES
|
|
bool
|
|
default y
|
|
|
|
config MPIC
|
|
depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE
|
|
bool
|
|
default y
|
|
|
|
config BPA_IIC
|
|
depends on PPC_BPA
|
|
bool
|
|
default y
|
|
|
|
# VMX is pSeries only for now until somebody writes the iSeries
|
|
# exception vectors for it
|
|
config ALTIVEC
|
|
bool "Support for VMX (Altivec) vector unit"
|
|
depends on PPC_MULTIPLATFORM
|
|
default y
|
|
|
|
config PPC_SPLPAR
|
|
depends on PPC_PSERIES
|
|
bool "Support for shared-processor logical partitions"
|
|
default n
|
|
help
|
|
Enabling this option will make the kernel run more efficiently
|
|
on logically-partitioned pSeries systems which use shared
|
|
processors, that is, which share physical processors between
|
|
two or more partitions.
|
|
|
|
config KEXEC
|
|
bool "kexec system call (EXPERIMENTAL)"
|
|
depends on PPC_MULTIPLATFORM && EXPERIMENTAL
|
|
help
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is indepedent of the system firmware. And like a reboot
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
The name comes from the similiarity to the exec system call.
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
initially work for you. It may help to enable device hotplugging
|
|
support. As of this writing the exact hardware interface is
|
|
strongly in flux, so no good recommendation can be made.
|
|
|
|
config IBMVIO
|
|
depends on PPC_PSERIES || PPC_ISERIES
|
|
bool
|
|
default y
|
|
|
|
config U3_DART
|
|
bool
|
|
depends on PPC_MULTIPLATFORM
|
|
default n
|
|
|
|
config MPIC_BROKEN_U3
|
|
bool
|
|
depends on PPC_MAPLE
|
|
default y
|
|
|
|
config PPC_PMAC64
|
|
bool
|
|
depends on PPC_PMAC
|
|
default y
|
|
|
|
config BOOTX_TEXT
|
|
bool "Support for early boot text console"
|
|
depends PPC_OF
|
|
help
|
|
Say Y here to see progress messages from the boot firmware in text
|
|
mode. Requires an Open Firmware compatible video card.
|
|
|
|
config POWER4_ONLY
|
|
bool "Optimize for POWER4"
|
|
default n
|
|
---help---
|
|
Cause the compiler to optimize for POWER4 processors. The resulting
|
|
binary will not work on POWER3 or RS64 processors when compiled with
|
|
binutils 2.15 or later.
|
|
|
|
config IOMMU_VMERGE
|
|
bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
|
|
depends on EXPERIMENTAL
|
|
default n
|
|
help
|
|
Cause IO segments sent to a device for DMA to be merged virtually
|
|
by the IOMMU when they happen to have been allocated contiguously.
|
|
This doesn't add pressure to the IOMMU allocator. However, some
|
|
drivers don't support getting large merged segments coming back
|
|
from *_map_sg(). Say Y if you know the drivers you are using are
|
|
properly handling this case.
|
|
|
|
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 single and multiprocessor
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
you say Y here, the kernel will run on single-processor machines.
|
|
On a single-processor machine, the kernel will run faster if you say
|
|
N here.
|
|
|
|
If you don't know what to do here, say Y.
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-128)"
|
|
range 2 128
|
|
depends on SMP
|
|
default "32"
|
|
|
|
config HMT
|
|
bool "Hardware multithreading"
|
|
depends on SMP && PPC_PSERIES && BROKEN
|
|
help
|
|
This option enables hardware multithreading on RS64 cpus.
|
|
pSeries systems p620 and p660 have such a cpu type.
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool y
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
def_bool y
|
|
depends on !NUMA
|
|
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
|
def_bool y
|
|
depends on SMP && PPC_PSERIES
|
|
|
|
config ARCH_DISCONTIGMEM_DEFAULT
|
|
def_bool y
|
|
depends on ARCH_DISCONTIGMEM_ENABLE
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
def_bool y
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y
|
|
depends on ARCH_DISCONTIGMEM_ENABLE
|
|
|
|
source "mm/Kconfig"
|
|
|
|
config HAVE_ARCH_EARLY_PFN_TO_NID
|
|
def_bool y
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
# 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.
|
|
#
|
|
# This is a relatively temporary hack that should
|
|
# be able to go away when sparsemem is fully in
|
|
# place
|
|
config NODES_SPAN_OTHER_NODES
|
|
def_bool y
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
config NUMA
|
|
bool "NUMA support"
|
|
default y if DISCONTIGMEM || SPARSEMEM
|
|
|
|
config SCHED_SMT
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
depends on SMP
|
|
default off
|
|
help
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
when dealing with POWER5 cpus at a cost of slightly increased
|
|
overhead in some places. If unsure say N here.
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
source kernel/Kconfig.hz
|
|
|
|
config EEH
|
|
bool "PCI Extended Error Handling (EEH)" if EMBEDDED
|
|
depends on PPC_PSERIES
|
|
default y if !EMBEDDED
|
|
|
|
#
|
|
# Use the generic interrupt handling code in kernel/irq/:
|
|
#
|
|
config GENERIC_HARDIRQS
|
|
bool
|
|
default y
|
|
|
|
config PPC_RTAS
|
|
bool
|
|
depends on PPC_PSERIES || PPC_BPA
|
|
default y
|
|
|
|
config RTAS_PROC
|
|
bool "Proc interface to RTAS"
|
|
depends on PPC_RTAS
|
|
default y
|
|
|
|
config RTAS_FLASH
|
|
tristate "Firmware flash interface"
|
|
depends on RTAS_PROC
|
|
|
|
config SCANLOG
|
|
tristate "Scanlog dump interface"
|
|
depends on RTAS_PROC && PPC_PSERIES
|
|
|
|
config LPARCFG
|
|
tristate "LPAR Configuration Data"
|
|
depends on PPC_PSERIES || PPC_ISERIES
|
|
help
|
|
Provide system capacity information via human readable
|
|
<key word>=<value> pairs through a /proc/ppc64/lparcfg interface.
|
|
|
|
config SECCOMP
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
depends on 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.
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SMP && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
|
|
select HOTPLUG
|
|
---help---
|
|
Say Y here to be able to turn CPUs off and on.
|
|
|
|
Say N if you are unsure.
|
|
|
|
config PROC_DEVICETREE
|
|
bool "Support for Open Firmware device tree in /proc"
|
|
depends on !PPC_ISERIES
|
|
help
|
|
This option adds a device-tree directory under /proc which contains
|
|
an image of the device tree that the kernel copies from Open
|
|
Firmware. If unsure, say Y here.
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
depends on !PPC_ISERIES
|
|
|
|
config CMDLINE
|
|
string "Initial kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
|
|
help
|
|
On some platforms, there is currently no way for the boot loader to
|
|
pass arguments to the kernel. For these platforms, you can supply
|
|
some command-line options at build time by entering them here. In
|
|
most cases you will need to specify the root device here.
|
|
|
|
endmenu
|
|
|
|
config ISA_DMA_API
|
|
bool
|
|
default y
|
|
|
|
menu "Bus Options"
|
|
|
|
config ISA
|
|
bool
|
|
help
|
|
Find out whether you have ISA slots on your motherboard. ISA is the
|
|
name of a bus system, i.e. the way the CPU talks to the other stuff
|
|
inside your box. If you have an Apple machine, say N here; if you
|
|
have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
|
|
you have an embedded board, consult your board documentation.
|
|
|
|
config SBUS
|
|
bool
|
|
|
|
config MCA
|
|
bool
|
|
|
|
config EISA
|
|
bool
|
|
|
|
config PCI
|
|
bool "support for PCI devices" if (EMBEDDED && PPC_ISERIES)
|
|
default y
|
|
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_DOMAINS
|
|
bool
|
|
default PCI
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
menu "iSeries device drivers"
|
|
depends on PPC_ISERIES
|
|
|
|
config VIOCONS
|
|
tristate "iSeries Virtual Console Support"
|
|
|
|
config VIODASD
|
|
tristate "iSeries Virtual I/O disk support"
|
|
help
|
|
If you are running on an iSeries system and you want to use
|
|
virtual disks created and managed by OS/400, say Y.
|
|
|
|
config VIOCD
|
|
tristate "iSeries Virtual I/O CD support"
|
|
help
|
|
If you are running Linux on an IBM iSeries system and you want to
|
|
read a CD drive owned by OS/400, say Y here.
|
|
|
|
config VIOTAPE
|
|
tristate "iSeries Virtual Tape Support"
|
|
help
|
|
If you are running Linux on an iSeries system and you want Linux
|
|
to read and/or write a tape drive owned by OS/400, say Y here.
|
|
|
|
endmenu
|
|
|
|
config VIOPATH
|
|
bool
|
|
depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || VETH
|
|
default y
|
|
|
|
source "arch/ppc64/oprofile/Kconfig"
|
|
|
|
source "arch/ppc64/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
config KEYS_COMPAT
|
|
bool
|
|
depends on COMPAT && KEYS
|
|
default y
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|