|  | source "arch/powerpc/platforms/Kconfig.cputype" | 
|  |  | 
|  | config PPC32 | 
|  | bool | 
|  | default y if !PPC64 | 
|  |  | 
|  | config 32BIT | 
|  | bool | 
|  | default y if PPC32 | 
|  |  | 
|  | config 64BIT | 
|  | bool | 
|  | default y if PPC64 | 
|  |  | 
|  | config WORD_SIZE | 
|  | int | 
|  | default 64 if PPC64 | 
|  | default 32 if !PPC64 | 
|  |  | 
|  | config ARCH_PHYS_ADDR_T_64BIT | 
|  | def_bool PPC64 || PHYS_64BIT | 
|  |  | 
|  | config ARCH_DMA_ADDR_T_64BIT | 
|  | def_bool ARCH_PHYS_ADDR_T_64BIT | 
|  |  | 
|  | config MMU | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config HAVE_SETUP_PER_CPU_AREA | 
|  | def_bool PPC64 | 
|  |  | 
|  | config NEED_PER_CPU_EMBED_FIRST_CHUNK | 
|  | def_bool PPC64 | 
|  |  | 
|  | config NR_IRQS | 
|  | int "Number of virtual interrupt numbers" | 
|  | range 32 32768 | 
|  | default "512" | 
|  | help | 
|  | This defines the number of virtual interrupt numbers the kernel | 
|  | can manage. Virtual interrupt numbers are what you see in | 
|  | /proc/interrupts. If you configure your system to have too few, | 
|  | drivers will fail to load or worse - handle with care. | 
|  |  | 
|  | config STACKTRACE_SUPPORT | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config HAVE_LATENCYTOP_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config TRACE_IRQFLAGS_SUPPORT | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config LOCKDEP_SUPPORT | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config RWSEM_GENERIC_SPINLOCK | 
|  | bool | 
|  |  | 
|  | config RWSEM_XCHGADD_ALGORITHM | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config GENERIC_LOCKBREAK | 
|  | bool | 
|  | default y | 
|  | depends on SMP && PREEMPT | 
|  |  | 
|  | 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 PPC | 
|  | bool | 
|  | default y | 
|  | select BINFMT_ELF | 
|  | select OF | 
|  | select OF_EARLY_FLATTREE | 
|  | select HAVE_FTRACE_MCOUNT_RECORD | 
|  | select HAVE_DYNAMIC_FTRACE | 
|  | select HAVE_FUNCTION_TRACER | 
|  | select HAVE_FUNCTION_GRAPH_TRACER | 
|  | select SYSCTL_EXCEPTION_TRACE | 
|  | select ARCH_WANT_OPTIONAL_GPIOLIB | 
|  | select VIRT_TO_BUS if !PPC64 | 
|  | select HAVE_IDE | 
|  | select HAVE_IOREMAP_PROT | 
|  | select HAVE_EFFICIENT_UNALIGNED_ACCESS | 
|  | select HAVE_KPROBES | 
|  | select HAVE_ARCH_KGDB | 
|  | select HAVE_KRETPROBES | 
|  | select HAVE_ARCH_TRACEHOOK | 
|  | select HAVE_MEMBLOCK | 
|  | select HAVE_MEMBLOCK_NODE_MAP | 
|  | select HAVE_DMA_ATTRS | 
|  | select HAVE_DMA_API_DEBUG | 
|  | select USE_GENERIC_SMP_HELPERS if SMP | 
|  | select HAVE_OPROFILE | 
|  | select HAVE_DEBUG_KMEMLEAK | 
|  | select GENERIC_ATOMIC64 if PPC32 | 
|  | select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE | 
|  | select HAVE_PERF_EVENTS | 
|  | select HAVE_REGS_AND_STACK_ACCESS_API | 
|  | select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 | 
|  | select HAVE_GENERIC_HARDIRQS | 
|  | select ARCH_WANT_IPC_PARSE_VERSION | 
|  | select SPARSE_IRQ | 
|  | select IRQ_DOMAIN | 
|  | select GENERIC_IRQ_SHOW | 
|  | select GENERIC_IRQ_SHOW_LEVEL | 
|  | select IRQ_FORCED_THREADING | 
|  | select HAVE_RCU_TABLE_FREE if SMP | 
|  | select HAVE_SYSCALL_TRACEPOINTS | 
|  | select HAVE_BPF_JIT if PPC64 | 
|  | select HAVE_ARCH_JUMP_LABEL | 
|  | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 
|  | select GENERIC_SMP_IDLE_THREAD | 
|  | select GENERIC_CMOS_UPDATE | 
|  | select GENERIC_TIME_VSYSCALL_OLD | 
|  | select GENERIC_CLOCKEVENTS | 
|  | select GENERIC_STRNCPY_FROM_USER | 
|  | select GENERIC_STRNLEN_USER | 
|  | select HAVE_MOD_ARCH_SPECIFIC | 
|  | select MODULES_USE_ELF_RELA | 
|  | select CLONE_BACKWARDS | 
|  | select ARCH_USE_BUILTIN_BSWAP | 
|  | select OLD_SIGSUSPEND | 
|  | select OLD_SIGACTION if PPC32 | 
|  | select ARCH_SUPPORTS_ATOMIC_RMW | 
|  |  | 
|  | config EARLY_PRINTK | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config COMPAT | 
|  | bool | 
|  | default y if PPC64 | 
|  | select COMPAT_BINFMT_ELF | 
|  | select ARCH_WANT_OLD_COMPAT_IPC | 
|  | select COMPAT_OLD_SIGACTION | 
|  |  | 
|  | 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_OMIT_FRAME_POINTER | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config ARCH_MAY_HAVE_PC_FDC | 
|  | bool | 
|  | default !PPC_PSERIES || PCI | 
|  |  | 
|  | config PPC_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 EPAPR_BOOT | 
|  | bool | 
|  | help | 
|  | Used to allow a board to specify it wants an ePAPR compliant wrapper. | 
|  | default n | 
|  |  | 
|  | config DEFAULT_UIMAGE | 
|  | bool | 
|  | help | 
|  | Used to allow a board to specify it wants a uImage built by default | 
|  | default n | 
|  |  | 
|  | config REDBOOT | 
|  | bool | 
|  |  | 
|  | config ARCH_HIBERNATION_POSSIBLE | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config ARCH_SUSPEND_POSSIBLE | 
|  | def_bool y | 
|  | depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \ | 
|  | (PPC_85xx && !PPC_E500MC) || PPC_86xx || PPC_PSERIES \ | 
|  | || 44x || 40x | 
|  |  | 
|  | 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 PCI | 
|  | depends on PPC64 # not supported on 32 bits yet | 
|  | default n | 
|  |  | 
|  | config ARCH_SUPPORTS_DEBUG_PAGEALLOC | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_SUPPORTS_UPROBES | 
|  | def_bool y | 
|  |  | 
|  | config PPC_ADV_DEBUG_REGS | 
|  | bool | 
|  | depends on 40x || BOOKE | 
|  | default y | 
|  |  | 
|  | config PPC_ADV_DEBUG_IACS | 
|  | int | 
|  | depends on PPC_ADV_DEBUG_REGS | 
|  | default 4 if 44x | 
|  | default 2 | 
|  |  | 
|  | config PPC_ADV_DEBUG_DACS | 
|  | int | 
|  | depends on PPC_ADV_DEBUG_REGS | 
|  | default 2 | 
|  |  | 
|  | config PPC_ADV_DEBUG_DVCS | 
|  | int | 
|  | depends on PPC_ADV_DEBUG_REGS | 
|  | default 2 if 44x | 
|  | default 0 | 
|  |  | 
|  | config PPC_ADV_DEBUG_DAC_RANGE | 
|  | bool | 
|  | depends on PPC_ADV_DEBUG_REGS && 44x | 
|  | default y | 
|  |  | 
|  | config PPC_EMULATE_SSTEP | 
|  | bool | 
|  | default y if KPROBES || UPROBES || XMON || HAVE_HW_BREAKPOINT | 
|  |  | 
|  | source "init/Kconfig" | 
|  |  | 
|  | source "kernel/Kconfig.freezer" | 
|  |  | 
|  | source "arch/powerpc/sysdev/Kconfig" | 
|  | source "arch/powerpc/platforms/Kconfig" | 
|  |  | 
|  | menu "Kernel options" | 
|  |  | 
|  | config HIGHMEM | 
|  | bool "High memory support" | 
|  | depends on PPC32 | 
|  |  | 
|  | source kernel/Kconfig.hz | 
|  | source kernel/Kconfig.preempt | 
|  | source "fs/Kconfig.binfmt" | 
|  |  | 
|  | 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 PPC_TRANSACTIONAL_MEM | 
|  | bool "Transactional Memory support for POWERPC" | 
|  | depends on PPC_BOOK3S_64 | 
|  | depends on SMP | 
|  | default n | 
|  | ---help--- | 
|  | Support user-mode Transactional Memory on POWERPC. | 
|  |  | 
|  | 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_HELPER | 
|  | def_bool PPC64 | 
|  |  | 
|  | config SWIOTLB | 
|  | bool "SWIOTLB support" | 
|  | default n | 
|  | select IOMMU_HELPER | 
|  | ---help--- | 
|  | Support for IO bounce buffering for systems without an IOMMU. | 
|  | This allows us to DMA to the full physical address space on | 
|  | platforms where the size of a physical address is larger | 
|  | than the bus address.  Not all platforms support this. | 
|  |  | 
|  | config HOTPLUG_CPU | 
|  | bool "Support for enabling/disabling CPUs" | 
|  | depends on SMP && HOTPLUG && (PPC_PSERIES || \ | 
|  | PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC)) | 
|  | ---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_CPU_PROBE_RELEASE | 
|  | def_bool y | 
|  | depends on HOTPLUG_CPU | 
|  |  | 
|  | config ARCH_ENABLE_MEMORY_HOTPLUG | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_HAS_WALK_MEMORY | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_ENABLE_MEMORY_HOTREMOVE | 
|  | def_bool y | 
|  |  | 
|  | config KEXEC | 
|  | bool "kexec system call" | 
|  | depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) | 
|  | 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" | 
|  | depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP) | 
|  | select RELOCATABLE if PPC64 || 44x | 
|  | select DYNAMIC_MEMSTART if FSL_BOOKE | 
|  | help | 
|  | Build a kernel suitable for use as a kdump capture kernel. | 
|  | The same kernel binary can be used as production kernel and dump | 
|  | capture kernel. | 
|  |  | 
|  | config FA_DUMP | 
|  | bool "Firmware-assisted dump" | 
|  | depends on PPC64 && PPC_RTAS && CRASH_DUMP | 
|  | help | 
|  | A robust mechanism to get reliable kernel crash dump with | 
|  | assistance from firmware. This approach does not use kexec, | 
|  | instead firmware assists in booting the kdump kernel | 
|  | while preserving memory contents. Firmware-assisted dump | 
|  | is meant to be a kdump replacement offering robustness and | 
|  | speed not possible without system firmware assistance. | 
|  |  | 
|  | If unsure, say "N" | 
|  |  | 
|  | 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 "8" if PPC64 | 
|  | 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 SYS_SUPPORTS_HUGETLBFS | 
|  | bool | 
|  |  | 
|  | 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 STDBINUTILS | 
|  | bool "Using standard binutils settings" | 
|  | depends on 44x | 
|  | default y | 
|  | help | 
|  | Turning this option off allows you to select 256KB PAGE_SIZE on 44x. | 
|  | Note, that kernel will be able to run only those applications, | 
|  | which had been compiled using binutils later than 2.17.50.0.3 with | 
|  | '-zmax-page-size' set to 256K (the default is 64K). Or, if using | 
|  | the older binutils, you can patch them with a trivial patch, which | 
|  | changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000. | 
|  |  | 
|  | choice | 
|  | prompt "Page size" | 
|  | default PPC_4K_PAGES | 
|  | help | 
|  | Select the kernel logical page size. Increasing the page size | 
|  | will reduce software overhead at each page boundary, allow | 
|  | hardware prefetch mechanisms to be more effective, and allow | 
|  | larger dma transfers increasing IO efficiency and reducing | 
|  | overhead. However the utilization of memory will increase. | 
|  | For example, each cached file will using a multiple of the | 
|  | page size to hold its contents and the difference between the | 
|  | end of file and the end of page is wasted. | 
|  |  | 
|  | Some dedicated systems, such as software raid serving with | 
|  | accelerated calculations, have shown significant increases. | 
|  |  | 
|  | If you configure a 64 bit kernel for 64k pages but the | 
|  | processor does not support them, then the kernel will simulate | 
|  | them with 4k pages, loading them on demand, but with the | 
|  | reduced software overhead and larger internal fragmentation. | 
|  | For the 32 bit kernel, a large page option will not be offered | 
|  | unless it is supported by the configured processor. | 
|  |  | 
|  | If unsure, choose 4K_PAGES. | 
|  |  | 
|  | config PPC_4K_PAGES | 
|  | bool "4k page size" | 
|  |  | 
|  | config PPC_16K_PAGES | 
|  | bool "16k page size" if 44x | 
|  |  | 
|  | config PPC_64K_PAGES | 
|  | bool "64k page size" if 44x || PPC_STD_MMU_64 || PPC_BOOK3E_64 | 
|  | select PPC_HAS_HASH_64K if PPC_STD_MMU_64 | 
|  |  | 
|  | config PPC_256K_PAGES | 
|  | bool "256k page size" if 44x | 
|  | depends on !STDBINUTILS | 
|  | help | 
|  | Make the page size 256k. | 
|  |  | 
|  | As the ELF standard only requires alignment to support page | 
|  | sizes up to 64k, you will need to compile all of your user | 
|  | space applications with a non-standard binutils settings | 
|  | (see the STDBINUTILS description for details). | 
|  |  | 
|  | Say N unless you know what you are doing. | 
|  |  | 
|  | endchoice | 
|  |  | 
|  | config FORCE_MAX_ZONEORDER | 
|  | int "Maximum zone order" | 
|  | range 9 64 if PPC64 && PPC_64K_PAGES | 
|  | default "9" if PPC64 && PPC_64K_PAGES | 
|  | range 13 64 if PPC64 && !PPC_64K_PAGES | 
|  | default "13" if PPC64 && !PPC_64K_PAGES | 
|  | range 9 64 if PPC32 && PPC_16K_PAGES | 
|  | default "9" if PPC32 && PPC_16K_PAGES | 
|  | range 7 64 if PPC32 && PPC_64K_PAGES | 
|  | default "7" if PPC32 && PPC_64K_PAGES | 
|  | range 5 64 if PPC32 && PPC_256K_PAGES | 
|  | default "5" if PPC32 && PPC_256K_PAGES | 
|  | range 11 64 | 
|  | 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. | 
|  |  | 
|  | config PPC_SUBPAGE_PROT | 
|  | bool "Support setting protections for 4k subpages" | 
|  | depends on PPC_STD_MMU_64 && 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. | 
|  |  | 
|  | 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 PPC_DENORMALISATION | 
|  | bool "PowerPC denormalisation exception handling" | 
|  | depends on PPC_BOOK3S_64 | 
|  | default "y" if PPC_POWERNV | 
|  | ---help--- | 
|  | Add support for handling denormalisation of single precision | 
|  | values.  Useful for bare metal only.  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. | 
|  |  | 
|  | config EXTRA_TARGETS | 
|  | string "Additional default image types" | 
|  | help | 
|  | List additional targets to be built by the bootwrapper here (separated | 
|  | by spaces).  This is useful for targets that depend of device tree | 
|  | files in the .dts directory. | 
|  |  | 
|  | Targets in this list will be build as part of the default build | 
|  | target, or when the user does a 'make zImage' or a | 
|  | 'make zImage.initrd'. | 
|  |  | 
|  | If unsure, leave blank | 
|  |  | 
|  | config ARCH_WANTS_FREEZER_CONTROL | 
|  | def_bool y | 
|  | depends on ADB_PMU | 
|  |  | 
|  | source kernel/power/Kconfig | 
|  |  | 
|  | 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 | 
|  | default PCI | 
|  |  | 
|  | menu "Bus options" | 
|  |  | 
|  | config ISA | 
|  | bool "Support for ISA-bus hardware" | 
|  | depends on 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, say Y.  If you have an | 
|  | embedded board, consult your board documentation. | 
|  |  | 
|  | config ZONE_DMA | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config NEED_DMA_MAP_STATE | 
|  | def_bool (PPC64 || NOT_COHERENT_CACHE) | 
|  |  | 
|  | config NEED_SG_DMA_LENGTH | 
|  | def_bool y | 
|  |  | 
|  | config GENERIC_ISA_DMA | 
|  | bool | 
|  | depends on ISA_DMA_API | 
|  | 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 | 
|  | select HAVE_CAN_FLEXCAN if NET && CAN | 
|  |  | 
|  | config FSL_PCI | 
|  | bool | 
|  | select PPC_INDIRECT_PCI | 
|  | select PCI_QUIRKS | 
|  |  | 
|  | config FSL_PMC | 
|  | bool | 
|  | default y | 
|  | depends on SUSPEND && (PPC_85xx || PPC_86xx) | 
|  | help | 
|  | Freescale MPC85xx/MPC86xx power management controller support | 
|  | (suspend/resume). For MPC83xx see platforms/83xx/suspend.c | 
|  |  | 
|  | config PPC4xx_CPM | 
|  | bool | 
|  | default y | 
|  | depends on SUSPEND && (44x || 40x) | 
|  | help | 
|  | PPC4xx Clock Power Management (CPM) support (suspend/resume). | 
|  | It also enables support for two different idle states (idle-wait | 
|  | and idle-doze). | 
|  |  | 
|  | config 4xx_SOC | 
|  | bool | 
|  |  | 
|  | config FSL_LBC | 
|  | bool "Freescale Local Bus support" | 
|  | depends on FSL_SOC | 
|  | help | 
|  | Enables reporting of errors from the Freescale local bus | 
|  | controller.  Also contains some common code used by | 
|  | drivers for specific local bus peripherals. | 
|  |  | 
|  | config FSL_IFC | 
|  | bool | 
|  | depends on FSL_SOC | 
|  |  | 
|  | config FSL_GTM | 
|  | bool | 
|  | depends on PPC_83xx || QUICC_ENGINE || CPM2 | 
|  | help | 
|  | Freescale General-purpose Timers support | 
|  |  | 
|  | # Yes MCA RS/6000s exist but Linux-PPC does not currently support any | 
|  | config MCA | 
|  | bool | 
|  |  | 
|  | # Platforms that what PCI turned unconditionally just do select PCI | 
|  | # in their config node.  Platforms that want to choose at config | 
|  | # time should select PPC_PCI_CHOICE | 
|  | config PPC_PCI_CHOICE | 
|  | bool | 
|  |  | 
|  | config PCI | 
|  | bool "PCI support" if PPC_PCI_CHOICE | 
|  | default y if !40x && !CPM2 && !8xx && !PPC_83xx \ | 
|  | && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON | 
|  | default PCI_QSPAN if !4xx && !CPM2 && 8xx | 
|  | select ARCH_SUPPORTS_MSI | 
|  | select GENERIC_PCI_IOMAP | 
|  | 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 | 
|  |  | 
|  | source "drivers/pci/pcie/Kconfig" | 
|  |  | 
|  | source "drivers/pci/Kconfig" | 
|  |  | 
|  | source "drivers/pcmcia/Kconfig" | 
|  |  | 
|  | source "drivers/pci/hotplug/Kconfig" | 
|  |  | 
|  | config HAS_RAPIDIO | 
|  | bool | 
|  | default n | 
|  |  | 
|  | config RAPIDIO | 
|  | bool "RapidIO support" | 
|  | depends on HAS_RAPIDIO || PCI | 
|  | help | 
|  | If you say Y here, the kernel will include drivers and | 
|  | infrastructure code to support RapidIO interconnect devices. | 
|  |  | 
|  | config FSL_RIO | 
|  | bool "Freescale Embedded SRIO Controller support" | 
|  | depends on RAPIDIO && HAS_RAPIDIO | 
|  | default "n" | 
|  | ---help--- | 
|  | Include support for RapidIO controller on Freescale embedded | 
|  | processors (MPC8548, MPC8641, etc). | 
|  |  | 
|  | source "drivers/rapidio/Kconfig" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | config NONSTATIC_KERNEL | 
|  | bool | 
|  | default n | 
|  |  | 
|  | 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 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 LOWMEM_CAM_NUM_BOOL | 
|  | bool "Set number of CAMs to use to map low memory" | 
|  | depends on ADVANCED_OPTIONS && FSL_BOOKE | 
|  | help | 
|  | This option allows you to set the maximum number of CAM slots that | 
|  | will be used to map low memory.  There are a limited number of slots | 
|  | available and even more limited number that will fit in the L1 MMU. | 
|  | However, using more entries will allow mapping more low memory.  This | 
|  | can be useful in optimizing the layout of kernel virtual memory. | 
|  |  | 
|  | Say N here unless you know what you are doing. | 
|  |  | 
|  | config LOWMEM_CAM_NUM | 
|  | depends on FSL_BOOKE | 
|  | int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL | 
|  | default 3 | 
|  |  | 
|  | config DYNAMIC_MEMSTART | 
|  | bool "Enable page aligned dynamic load address for kernel" | 
|  | depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) | 
|  | select NONSTATIC_KERNEL | 
|  | help | 
|  | This option enables the kernel to be loaded at any page aligned | 
|  | physical address. The kernel creates a mapping from KERNELBASE to | 
|  | the address where the kernel is loaded. The page size here implies | 
|  | the TLB page size of the mapping for kernel on the particular platform. | 
|  | Please refer to the init code for finding the TLB page size. | 
|  |  | 
|  | DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE | 
|  | kernel image, where the only restriction is the page aligned kernel | 
|  | load address. When this option is enabled, the compile time physical | 
|  | address CONFIG_PHYSICAL_START is ignored. | 
|  |  | 
|  | This option is overridden by CONFIG_RELOCATABLE | 
|  |  | 
|  | config RELOCATABLE | 
|  | bool "Build a relocatable kernel" | 
|  | depends on ADVANCED_OPTIONS && FLATMEM && 44x | 
|  | select NONSTATIC_KERNEL | 
|  | help | 
|  | This builds a kernel image that is capable of running at the | 
|  | location the kernel is loaded at, without any alignment restrictions. | 
|  | This feature is a superset of DYNAMIC_MEMSTART and hence overrides it. | 
|  |  | 
|  | One use is for the kexec on panic case where the recovery kernel | 
|  | must live at a different physical address than the primary | 
|  | kernel. | 
|  |  | 
|  | Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address | 
|  | it has been loaded at and the compile time physical addresses | 
|  | CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START | 
|  | setting can still be useful to bootwrappers that need to know the | 
|  | load address of the kernel (eg. u-boot/mkimage). | 
|  |  | 
|  | config RELOCATABLE_PPC32 | 
|  | def_bool y | 
|  | depends on PPC32 && RELOCATABLE | 
|  |  | 
|  | config PAGE_OFFSET_BOOL | 
|  | bool "Set custom page offset address" | 
|  | depends on ADVANCED_OPTIONS | 
|  | help | 
|  | This option allows you to set the kernel virtual address at which | 
|  | the kernel will map low memory.  This can be useful in optimizing | 
|  | the virtual memory layout of the system. | 
|  |  | 
|  | Say N here unless you know what you are doing. | 
|  |  | 
|  | config PAGE_OFFSET | 
|  | hex "Virtual address of memory base" if PAGE_OFFSET_BOOL | 
|  | default "0xc0000000" | 
|  |  | 
|  | 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 be loaded.  Normally this should match PAGE_OFFSET | 
|  | however there are times (like kdump) that one might not want them | 
|  | to be the same. | 
|  |  | 
|  | Say N here unless you know what you are doing. | 
|  |  | 
|  | config KERNEL_START | 
|  | hex "Virtual address of kernel base" if KERNEL_START_BOOL | 
|  | default PAGE_OFFSET if PAGE_OFFSET_BOOL | 
|  | default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL | 
|  | default "0xc0000000" | 
|  |  | 
|  | config PHYSICAL_START_BOOL | 
|  | bool "Set physical address where the kernel is loaded" | 
|  | depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE | 
|  | help | 
|  | This gives the physical address where the kernel is loaded. | 
|  |  | 
|  | Say N here unless you know what you are doing. | 
|  |  | 
|  | config PHYSICAL_START | 
|  | hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL | 
|  | default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL | 
|  | default "0x00000000" | 
|  |  | 
|  | config PHYSICAL_ALIGN | 
|  | hex | 
|  | default "0x04000000" if FSL_BOOKE | 
|  | help | 
|  | This value puts the alignment restrictions on physical address | 
|  | where kernel is loaded and run from. Kernel is compiled for an | 
|  | address which meets above alignment restriction. | 
|  |  | 
|  | 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_8xx | 
|  | default "0xc0000000" | 
|  |  | 
|  | 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 PIN_TLB | 
|  | bool "Pinned Kernel TLBs (860 ONLY)" | 
|  | depends on ADVANCED_OPTIONS && 8xx | 
|  | endmenu | 
|  |  | 
|  | if PPC64 | 
|  | config RELOCATABLE | 
|  | bool "Build a relocatable kernel" | 
|  | select NONSTATIC_KERNEL | 
|  | help | 
|  | This builds a kernel image that is capable of running anywhere | 
|  | in the RMA (real memory area) at any 16k-aligned base address. | 
|  | The kernel is linked as a position-independent executable (PIE) | 
|  | and contains dynamic relocations which are processed early | 
|  | in the bootup process. | 
|  |  | 
|  | One use is for the kexec on panic case where the recovery kernel | 
|  | must live at a different physical address than the primary | 
|  | kernel. | 
|  |  | 
|  | # This value must have zeroes in the bottom 60 bits otherwise lots will break | 
|  | config PAGE_OFFSET | 
|  | hex | 
|  | default "0xc000000000000000" | 
|  | config KERNEL_START | 
|  | hex | 
|  | default "0xc000000000000000" | 
|  | config PHYSICAL_START | 
|  | hex | 
|  | default "0x00000000" | 
|  | endif | 
|  |  | 
|  | source "net/Kconfig" | 
|  |  | 
|  | source "drivers/Kconfig" | 
|  |  | 
|  | source "fs/Kconfig" | 
|  |  | 
|  | source "arch/powerpc/sysdev/qe_lib/Kconfig" | 
|  |  | 
|  | source "lib/Kconfig" | 
|  |  | 
|  | 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 | 
|  | select HAVE_CLK | 
|  |  | 
|  | config PPC_LIB_RHEAP | 
|  | bool | 
|  |  | 
|  | source "arch/powerpc/kvm/Kconfig" |