123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 |
- # For a description of the syntax of this configuration file,
- # see Documentation/kbuild/kconfig-language.txt.
- #
- mainmenu "Linux/PowerPC Kernel Configuration"
- source "arch/powerpc/platforms/Kconfig.cputype"
- config PPC32
- bool
- default y if !PPC64
- config 64BIT
- bool
- default y if PPC64
- config WORD_SIZE
- int
- default 64 if PPC64
- default 32 if !PPC64
- config PPC_MERGE
- def_bool y
- config MMU
- bool
- default y
- config GENERIC_CMOS_UPDATE
- def_bool y
- config GENERIC_TIME
- def_bool y
- config GENERIC_TIME_VSYSCALL
- def_bool y
- config GENERIC_CLOCKEVENTS
- def_bool y
- config GENERIC_HARDIRQS
- bool
- default y
- config IRQ_PER_CPU
- bool
- default y
- config RWSEM_GENERIC_SPINLOCK
- bool
- config RWSEM_XCHGADD_ALGORITHM
- bool
- default y
- config ARCH_HAS_ILOG2_U32
- bool
- default y
- config ARCH_HAS_ILOG2_U64
- bool
- default y if 64BIT
- config GENERIC_HWEIGHT
- bool
- default y
- config GENERIC_CALIBRATE_DELAY
- bool
- default y
- config GENERIC_FIND_NEXT_BIT
- bool
- default y
- config ARCH_NO_VIRT_TO_BUS
- def_bool PPC64
- config PPC
- bool
- default y
- config EARLY_PRINTK
- bool
- default y
- config COMPAT
- bool
- default y if PPC64
- 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
- default !PPC_PSERIES || PCI
- config PPC_OF
- def_bool y
- config OF
- def_bool y
- config PPC_UDBG_16550
- bool
- default n
- config GENERIC_TBSYNC
- bool
- default y if PPC32 && SMP
- default n
- config AUDIT_ARCH
- bool
- default y
- config GENERIC_BUG
- bool
- default y
- depends on BUG
- config SYS_SUPPORTS_APM_EMULATION
- default y if PMAC_APM_EMU
- bool
- config DEFAULT_UIMAGE
- bool
- help
- Used to allow a board to specify it wants a uImage built by default
- default n
- config PPC64_SWSUSP
- bool
- depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
- default y
- 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
- config PPC_OF_PLATFORM_PCI
- bool
- depends on PPC64 # not supported on 32 bits yet
- default n
- source "init/Kconfig"
- source "arch/powerpc/platforms/Kconfig"
- menu "Kernel options"
- config HIGHMEM
- bool "High memory support"
- depends on PPC32
- source kernel/time/Kconfig
- source kernel/Kconfig.hz
- source kernel/Kconfig.preempt
- source "fs/Kconfig.binfmt"
- # 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
- depends on PPC64
- default "9" if PPC_64K_PAGES
- default "13"
- config HUGETLB_PAGE_SIZE_VARIABLE
- bool
- depends on HUGETLB_PAGE
- default y
- config MATH_EMULATION
- bool "Math emulation"
- depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
- ---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.
- 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.
- config IOMMU_VMERGE
- bool "Enable IOMMU virtual merging"
- depends on PPC64
- default y
- 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().
- Most drivers don't have this problem; it is safe to say Y here.
- 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.
- config ARCH_ENABLE_MEMORY_HOTPLUG
- def_bool y
- config KEXEC
- bool "kexec system call (EXPERIMENTAL)"
- depends on (PPC_PRPMC2800 || 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 independent of the system firmware. And like a reboot
- you can start any kernel with it, not just Linux.
- The name comes from the similarity 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 CRASH_DUMP
- bool "Build a kdump crash kernel (EXPERIMENTAL)"
- 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.
- 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.
- config NUMA
- bool "NUMA support"
- depends on PPC64
- default y if SMP && PPC_PSERIES
- config NODES_SHIFT
- int
- default "4"
- depends on NEED_MULTIPLE_NODES
- config ARCH_SELECT_MEMORY_MODEL
- def_bool y
- depends on PPC64
- config ARCH_FLATMEM_ENABLE
- def_bool y
- depends on (PPC64 && !NUMA) || PPC32
- config ARCH_SPARSEMEM_ENABLE
- def_bool y
- depends on PPC64
- select SPARSEMEM_VMEMMAP_ENABLE
- config ARCH_SPARSEMEM_DEFAULT
- def_bool y
- depends on (SMP && PPC_PSERIES) || PPC_PS3
- config ARCH_POPULATES_NODE_MAP
- def_bool y
- source "mm/Kconfig"
- config ARCH_MEMORY_PROBE
- def_bool y
- depends on MEMORY_HOTPLUG
- # 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 PPC_HAS_HASH_64K
- bool
- depends on PPC64
- default n
- config PPC_64K_PAGES
- bool "64k page size"
- depends on PPC64
- select PPC_HAS_HASH_64K
- help
- This option changes the kernel logical page size to 64k. On machines
- 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.
- 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
- bool "Support for device tree in /proc"
- depends on PROC_FS
- 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 or other boot firmware. If unsure, say Y here.
- 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
- 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.
- config WANT_DEVICE_TREE
- bool
- default n
- config DEVICE_TREE
- string "Static device tree source file"
- depends on WANT_DEVICE_TREE
- help
- This specifies the device tree source (.dts) file to be
- compiled and included when building the bootwrapper. If a
- relative filename is given, then it will be relative to
- arch/powerpc/boot/dts. If you are not using the bootwrapper,
- or do not need to build a dts into the bootwrapper, this
- field is ignored.
- For example, this is required when building a cuImage target
- for an older U-Boot, which cannot pass a device tree itself.
- Such a kernel will not work with a newer U-Boot that tries to
- pass a device tree (unless you tell it not to). If your U-Boot
- does not mention a device tree in "help bootm", then use the
- cuImage target and specify a device tree here. Otherwise, use
- the uImage target and leave this field blank.
- endmenu
- config ISA_DMA_API
- bool
- default y
- menu "Bus options"
- config ISA
- bool "Support for ISA-bus hardware"
- depends on PPC_PREP || PPC_CHRP
- select PPC_I8259
- 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 ZONE_DMA
- bool
- default y
- config GENERIC_ISA_DMA
- bool
- depends on PPC64 || POWER4 || 6xx && !CPM2
- default y
- config PPC_INDIRECT_PCI
- bool
- depends on PCI
- default y if 40x || 44x
- default n
- config EISA
- bool
- config SBUS
- bool
- config FSL_SOC
- bool
- config FSL_PCI
- bool
- select PPC_INDIRECT_PCI
- # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
- config MCA
- bool
- config PCI
- bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
- || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
- || PPC_PS3
- default y if !40x && !CPM2 && !8xx && !PPC_83xx \
- && !PPC_85xx && !PPC_86xx
- default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
- default PCI_QSPAN if !4xx && !CPM2 && 8xx
- select ARCH_SUPPORTS_MSI
- 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
- def_bool PCI
- config PCI_SYSCALL
- def_bool PCI
- config PCI_QSPAN
- bool "QSpan PCI"
- depends on !4xx && !CPM2 && 8xx
- select PPC_I8259
- 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
- select PPC_INDIRECT_PCI
- default y
- config 8260_PCI9
- bool "Enable workaround for MPC826x erratum PCI 9"
- depends on PCI_8260 && !8272
- default y
- choice
- prompt "IDMA channel for PCI 9 workaround"
- 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
- source "drivers/pci/pcie/Kconfig"
- 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
- default "0x80000000" if PPC_PREP || PPC_8xx
- default "0xc0000000"
- 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
- of the consistent memory pool. This pool of virtual
- memory is used to make consistent memory allocations.
- config CONSISTENT_START
- hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
- default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
- 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
- This option allows you to set the size of the
- 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 BOOT_LOAD_BOOL
- bool "Set the boot link/load address"
- depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
- help
- This option allows you to set the initial load address of the zImage
- or zImage.initrd file. This can be useful if you are on a board
- which has a small amount of memory.
- Say N here unless you know what you are doing.
- config BOOT_LOAD
- hex "Link/load address for booting" if BOOT_LOAD_BOOL
- default "0x00400000" if 40x || 8xx || 8260
- default "0x01000000" if 44x
- default "0x00800000"
- config PIN_TLB
- bool "Pinned Kernel TLBs (860 ONLY)"
- depends on ADVANCED_OPTIONS && 8xx
- endmenu
- if PPC64
- config KERNEL_START
- hex
- default "0xc000000000000000"
- endif
- source "net/Kconfig"
- source "drivers/Kconfig"
- source "fs/Kconfig"
- # XXX source "arch/ppc/8xx_io/Kconfig"
- # XXX source "arch/ppc/8260_io/Kconfig"
- source "arch/powerpc/sysdev/qe_lib/Kconfig"
- source "lib/Kconfig"
- source "kernel/Kconfig.instrumentation"
- source "arch/powerpc/Kconfig.debug"
- source "security/Kconfig"
- config KEYS_COMPAT
- bool
- depends on COMPAT && KEYS
- default y
- source "crypto/Kconfig"
- config PPC_CLOCK
- bool
- default n
- config PPC_LIB_RHEAP
- bool
|