|  | # For a description of the syntax of this configuration file, | 
|  | # see Documentation/kbuild/kconfig-language.txt. | 
|  |  | 
|  | config TILE | 
|  | def_bool y | 
|  | select HAVE_KVM if !TILEGX | 
|  | select GENERIC_FIND_FIRST_BIT | 
|  | select USE_GENERIC_SMP_HELPERS | 
|  | select CC_OPTIMIZE_FOR_SIZE | 
|  | select HAVE_GENERIC_HARDIRQS | 
|  | select GENERIC_IRQ_PROBE | 
|  | select GENERIC_PENDING_IRQ if SMP | 
|  | select GENERIC_IRQ_SHOW | 
|  | select HAVE_SYSCALL_WRAPPERS if TILEGX | 
|  | select SYS_HYPERVISOR | 
|  | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 
|  | select GENERIC_CLOCKEVENTS | 
|  |  | 
|  | # FIXME: investigate whether we need/want these options. | 
|  | #	select HAVE_IOREMAP_PROT | 
|  | #	select HAVE_OPTPROBES | 
|  | #	select HAVE_REGS_AND_STACK_ACCESS_API | 
|  | #	select HAVE_HW_BREAKPOINT | 
|  | #	select PERF_EVENTS | 
|  | #	select HAVE_USER_RETURN_NOTIFIER | 
|  | #	config NO_BOOTMEM | 
|  | #	config ARCH_SUPPORTS_DEBUG_PAGEALLOC | 
|  | #	config HUGETLB_PAGE_SIZE_VARIABLE | 
|  |  | 
|  | config MMU | 
|  | def_bool y | 
|  |  | 
|  | config GENERIC_CSUM | 
|  | def_bool y | 
|  |  | 
|  | config SEMAPHORE_SLEEPERS | 
|  | def_bool y | 
|  |  | 
|  | config HAVE_ARCH_ALLOC_REMAP | 
|  | def_bool y | 
|  |  | 
|  | config HAVE_SETUP_PER_CPU_AREA | 
|  | def_bool y | 
|  |  | 
|  | config NEED_PER_CPU_PAGE_FIRST_CHUNK | 
|  | def_bool y | 
|  |  | 
|  | config SYS_SUPPORTS_HUGETLBFS | 
|  | def_bool y | 
|  |  | 
|  | # Support for additional huge page sizes besides HPAGE_SIZE. | 
|  | # The software support is currently only present in the TILE-Gx | 
|  | # hypervisor. TILEPro in any case does not support page sizes | 
|  | # larger than the default HPAGE_SIZE. | 
|  | config HUGETLB_SUPER_PAGES | 
|  | depends on HUGETLB_PAGE && TILEGX | 
|  | def_bool y | 
|  |  | 
|  | # FIXME: tilegx can implement a more efficient rwsem. | 
|  | config RWSEM_GENERIC_SPINLOCK | 
|  | def_bool y | 
|  |  | 
|  | # We have a very flat architecture from a migration point of view, | 
|  | # so save boot time by presetting this (particularly useful on tile-sim). | 
|  | config DEFAULT_MIGRATION_COST | 
|  | int | 
|  | default "10000000" | 
|  |  | 
|  | # We only support gcc 4.4 and above, so this should work. | 
|  | config ARCH_SUPPORTS_OPTIMIZED_INLINING | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_PHYS_ADDR_T_64BIT | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_DMA_ADDR_T_64BIT | 
|  | def_bool y | 
|  |  | 
|  | config NEED_DMA_MAP_STATE | 
|  | def_bool y | 
|  |  | 
|  | config LOCKDEP_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config STACKTRACE_SUPPORT | 
|  | def_bool y | 
|  | select STACKTRACE | 
|  |  | 
|  | # We use discontigmem for now; at some point we may want to switch | 
|  | # to sparsemem (Tilera bug 7996). | 
|  | config ARCH_DISCONTIGMEM_ENABLE | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_DISCONTIGMEM_DEFAULT | 
|  | def_bool y | 
|  |  | 
|  | config TRACE_IRQFLAGS_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config STRICT_DEVMEM | 
|  | def_bool y | 
|  |  | 
|  | # SMP is required for Tilera Linux. | 
|  | config SMP | 
|  | def_bool y | 
|  |  | 
|  | # Allow checking for compile-time determined overflow errors in | 
|  | # copy_from_user().  There are still unprovable places in the | 
|  | # generic code as of 2.6.34, so this option is not really compatible | 
|  | # with -Werror, which is more useful in general. | 
|  | config DEBUG_COPY_FROM_USER | 
|  | def_bool n | 
|  |  | 
|  | config HVC_TILE | 
|  | select HVC_DRIVER | 
|  | def_bool y | 
|  |  | 
|  | config TILEGX | 
|  | bool "Building with TILE-Gx (64-bit) compiler and toolchain" | 
|  |  | 
|  | config TILEPRO | 
|  | def_bool !TILEGX | 
|  |  | 
|  | config 64BIT | 
|  | def_bool TILEGX | 
|  |  | 
|  | config ARCH_DEFCONFIG | 
|  | string | 
|  | default "arch/tile/configs/tilepro_defconfig" if !TILEGX | 
|  | default "arch/tile/configs/tilegx_defconfig" if TILEGX | 
|  |  | 
|  | source "init/Kconfig" | 
|  |  | 
|  | menu "Tilera-specific configuration" | 
|  |  | 
|  | config NR_CPUS | 
|  | int "Maximum number of tiles (2-255)" | 
|  | range 2 255 | 
|  | depends on SMP | 
|  | default "64" | 
|  | ---help--- | 
|  | Building with 64 is the recommended value, but a slightly | 
|  | smaller kernel memory footprint results from using a smaller | 
|  | value on chips with fewer tiles. | 
|  |  | 
|  | if TILEGX | 
|  |  | 
|  | choice | 
|  | prompt "Kernel page size" | 
|  | default PAGE_SIZE_64KB | 
|  | help | 
|  | This lets you select the page size of the kernel.  For best | 
|  | performance on memory-intensive applications, a page size of 64KB | 
|  | is recommended.  For workloads involving many small files, many | 
|  | connections, etc., it may be better to select 16KB, which uses | 
|  | memory more efficiently at some cost in TLB performance. | 
|  |  | 
|  | Note that this option is TILE-Gx specific; currently | 
|  | TILEPro page size is set by rebuilding the hypervisor. | 
|  |  | 
|  | config PAGE_SIZE_16KB | 
|  | bool "16KB" | 
|  |  | 
|  | config PAGE_SIZE_64KB | 
|  | bool "64KB" | 
|  |  | 
|  | endchoice | 
|  |  | 
|  | endif | 
|  |  | 
|  | source "kernel/Kconfig.hz" | 
|  |  | 
|  | config KEXEC | 
|  | bool "kexec system call" | 
|  | ---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.   It is used | 
|  | to implement the "mboot" Tilera booter. | 
|  |  | 
|  | The name comes from the similarity to the exec system call. | 
|  |  | 
|  | config COMPAT | 
|  | bool "Support 32-bit TILE-Gx binaries in addition to 64-bit" | 
|  | depends on TILEGX | 
|  | select COMPAT_BINFMT_ELF | 
|  | default y | 
|  | ---help--- | 
|  | If enabled, the kernel will support running TILE-Gx binaries | 
|  | that were built with the -m32 option. | 
|  |  | 
|  | config SYSVIPC_COMPAT | 
|  | def_bool y | 
|  | depends on COMPAT && SYSVIPC | 
|  |  | 
|  | # We do not currently support disabling HIGHMEM on tile64 and tilepro. | 
|  | config HIGHMEM | 
|  | bool # "Support for more than 512 MB of RAM" | 
|  | default !TILEGX | 
|  | ---help--- | 
|  | Linux can use the full amount of RAM in the system by | 
|  | default.  However, the address space of TILE processors is | 
|  | only 4 Gigabytes large. That means that, if you have a large | 
|  | amount of physical memory, not all of it can be "permanently | 
|  | mapped" by the kernel. The physical memory that's not | 
|  | permanently mapped is called "high memory". | 
|  |  | 
|  | If you are compiling a kernel which will never run on a | 
|  | machine with more than 512 MB total physical RAM, answer | 
|  | "false" here. This will result in the kernel mapping all of | 
|  | physical memory into the top 1 GB of virtual memory space. | 
|  |  | 
|  | If unsure, say "true". | 
|  |  | 
|  | # We do not currently support disabling NUMA. | 
|  | config NUMA | 
|  | bool # "NUMA Memory Allocation and Scheduler Support" | 
|  | depends on SMP && DISCONTIGMEM | 
|  | default y | 
|  | ---help--- | 
|  | NUMA memory allocation is required for TILE processors | 
|  | unless booting with memory striping enabled in the | 
|  | hypervisor, or with only a single memory controller. | 
|  | It is recommended that this option always be enabled. | 
|  |  | 
|  | config NODES_SHIFT | 
|  | int "Log base 2 of the max number of memory controllers" | 
|  | default 2 | 
|  | depends on NEED_MULTIPLE_NODES | 
|  | ---help--- | 
|  | By default, 2, i.e. 2^2 == 4 DDR2 controllers. | 
|  | In a system with more controllers, this value should be raised. | 
|  |  | 
|  | choice | 
|  | depends on !TILEGX | 
|  | prompt "Memory split" if EXPERT | 
|  | default VMSPLIT_3G | 
|  | ---help--- | 
|  | Select the desired split between kernel and user memory. | 
|  |  | 
|  | If the address range available to the kernel is less than the | 
|  | physical memory installed, the remaining memory will be available | 
|  | as "high memory". Accessing high memory is a little more costly | 
|  | than low memory, as it needs to be mapped into the kernel first. | 
|  | Note that increasing the kernel address space limits the range | 
|  | available to user programs, making the address space there | 
|  | tighter.  Selecting anything other than the default 3G/1G split | 
|  | will also likely make your kernel incompatible with binary-only | 
|  | kernel modules. | 
|  |  | 
|  | If you are not absolutely sure what you are doing, leave this | 
|  | option alone! | 
|  |  | 
|  | config VMSPLIT_3_75G | 
|  | bool "3.75G/0.25G user/kernel split (no kernel networking)" | 
|  | config VMSPLIT_3_5G | 
|  | bool "3.5G/0.5G user/kernel split" | 
|  | config VMSPLIT_3G | 
|  | bool "3G/1G user/kernel split" | 
|  | config VMSPLIT_2_75G | 
|  | bool "2.75G/1.25G user/kernel split (for full 1G low memory)" | 
|  | config VMSPLIT_2_5G | 
|  | bool "2.5G/1.5G user/kernel split" | 
|  | config VMSPLIT_2_25G | 
|  | bool "2.25G/1.75G user/kernel split" | 
|  | config VMSPLIT_2G | 
|  | bool "2G/2G user/kernel split" | 
|  | config VMSPLIT_1G | 
|  | bool "1G/3G user/kernel split" | 
|  | endchoice | 
|  |  | 
|  | config PAGE_OFFSET | 
|  | hex | 
|  | depends on !64BIT | 
|  | default 0xF0000000 if VMSPLIT_3_75G | 
|  | default 0xE0000000 if VMSPLIT_3_5G | 
|  | default 0xB0000000 if VMSPLIT_2_75G | 
|  | default 0xA0000000 if VMSPLIT_2_5G | 
|  | default 0x90000000 if VMSPLIT_2_25G | 
|  | default 0x80000000 if VMSPLIT_2G | 
|  | default 0x40000000 if VMSPLIT_1G | 
|  | default 0xC0000000 | 
|  |  | 
|  | source "mm/Kconfig" | 
|  |  | 
|  | config CMDLINE_BOOL | 
|  | bool "Built-in kernel command line" | 
|  | default n | 
|  | ---help--- | 
|  | Allow for specifying boot arguments to the kernel at | 
|  | build time.  On some systems (e.g. embedded ones), it is | 
|  | necessary or convenient to provide some or all of the | 
|  | kernel boot arguments with the kernel itself (that is, | 
|  | to not rely on the boot loader to provide them.) | 
|  |  | 
|  | To compile command line arguments into the kernel, | 
|  | set this option to 'Y', then fill in the | 
|  | the boot arguments in CONFIG_CMDLINE. | 
|  |  | 
|  | Systems with fully functional boot loaders (e.g. mboot, or | 
|  | if booting over PCI) should leave this option set to 'N'. | 
|  |  | 
|  | config CMDLINE | 
|  | string "Built-in kernel command string" | 
|  | depends on CMDLINE_BOOL | 
|  | default "" | 
|  | ---help--- | 
|  | Enter arguments here that should be compiled into the kernel | 
|  | image and used at boot time.  If the boot loader provides a | 
|  | command line at boot time, it is appended to this string to | 
|  | form the full kernel command line, when the system boots. | 
|  |  | 
|  | However, you can use the CONFIG_CMDLINE_OVERRIDE option to | 
|  | change this behavior. | 
|  |  | 
|  | In most cases, the command line (whether built-in or provided | 
|  | by the boot loader) should specify the device for the root | 
|  | file system. | 
|  |  | 
|  | config CMDLINE_OVERRIDE | 
|  | bool "Built-in command line overrides boot loader arguments" | 
|  | default n | 
|  | depends on CMDLINE_BOOL | 
|  | ---help--- | 
|  | Set this option to 'Y' to have the kernel ignore the boot loader | 
|  | command line, and use ONLY the built-in command line. | 
|  |  | 
|  | This is used to work around broken boot loaders.  This should | 
|  | be set to 'N' under normal conditions. | 
|  |  | 
|  | config VMALLOC_RESERVE | 
|  | hex | 
|  | default 0x1000000 | 
|  |  | 
|  | config HARDWALL | 
|  | bool "Hardwall support to allow access to user dynamic network" | 
|  | default y | 
|  |  | 
|  | config KERNEL_PL | 
|  | int "Processor protection level for kernel" | 
|  | range 1 2 | 
|  | default "1" | 
|  | ---help--- | 
|  | This setting determines the processor protection level the | 
|  | kernel will be built to run at.  Generally you should use | 
|  | the default value here. | 
|  |  | 
|  | endmenu  # Tilera-specific configuration | 
|  |  | 
|  | menu "Bus options" | 
|  |  | 
|  | config PCI | 
|  | bool "PCI support" | 
|  | default y | 
|  | select PCI_DOMAINS | 
|  | select GENERIC_PCI_IOMAP | 
|  | ---help--- | 
|  | Enable PCI root complex support, so PCIe endpoint devices can | 
|  | be attached to the Tile chip.  Many, but not all, PCI devices | 
|  | are supported under Tilera's root complex driver. | 
|  |  | 
|  | config PCI_DOMAINS | 
|  | bool | 
|  |  | 
|  | config NO_IOMEM | 
|  | def_bool !PCI | 
|  |  | 
|  | config NO_IOPORT | 
|  | def_bool !PCI | 
|  |  | 
|  | source "drivers/pci/Kconfig" | 
|  |  | 
|  | config HOTPLUG | 
|  | bool "Support for hot-pluggable devices" | 
|  | ---help--- | 
|  | Say Y here if you want to plug devices into your computer while | 
|  | the system is running, and be able to use them quickly.  In many | 
|  | cases, the devices can likewise be unplugged at any time too. | 
|  | One well-known example of this is USB. | 
|  |  | 
|  | source "drivers/pci/hotplug/Kconfig" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | menu "Executable file formats" | 
|  |  | 
|  | # only elf supported | 
|  | config KCORE_ELF | 
|  | def_bool y | 
|  | depends on PROC_FS | 
|  |  | 
|  | source "fs/Kconfig.binfmt" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | source "net/Kconfig" | 
|  |  | 
|  | source "drivers/Kconfig" | 
|  |  | 
|  | source "fs/Kconfig" | 
|  |  | 
|  | source "arch/tile/Kconfig.debug" | 
|  |  | 
|  | source "security/Kconfig" | 
|  |  | 
|  | source "crypto/Kconfig" | 
|  |  | 
|  | source "lib/Kconfig" | 
|  |  | 
|  | source "arch/tile/kvm/Kconfig" |