2005-09-26 02:04:21 -04:00
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
|
|
#
|
|
|
|
|
|
|
|
mainmenu "Linux/PowerPC Kernel Configuration"
|
|
|
|
|
2007-06-12 12:30:17 -04:00
|
|
|
source "arch/powerpc/platforms/Kconfig.cputype"
|
2007-03-19 06:53:53 -04:00
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config PPC32
|
|
|
|
bool
|
|
|
|
default y if !PPC64
|
|
|
|
|
|
|
|
config 64BIT
|
|
|
|
bool
|
|
|
|
default y if PPC64
|
|
|
|
|
2007-09-20 20:16:20 -04:00
|
|
|
config WORD_SIZE
|
|
|
|
int
|
|
|
|
default 64 if PPC64
|
|
|
|
default 32 if !PPC64
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config PPC_MERGE
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
config MMU
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2007-09-20 23:26:02 -04:00
|
|
|
config GENERIC_CMOS_UPDATE
|
|
|
|
def_bool y
|
|
|
|
|
2007-09-21 17:35:52 -04:00
|
|
|
config GENERIC_TIME
|
|
|
|
def_bool y
|
|
|
|
|
|
|
|
config GENERIC_TIME_VSYSCALL
|
|
|
|
def_bool y
|
|
|
|
|
2007-09-20 23:26:03 -04:00
|
|
|
config GENERIC_CLOCKEVENTS
|
|
|
|
def_bool y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config GENERIC_HARDIRQS
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2008-01-30 17:27:58 -05:00
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
2008-01-30 07:32:51 -05:00
|
|
|
def_bool PPC64
|
|
|
|
|
2006-06-29 05:24:43 -04:00
|
|
|
config IRQ_PER_CPU
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2008-04-17 00:35:00 -04:00
|
|
|
config STACKTRACE_SUPPORT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2008-04-17 00:35:01 -04:00
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
|
|
bool
|
|
|
|
depends on PPC64
|
|
|
|
default y
|
|
|
|
|
|
|
|
config LOCKDEP_SUPPORT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
|
|
bool
|
|
|
|
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2008-01-30 07:31:20 -05:00
|
|
|
config GENERIC_LOCKBREAK
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
depends on SMP && PREEMPT
|
|
|
|
|
2006-12-08 05:37:49 -05:00
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
|
|
bool
|
2006-12-08 05:37:53 -05:00
|
|
|
default y
|
2006-12-08 05:37:49 -05:00
|
|
|
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
|
|
bool
|
2006-12-08 05:37:53 -05:00
|
|
|
default y if 64BIT
|
2006-12-08 05:37:49 -05:00
|
|
|
|
2006-03-26 04:39:33 -05:00
|
|
|
config GENERIC_HWEIGHT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-05-19 16:35:32 -04:00
|
|
|
config GENERIC_FIND_NEXT_BIT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2008-04-11 09:06:36 -04:00
|
|
|
config GENERIC_GPIO
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Generic GPIO API support
|
|
|
|
|
2007-07-16 02:40:05 -04:00
|
|
|
config ARCH_NO_VIRT_TO_BUS
|
|
|
|
def_bool PPC64
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config PPC
|
|
|
|
bool
|
|
|
|
default y
|
2008-02-09 04:46:40 -05:00
|
|
|
select HAVE_IDE
|
2008-02-02 15:10:34 -05:00
|
|
|
select HAVE_OPROFILE
|
2008-02-02 15:10:35 -05:00
|
|
|
select HAVE_KPROBES
|
2008-03-04 17:28:37 -05:00
|
|
|
select HAVE_KRETPROBES
|
2008-02-13 19:56:49 -05:00
|
|
|
select HAVE_LMB
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config EARLY_PRINTK
|
|
|
|
bool
|
2005-11-23 01:57:25 -05:00
|
|
|
default y
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config COMPAT
|
|
|
|
bool
|
|
|
|
default y if PPC64
|
2008-01-02 20:03:11 -05:00
|
|
|
select COMPAT_BINFMT_ELF
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config SYSVIPC_COMPAT
|
|
|
|
bool
|
|
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
default y
|
|
|
|
|
|
|
|
# All PPC32s use generic nvram driver through ppc_md
|
|
|
|
config GENERIC_NVRAM
|
|
|
|
bool
|
|
|
|
default y if PPC32
|
|
|
|
|
|
|
|
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
|
|
bool
|
2007-03-04 01:04:44 -05:00
|
|
|
default !PPC_PSERIES || PCI
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2006-01-10 22:43:56 -05:00
|
|
|
config PPC_OF
|
|
|
|
def_bool y
|
|
|
|
|
2007-05-01 02:26:07 -04:00
|
|
|
config OF
|
|
|
|
def_bool y
|
|
|
|
|
2006-01-10 22:43:56 -05:00
|
|
|
config PPC_UDBG_16550
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config GENERIC_TBSYNC
|
|
|
|
bool
|
|
|
|
default y if PPC32 && SMP
|
|
|
|
default n
|
|
|
|
|
2006-09-12 03:04:40 -04:00
|
|
|
config AUDIT_ARCH
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-12-08 06:30:41 -05:00
|
|
|
config GENERIC_BUG
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
depends on BUG
|
|
|
|
|
2007-03-19 14:18:02 -04:00
|
|
|
config SYS_SUPPORTS_APM_EMULATION
|
2007-05-23 10:51:46 -04:00
|
|
|
default y if PMAC_APM_EMU
|
2007-03-19 14:18:02 -04:00
|
|
|
bool
|
|
|
|
|
2006-01-16 11:53:22 -05:00
|
|
|
config DEFAULT_UIMAGE
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Used to allow a board to specify it wants a uImage built by default
|
|
|
|
default n
|
|
|
|
|
2008-01-17 17:31:40 -05:00
|
|
|
config REDBOOT
|
|
|
|
bool
|
|
|
|
|
2007-12-07 20:12:39 -05:00
|
|
|
config HIBERNATE_32
|
2007-05-03 08:31:38 -04:00
|
|
|
bool
|
2007-12-07 20:12:39 -05:00
|
|
|
depends on (PPC_PMAC && !SMP) || BROKEN
|
|
|
|
default y
|
|
|
|
|
|
|
|
config HIBERNATE_64
|
|
|
|
bool
|
|
|
|
depends on BROKEN || (PPC_PMAC64 && EXPERIMENTAL)
|
|
|
|
default y
|
|
|
|
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
|
|
bool
|
|
|
|
depends on (PPC64 && HIBERNATE_64) || (PPC32 && HIBERNATE_32)
|
2007-05-03 08:31:38 -04:00
|
|
|
default y
|
|
|
|
|
2007-12-07 20:14:00 -05:00
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
|
|
def_bool y
|
|
|
|
depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200
|
|
|
|
|
2006-11-11 01:24:53 -05:00
|
|
|
config PPC_DCR_NATIVE
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config PPC_DCR_MMIO
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config PPC_DCR
|
|
|
|
bool
|
|
|
|
depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
|
|
|
|
default y
|
|
|
|
|
2006-11-11 01:25:08 -05:00
|
|
|
config PPC_OF_PLATFORM_PCI
|
|
|
|
bool
|
2007-12-20 23:37:07 -05:00
|
|
|
depends on PCI
|
2006-11-11 01:25:08 -05:00
|
|
|
depends on PPC64 # not supported on 32 bits yet
|
|
|
|
default n
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
source "init/Kconfig"
|
|
|
|
|
[POWERPC] 4xx: PLB to PCI Express support
This adds to the previous 2 patches the support for the 4xx PCI Express
cells as found in the 440SPe revA, revB and 405EX.
Unfortunately, due to significant differences between these, and other
interesting "features" of those pieces of HW, the code isn't as simple
as it is for PCI and PCI-X and some of the functions differ significantly
between the 3 implementations. Thus, not only this code can only support
those 3 implementations for now and will refuse to operate on any other,
but there are added ifdef's to avoid the bloat of building a fairly large
amount of code on platforms that don't need it.
Also, this code currently only supports fully initializing root complex
nodes, not endpoint. Some more code will have to be lifted from the
arch/ppc implementation to add the endpoint support, though it's mostly
differences in memory mapping, and the question on how to represent
endpoint mode PCI in the device-tree is thus open.
Many thanks to Stefan Roese for testing & fixing up the 405EX bits !
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-20 23:39:24 -05:00
|
|
|
source "arch/powerpc/sysdev/Kconfig"
|
2007-03-16 10:32:17 -04:00
|
|
|
source "arch/powerpc/platforms/Kconfig"
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
menu "Kernel options"
|
|
|
|
|
|
|
|
config HIGHMEM
|
|
|
|
bool "High memory support"
|
|
|
|
depends on PPC32
|
|
|
|
|
2007-09-20 23:26:03 -04:00
|
|
|
source kernel/time/Kconfig
|
2005-09-26 02:04:21 -04:00
|
|
|
source kernel/Kconfig.hz
|
|
|
|
source kernel/Kconfig.preempt
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
|
2007-11-28 19:21:13 -05:00
|
|
|
config HUGETLB_PAGE_SIZE_VARIABLE
|
|
|
|
bool
|
|
|
|
depends on HUGETLB_PAGE
|
|
|
|
default y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config MATH_EMULATION
|
|
|
|
bool "Math emulation"
|
2007-01-26 01:23:34 -05:00
|
|
|
depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
|
2005-09-26 02:04:21 -04:00
|
|
|
---help---
|
|
|
|
Some PowerPC chips designed for embedded applications do not have
|
|
|
|
a floating-point unit and therefore do not implement the
|
|
|
|
floating-point instructions in the PowerPC instruction set. If you
|
|
|
|
say Y here, the kernel will include code to emulate a floating-point
|
|
|
|
unit, which will allow programs that use floating-point
|
|
|
|
instructions to run.
|
|
|
|
|
2007-09-18 16:29:35 -04:00
|
|
|
config 8XX_MINIMAL_FPEMU
|
|
|
|
bool "Minimal math emulation for 8xx"
|
|
|
|
depends on 8xx && !MATH_EMULATION
|
|
|
|
help
|
|
|
|
Older arch/ppc kernels still emulated a few floating point
|
|
|
|
instructions such as load and store, even when full math
|
|
|
|
emulation is disabled. Say "Y" here if you want to preserve
|
|
|
|
this behavior.
|
|
|
|
|
|
|
|
It is recommended that you build a soft-float userspace instead.
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config IOMMU_VMERGE
|
2007-07-17 12:09:35 -04:00
|
|
|
bool "Enable IOMMU virtual merging"
|
|
|
|
depends on PPC64
|
|
|
|
default y
|
2005-09-26 02:04:21 -04:00
|
|
|
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
|
2007-07-17 12:09:35 -04:00
|
|
|
from *_map_sg().
|
|
|
|
|
|
|
|
Most drivers don't have this problem; it is safe to say Y here.
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2008-02-05 01:28:08 -05:00
|
|
|
config IOMMU_HELPER
|
|
|
|
def_bool PPC64
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config HOTPLUG_CPU
|
|
|
|
bool "Support for enabling/disabling CPUs"
|
|
|
|
depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
|
|
|
|
---help---
|
|
|
|
Say Y here to be able to disable and re-enable individual
|
|
|
|
CPUs at runtime on SMP machines.
|
|
|
|
|
|
|
|
Say N if you are unsure.
|
|
|
|
|
2006-06-29 05:24:27 -04:00
|
|
|
config ARCH_ENABLE_MEMORY_HOTPLUG
|
|
|
|
def_bool y
|
|
|
|
|
2008-02-05 03:10:18 -05:00
|
|
|
config ARCH_HAS_WALK_MEMORY
|
|
|
|
def_bool y
|
|
|
|
|
2008-02-05 03:10:17 -05:00
|
|
|
config ARCH_ENABLE_MEMORY_HOTREMOVE
|
|
|
|
def_bool y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config KEXEC
|
|
|
|
bool "kexec system call (EXPERIMENTAL)"
|
2007-05-11 20:58:43 -04:00
|
|
|
depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
|
2005-09-26 02:04:21 -04:00
|
|
|
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
|
2006-06-29 01:32:47 -04:00
|
|
|
but it is independent of the system firmware. And like a reboot
|
2005-09-26 02:04:21 -04:00
|
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
|
2006-06-29 01:32:47 -04:00
|
|
|
The name comes from the similarity to the exec system call.
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2006-01-14 16:48:25 -05:00
|
|
|
config CRASH_DUMP
|
2006-03-09 23:01:08 -05:00
|
|
|
bool "Build a kdump crash kernel (EXPERIMENTAL)"
|
2006-01-14 16:48:25 -05:00
|
|
|
depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
|
|
|
|
help
|
|
|
|
Build a kernel suitable for use as a kdump capture kernel.
|
|
|
|
The kernel will be linked at a different address than normal, and
|
|
|
|
so can only be used for Kdump.
|
|
|
|
|
|
|
|
Don't change this unless you know what you are doing.
|
|
|
|
|
2008-03-21 19:50:50 -04:00
|
|
|
config PHYP_DUMP
|
|
|
|
bool "Hypervisor-assisted dump (EXPERIMENTAL)"
|
|
|
|
depends on PPC_PSERIES && EXPERIMENTAL
|
|
|
|
help
|
|
|
|
Hypervisor-assisted dump is meant to be a kdump replacement
|
|
|
|
offering robustness and speed not possible without system
|
|
|
|
hypervisor assistence.
|
|
|
|
|
|
|
|
If unsure, say "N"
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config PPCBUG_NVRAM
|
|
|
|
bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
|
|
|
|
default y if PPC_PREP
|
|
|
|
|
|
|
|
config IRQ_ALL_CPUS
|
|
|
|
bool "Distribute interrupts on all CPUs by default"
|
|
|
|
depends on SMP && !MV64360
|
|
|
|
help
|
|
|
|
This option gives the kernel permission to distribute IRQs across
|
|
|
|
multiple CPUs. Saying N here will route all IRQs to the first
|
|
|
|
CPU. Generally saying Y is safe, although some problems have been
|
|
|
|
reported with SMP Power Macintoshes with this option enabled.
|
|
|
|
|
2005-10-28 20:46:58 -04:00
|
|
|
config NUMA
|
|
|
|
bool "NUMA support"
|
|
|
|
depends on PPC64
|
|
|
|
default y if SMP && PPC_PSERIES
|
|
|
|
|
2006-04-11 01:53:53 -04:00
|
|
|
config NODES_SHIFT
|
|
|
|
int
|
|
|
|
default "4"
|
|
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
|
|
def_bool y
|
|
|
|
depends on PPC64
|
|
|
|
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
2005-11-29 14:20:55 -05:00
|
|
|
def_bool y
|
|
|
|
depends on (PPC64 && !NUMA) || PPC32
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2005-11-10 22:22:35 -05:00
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
2005-09-26 02:04:21 -04:00
|
|
|
def_bool y
|
2005-11-29 14:20:55 -05:00
|
|
|
depends on PPC64
|
2007-10-16 04:24:17 -04:00
|
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2005-11-10 22:22:35 -05:00
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
2005-09-26 02:04:21 -04:00
|
|
|
def_bool y
|
2007-02-12 19:46:06 -05:00
|
|
|
depends on (SMP && PPC_PSERIES) || PPC_PS3
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2006-09-27 04:49:49 -04:00
|
|
|
config ARCH_POPULATES_NODE_MAP
|
2005-09-26 02:04:21 -04:00
|
|
|
def_bool y
|
2006-09-27 04:49:49 -04:00
|
|
|
|
|
|
|
source "mm/Kconfig"
|
2005-09-26 02:04:21 -04:00
|
|
|
|
2005-11-07 12:39:48 -05:00
|
|
|
config ARCH_MEMORY_PROBE
|
|
|
|
def_bool y
|
|
|
|
depends on MEMORY_HOTPLUG
|
|
|
|
|
2006-10-21 13:24:14 -04:00
|
|
|
# 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
|
|
|
|
|
2007-05-08 02:27:28 -04:00
|
|
|
config PPC_HAS_HASH_64K
|
|
|
|
bool
|
|
|
|
depends on PPC64
|
|
|
|
default n
|
|
|
|
|
2005-11-06 19:06:55 -05:00
|
|
|
config PPC_64K_PAGES
|
|
|
|
bool "64k page size"
|
2005-11-07 03:57:58 -05:00
|
|
|
depends on PPC64
|
2007-05-08 02:27:28 -04:00
|
|
|
select PPC_HAS_HASH_64K
|
2005-11-06 19:06:55 -05:00
|
|
|
help
|
|
|
|
This option changes the kernel logical page size to 64k. On machines
|
2007-04-12 19:01:34 -04:00
|
|
|
without processor support for 64k pages, the kernel will simulate
|
|
|
|
them by loading each individual 4k page on demand transparently,
|
|
|
|
while on hardware with such support, it will be used to map
|
|
|
|
normal application pages.
|
2005-11-06 19:06:55 -05:00
|
|
|
|
2008-04-10 21:11:56 -04:00
|
|
|
config FORCE_MAX_ZONEORDER
|
|
|
|
int "Maximum zone order"
|
|
|
|
default "9" if PPC_64K_PAGES
|
|
|
|
default "13" if PPC64 && !PPC_64K_PAGES
|
|
|
|
default "11"
|
|
|
|
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 11 means that the largest free memory block is 2^10 pages.
|
|
|
|
|
|
|
|
The page size is not necessarily 4KB. For example, on 64-bit
|
|
|
|
systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
|
|
|
|
this in mind when choosing a value for this option.
|
|
|
|
|
[POWERPC] Provide a way to protect 4k subpages when using 64k pages
Using 64k pages on 64-bit PowerPC systems makes life difficult for
emulators that are trying to emulate an ISA, such as x86, which use a
smaller page size, since the emulator can no longer use the MMU and
the normal system calls for controlling page protections. Of course,
the emulator can emulate the MMU by checking and possibly remapping
the address for each memory access in software, but that is pretty
slow.
This provides a facility for such programs to control the access
permissions on individual 4k sub-pages of 64k pages. The idea is
that the emulator supplies an array of protection masks to apply to a
specified range of virtual addresses. These masks are applied at the
level where hardware PTEs are inserted into the hardware page table
based on the Linux PTEs, so the Linux PTEs are not affected. Note
that this new mechanism does not allow any access that would otherwise
be prohibited; it can only prohibit accesses that would otherwise be
allowed. This new facility is only available on 64-bit PowerPC and
only when the kernel is configured for 64k pages.
The masks are supplied using a new subpage_prot system call, which
takes a starting virtual address and length, and a pointer to an array
of protection masks in memory. The array has a 32-bit word per 64k
page to be protected; each 32-bit word consists of 16 2-bit fields,
for which 0 allows any access (that is otherwise allowed), 1 prevents
write accesses, and 2 or 3 prevent any access.
Implicit in this is that the regions of the address space that are
protected are switched to use 4k hardware pages rather than 64k
hardware pages (on machines with hardware 64k page support). In fact
the whole process is switched to use 4k hardware pages when the
subpage_prot system call is used, but this could be improved in future
to switch only the affected segments.
The subpage protection bits are stored in a 3 level tree akin to the
page table tree. The top level of this tree is stored in a structure
that is appended to the top level of the page table tree, i.e., the
pgd array. Since it will often only be 32-bit addresses (below 4GB)
that are protected, the pointers to the first four bottom level pages
are also stored in this structure (each bottom level page contains the
protection bits for 1GB of address space), so the protection bits for
addresses below 4GB can be accessed with one fewer loads than those
for higher addresses.
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-23 16:35:13 -05:00
|
|
|
config PPC_SUBPAGE_PROT
|
|
|
|
bool "Support setting protections for 4k subpages"
|
|
|
|
depends on PPC_64K_PAGES
|
|
|
|
help
|
|
|
|
This option adds support for a system call to allow user programs
|
|
|
|
to set access permissions (read/write, readonly, or no access)
|
|
|
|
on the 4k subpages of each 64k page.
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config SCHED_SMT
|
|
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
|
|
depends on PPC64 && SMP
|
|
|
|
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.
|
|
|
|
|
|
|
|
config PROC_DEVICETREE
|
2005-10-17 06:14:59 -04:00
|
|
|
bool "Support for device tree in /proc"
|
|
|
|
depends on PROC_FS
|
2005-09-26 02:04:21 -04:00
|
|
|
help
|
|
|
|
This option adds a device-tree directory under /proc which contains
|
|
|
|
an image of the device tree that the kernel copies from Open
|
2005-10-17 06:14:59 -04:00
|
|
|
Firmware or other boot firmware. If unsure, say Y here.
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config CMDLINE_BOOL
|
|
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
if !44x || BROKEN
|
2008-01-15 23:17:00 -05:00
|
|
|
config ARCH_WANTS_FREEZER_CONTROL
|
|
|
|
def_bool y
|
|
|
|
depends on ADB_PMU
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
source kernel/power/Kconfig
|
|
|
|
endif
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
config ISA_DMA_API
|
|
|
|
bool
|
2007-12-20 23:37:07 -05:00
|
|
|
default !PPC_ISERIES || PCI
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
menu "Bus options"
|
|
|
|
|
|
|
|
config ISA
|
|
|
|
bool "Support for ISA-bus hardware"
|
|
|
|
depends on PPC_PREP || PPC_CHRP
|
2005-10-26 02:47:42 -04:00
|
|
|
select PPC_I8259
|
2005-09-26 02:04:21 -04:00
|
|
|
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.
|
|
|
|
|
2007-02-10 04:43:14 -05:00
|
|
|
config ZONE_DMA
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config GENERIC_ISA_DMA
|
|
|
|
bool
|
|
|
|
depends on PPC64 || POWER4 || 6xx && !CPM2
|
|
|
|
default y
|
|
|
|
|
2005-10-26 02:36:55 -04:00
|
|
|
config PPC_INDIRECT_PCI
|
|
|
|
bool
|
|
|
|
depends on PCI
|
2006-01-14 17:57:39 -05:00
|
|
|
default y if 40x || 44x
|
2005-10-26 02:36:55 -04:00
|
|
|
default n
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
config EISA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config SBUS
|
|
|
|
bool
|
|
|
|
|
2006-01-10 22:43:56 -05:00
|
|
|
config FSL_SOC
|
|
|
|
bool
|
|
|
|
|
2007-07-10 06:44:34 -04:00
|
|
|
config FSL_PCI
|
|
|
|
bool
|
|
|
|
select PPC_INDIRECT_PCI
|
|
|
|
|
2008-03-26 07:39:50 -04:00
|
|
|
config 4xx_SOC
|
|
|
|
bool
|
|
|
|
|
2008-04-11 13:03:40 -04:00
|
|
|
config FSL_LBC
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Freescale Localbus support
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
|
|
|
|
config MCA
|
|
|
|
bool
|
|
|
|
|
|
|
|
config PCI
|
2006-08-09 11:37:28 -04:00
|
|
|
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|
2007-03-04 01:04:44 -05:00
|
|
|
|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
|
2008-01-21 12:55:29 -05:00
|
|
|
|| PPC_PS3 || 44x
|
2008-01-28 12:28:53 -05:00
|
|
|
default y if !40x && !CPM2 && !8xx && !PPC_MPC512x && !PPC_83xx \
|
2006-08-09 11:37:28 -04:00
|
|
|
&& !PPC_85xx && !PPC_86xx
|
2007-06-13 00:52:54 -04:00
|
|
|
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
|
2005-09-26 02:04:21 -04:00
|
|
|
default PCI_QSPAN if !4xx && !CPM2 && 8xx
|
2007-05-07 22:58:34 -04:00
|
|
|
select ARCH_SUPPORTS_MSI
|
2005-09-26 02:04:21 -04:00
|
|
|
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
|
2007-07-10 12:54:40 -04:00
|
|
|
def_bool PCI
|
|
|
|
|
|
|
|
config PCI_SYSCALL
|
|
|
|
def_bool PCI
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config PCI_QSPAN
|
|
|
|
bool "QSpan PCI"
|
|
|
|
depends on !4xx && !CPM2 && 8xx
|
2005-10-26 02:47:42 -04:00
|
|
|
select PPC_I8259
|
2005-09-26 02:04:21 -04:00
|
|
|
help
|
|
|
|
Say Y here if you have a system based on a Motorola 8xx-series
|
|
|
|
embedded processor with a QSPAN PCI interface, otherwise say N.
|
|
|
|
|
|
|
|
config PCI_8260
|
|
|
|
bool
|
|
|
|
depends on PCI && 8260
|
2005-10-26 02:36:55 -04:00
|
|
|
select PPC_INDIRECT_PCI
|
2005-09-26 02:04:21 -04:00
|
|
|
default y
|
|
|
|
|
|
|
|
config 8260_PCI9
|
2006-06-01 23:36:04 -04:00
|
|
|
bool "Enable workaround for MPC826x erratum PCI 9"
|
2007-09-14 16:41:56 -04:00
|
|
|
depends on PCI_8260 && !8272
|
2005-09-26 02:04:21 -04:00
|
|
|
default y
|
|
|
|
|
|
|
|
choice
|
2006-06-01 23:36:04 -04:00
|
|
|
prompt "IDMA channel for PCI 9 workaround"
|
2005-09-26 02:04:21 -04:00
|
|
|
depends on 8260_PCI9
|
|
|
|
|
|
|
|
config 8260_PCI9_IDMA1
|
|
|
|
bool "IDMA1"
|
|
|
|
|
|
|
|
config 8260_PCI9_IDMA2
|
|
|
|
bool "IDMA2"
|
|
|
|
|
|
|
|
config 8260_PCI9_IDMA3
|
|
|
|
bool "IDMA3"
|
|
|
|
|
|
|
|
config 8260_PCI9_IDMA4
|
|
|
|
bool "IDMA4"
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2006-06-07 17:05:46 -04:00
|
|
|
source "drivers/pci/pcie/Kconfig"
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
menu "Advanced setup"
|
|
|
|
depends on PPC32
|
|
|
|
|
|
|
|
config ADVANCED_OPTIONS
|
|
|
|
bool "Prompt for advanced kernel configuration options"
|
|
|
|
help
|
|
|
|
This option will enable prompting for a variety of advanced kernel
|
|
|
|
configuration options. These options can cause the kernel to not
|
|
|
|
work if they are set incorrectly, but can be used to optimize certain
|
|
|
|
aspects of kernel memory management.
|
|
|
|
|
|
|
|
Unless you know what you are doing, say N here.
|
|
|
|
|
|
|
|
comment "Default settings for advanced configuration options are used"
|
|
|
|
depends on !ADVANCED_OPTIONS
|
|
|
|
|
|
|
|
config HIGHMEM_START_BOOL
|
|
|
|
bool "Set high memory pool address"
|
|
|
|
depends on ADVANCED_OPTIONS && HIGHMEM
|
|
|
|
help
|
|
|
|
This option allows you to set the base address of the kernel virtual
|
|
|
|
area used to map high memory pages. This can be useful in
|
|
|
|
optimizing the layout of kernel virtual memory.
|
|
|
|
|
|
|
|
Say N here unless you know what you are doing.
|
|
|
|
|
|
|
|
config HIGHMEM_START
|
|
|
|
hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
|
|
|
|
default "0xfe000000"
|
|
|
|
|
|
|
|
config LOWMEM_SIZE_BOOL
|
|
|
|
bool "Set maximum low memory"
|
|
|
|
depends on ADVANCED_OPTIONS
|
|
|
|
help
|
|
|
|
This option allows you to set the maximum amount of memory which
|
|
|
|
will be used as "low memory", that is, memory which the kernel can
|
|
|
|
access directly, without having to set up a kernel virtual mapping.
|
|
|
|
This can be useful in optimizing the layout of kernel virtual
|
|
|
|
memory.
|
|
|
|
|
|
|
|
Say N here unless you know what you are doing.
|
|
|
|
|
|
|
|
config LOWMEM_SIZE
|
|
|
|
hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
|
|
|
|
default "0x30000000"
|
|
|
|
|
|
|
|
config KERNEL_START_BOOL
|
|
|
|
bool "Set custom kernel base address"
|
|
|
|
depends on ADVANCED_OPTIONS
|
|
|
|
help
|
|
|
|
This option allows you to set the kernel virtual address at which
|
|
|
|
the kernel will map low memory (the kernel image will be linked at
|
|
|
|
this address). This can be useful in optimizing the virtual memory
|
|
|
|
layout of the system.
|
|
|
|
|
|
|
|
Say N here unless you know what you are doing.
|
|
|
|
|
|
|
|
config KERNEL_START
|
|
|
|
hex "Virtual address of kernel base" if KERNEL_START_BOOL
|
|
|
|
default "0xc0000000"
|
|
|
|
|
|
|
|
config TASK_SIZE_BOOL
|
|
|
|
bool "Set custom user task size"
|
|
|
|
depends on ADVANCED_OPTIONS
|
|
|
|
help
|
|
|
|
This option allows you to set the amount of virtual address space
|
|
|
|
allocated to user tasks. This can be useful in optimizing the
|
|
|
|
virtual memory layout of the system.
|
|
|
|
|
|
|
|
Say N here unless you know what you are doing.
|
|
|
|
|
|
|
|
config TASK_SIZE
|
|
|
|
hex "Size of user task space" if TASK_SIZE_BOOL
|
2007-10-11 14:40:21 -04:00
|
|
|
default "0x80000000" if PPC_PREP || PPC_8xx
|
|
|
|
default "0xc0000000"
|
2005-09-26 02:04:21 -04:00
|
|
|
|
|
|
|
config CONSISTENT_START_BOOL
|
|
|
|
bool "Set custom consistent memory pool address"
|
|
|
|
depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
|
|
|
|
help
|
|
|
|
This option allows you to set the base virtual address
|
2006-10-03 16:21:02 -04:00
|
|
|
of the consistent memory pool. This pool of virtual
|
2005-09-26 02:04:21 -04:00
|
|
|
memory is used to make consistent memory allocations.
|
|
|
|
|
|
|
|
config CONSISTENT_START
|
|
|
|
hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
|
2007-07-16 12:28:18 -04:00
|
|
|
default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
|
2005-09-26 02:04:21 -04:00
|
|
|
default "0xff100000" if NOT_COHERENT_CACHE
|
|
|
|
|
|
|
|
config CONSISTENT_SIZE_BOOL
|
|
|
|
bool "Set custom consistent memory pool size"
|
|
|
|
depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
|
|
|
|
help
|
2006-10-03 16:21:02 -04:00
|
|
|
This option allows you to set the size of the
|
2005-09-26 02:04:21 -04:00
|
|
|
consistent memory pool. This pool of virtual memory
|
|
|
|
is used to make consistent memory allocations.
|
|
|
|
|
|
|
|
config CONSISTENT_SIZE
|
|
|
|
hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
|
|
|
|
default "0x00200000" if NOT_COHERENT_CACHE
|
|
|
|
|
|
|
|
config PIN_TLB
|
|
|
|
bool "Pinned Kernel TLBs (860 ONLY)"
|
|
|
|
depends on ADVANCED_OPTIONS && 8xx
|
|
|
|
endmenu
|
|
|
|
|
2005-09-30 02:16:52 -04:00
|
|
|
if PPC64
|
|
|
|
config KERNEL_START
|
|
|
|
hex
|
2005-09-30 03:24:15 -04:00
|
|
|
default "0xc000000000000000"
|
2005-09-30 02:16:52 -04:00
|
|
|
endif
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
source "net/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
|
|
|
|
source "fs/Kconfig"
|
|
|
|
|
|
|
|
# XXX source "arch/ppc/8xx_io/Kconfig"
|
|
|
|
|
|
|
|
# XXX source "arch/ppc/8260_io/Kconfig"
|
|
|
|
|
[POWERPC] Add QUICC Engine (QE) infrastructure
Add QUICC Engine (QE) configuration, header files, and
QE management and library code that are used by QE devices
drivers.
Includes Leo's modifications up to, and including, the
platform_device to of_device adaptation:
"The series of patches add generic QE infrastructure called
qe_lib, and MPC8360EMDS board support. Qe_lib is used by
QE device drivers such as ucc_geth driver.
This version updates QE interrupt controller to use new irq
mapping mechanism, addresses all the comments received with
last submission and includes some style fixes.
v2: Change to use device tree for BCSR and MURAM;
Remove I/O port interrupt handling code as it is not generic
enough.
v3: Address comments from Kumar; Update definition of several
device tree nodes; Copyright style change."
In addition, the following changes have been made:
o removed typedefs
o uint -> u32 conversions
o removed following defines:
QE_SIZEOF_BD, BD_BUFFER_ARG, BD_BUFFER_CLEAR, BD_BUFFER,
BD_STATUS_AND_LENGTH_SET, BD_STATUS_AND_LENGTH, and BD_BUFFER_SET
because they hid sizeof/in_be32/out_be32 operations from the reader.
o fixed qe_snums_init() serial num assignment to use a const array
o made CONFIG_UCC_FAST select UCC_SLOW
o reduced NR_QE_IC_INTS from 128 to 64
o remove _IO_BASE, etc. defines (not used)
o removed irrelevant comments, added others to resemble removed BD_ defines
o realigned struct definitions in headers
o various other style fixes including things like pinMask -> pin_mask
o fixed a ton of whitespace issues
o marked ioregs as __be32/__be16
o removed platform_device code and redundant get_qe_base()
o removed redundant comments
o added cpu_relax() to qe_reset
o uncasted all get_property() assignments
o eliminated unneeded casts
o eliminated immrbar_phys_to_virt (not used)
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Shlomi Gridish <gridish@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-10-04 00:10:46 -04:00
|
|
|
source "arch/powerpc/sysdev/qe_lib/Kconfig"
|
|
|
|
|
2005-09-26 02:04:21 -04:00
|
|
|
source "lib/Kconfig"
|
|
|
|
|
|
|
|
source "arch/powerpc/Kconfig.debug"
|
|
|
|
|
|
|
|
source "security/Kconfig"
|
|
|
|
|
|
|
|
config KEYS_COMPAT
|
|
|
|
bool
|
|
|
|
depends on COMPAT && KEYS
|
|
|
|
default y
|
|
|
|
|
|
|
|
source "crypto/Kconfig"
|
2007-09-20 10:00:11 -04:00
|
|
|
|
|
|
|
config PPC_CLOCK
|
|
|
|
bool
|
|
|
|
default n
|
2007-09-16 06:53:25 -04:00
|
|
|
|
|
|
|
config PPC_LIB_RHEAP
|
|
|
|
bool
|
|
|
|
|