Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v3.19-rc4 467 lines 12 kB view raw
1# For a description of the syntax of this configuration file, 2# see Documentation/kbuild/kconfig-language.txt. 3 4config TILE 5 def_bool y 6 select HAVE_PERF_EVENTS 7 select USE_PMC if PERF_EVENTS 8 select HAVE_DMA_ATTRS 9 select HAVE_DMA_API_DEBUG 10 select HAVE_KVM if !TILEGX 11 select GENERIC_FIND_FIRST_BIT 12 select SYSCTL_EXCEPTION_TRACE 13 select CC_OPTIMIZE_FOR_SIZE 14 select HAVE_DEBUG_KMEMLEAK 15 select GENERIC_IRQ_PROBE 16 select GENERIC_PENDING_IRQ if SMP 17 select GENERIC_IRQ_SHOW 18 select HAVE_DEBUG_BUGVERBOSE 19 select VIRT_TO_BUS 20 select SYS_HYPERVISOR 21 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS 22 select ARCH_HAVE_NMI_SAFE_CMPXCHG 23 select GENERIC_CLOCKEVENTS 24 select MODULES_USE_ELF_RELA 25 select HAVE_ARCH_TRACEHOOK 26 select HAVE_SYSCALL_TRACEPOINTS 27 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 28 select HAVE_DEBUG_STACKOVERFLOW 29 select ARCH_WANT_FRAME_POINTERS 30 31# FIXME: investigate whether we need/want these options. 32# select HAVE_IOREMAP_PROT 33# select HAVE_OPTPROBES 34# select HAVE_REGS_AND_STACK_ACCESS_API 35# select HAVE_HW_BREAKPOINT 36# select PERF_EVENTS 37# select HAVE_USER_RETURN_NOTIFIER 38# config NO_BOOTMEM 39# config ARCH_SUPPORTS_DEBUG_PAGEALLOC 40# config HUGETLB_PAGE_SIZE_VARIABLE 41 42config MMU 43 def_bool y 44 45config GENERIC_CSUM 46 def_bool y 47 48config HAVE_ARCH_ALLOC_REMAP 49 def_bool y 50 51config HAVE_SETUP_PER_CPU_AREA 52 def_bool y 53 54config NEED_PER_CPU_PAGE_FIRST_CHUNK 55 def_bool y 56 57config SYS_SUPPORTS_HUGETLBFS 58 def_bool y 59 60# Support for additional huge page sizes besides HPAGE_SIZE. 61# The software support is currently only present in the TILE-Gx 62# hypervisor. TILEPro in any case does not support page sizes 63# larger than the default HPAGE_SIZE. 64config HUGETLB_SUPER_PAGES 65 depends on HUGETLB_PAGE && TILEGX 66 def_bool y 67 68config GENERIC_TIME_VSYSCALL 69 def_bool y 70 71# Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled. 72config USE_PMC 73 bool 74 75# FIXME: tilegx can implement a more efficient rwsem. 76config RWSEM_GENERIC_SPINLOCK 77 def_bool y 78 79# We only support gcc 4.4 and above, so this should work. 80config ARCH_SUPPORTS_OPTIMIZED_INLINING 81 def_bool y 82 83config ARCH_PHYS_ADDR_T_64BIT 84 def_bool y 85 86config ARCH_DMA_ADDR_T_64BIT 87 def_bool y 88 89config NEED_DMA_MAP_STATE 90 def_bool y 91 92config ARCH_HAS_DMA_SET_COHERENT_MASK 93 bool 94 95config LOCKDEP_SUPPORT 96 def_bool y 97 98config STACKTRACE_SUPPORT 99 def_bool y 100 select STACKTRACE 101 102# We use discontigmem for now; at some point we may want to switch 103# to sparsemem (Tilera bug 7996). 104config ARCH_DISCONTIGMEM_ENABLE 105 def_bool y 106 107config ARCH_DISCONTIGMEM_DEFAULT 108 def_bool y 109 110config TRACE_IRQFLAGS_SUPPORT 111 def_bool y 112 113config STRICT_DEVMEM 114 def_bool y 115 116# SMP is required for Tilera Linux. 117config SMP 118 def_bool y 119 120config HVC_TILE 121 depends on TTY 122 select HVC_DRIVER 123 select HVC_IRQ if TILEGX 124 def_bool y 125 126config TILEGX 127 bool "Building for TILE-Gx (64-bit) processor" 128 select SPARSE_IRQ 129 select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ 130 select HAVE_FUNCTION_TRACER 131 select HAVE_FUNCTION_GRAPH_TRACER 132 select HAVE_DYNAMIC_FTRACE 133 select HAVE_FTRACE_MCOUNT_RECORD 134 select HAVE_KPROBES 135 select HAVE_KRETPROBES 136 select HAVE_ARCH_KGDB 137 select ARCH_SUPPORTS_ATOMIC_RMW 138 139config TILEPRO 140 def_bool !TILEGX 141 142config 64BIT 143 def_bool TILEGX 144 145config ARCH_DEFCONFIG 146 string 147 default "arch/tile/configs/tilepro_defconfig" if !TILEGX 148 default "arch/tile/configs/tilegx_defconfig" if TILEGX 149 150source "init/Kconfig" 151 152source "kernel/Kconfig.freezer" 153 154menu "Tilera-specific configuration" 155 156config NR_CPUS 157 int "Maximum number of tiles (2-255)" 158 range 2 255 159 depends on SMP 160 default "64" 161 ---help--- 162 Building with 64 is the recommended value, but a slightly 163 smaller kernel memory footprint results from using a smaller 164 value on chips with fewer tiles. 165 166if TILEGX 167 168choice 169 prompt "Kernel page size" 170 default PAGE_SIZE_64KB 171 help 172 This lets you select the page size of the kernel. For best 173 performance on memory-intensive applications, a page size of 64KB 174 is recommended. For workloads involving many small files, many 175 connections, etc., it may be better to select 16KB, which uses 176 memory more efficiently at some cost in TLB performance. 177 178 Note that this option is TILE-Gx specific; currently 179 TILEPro page size is set by rebuilding the hypervisor. 180 181config PAGE_SIZE_16KB 182 bool "16KB" 183 184config PAGE_SIZE_64KB 185 bool "64KB" 186 187endchoice 188 189endif 190 191source "kernel/Kconfig.hz" 192 193config KEXEC 194 bool "kexec system call" 195 ---help--- 196 kexec is a system call that implements the ability to shutdown your 197 current kernel, and to start another kernel. It is like a reboot 198 but it is independent of the system firmware. It is used 199 to implement the "mboot" Tilera booter. 200 201 The name comes from the similarity to the exec system call. 202 203config COMPAT 204 bool "Support 32-bit TILE-Gx binaries in addition to 64-bit" 205 depends on TILEGX 206 select COMPAT_BINFMT_ELF 207 default y 208 ---help--- 209 If enabled, the kernel will support running TILE-Gx binaries 210 that were built with the -m32 option. 211 212config SYSVIPC_COMPAT 213 def_bool y 214 depends on COMPAT && SYSVIPC 215 216# We do not currently support disabling HIGHMEM on tilepro. 217config HIGHMEM 218 bool # "Support for more than 512 MB of RAM" 219 default !TILEGX 220 ---help--- 221 Linux can use the full amount of RAM in the system by 222 default. However, the address space of TILE processors is 223 only 4 Gigabytes large. That means that, if you have a large 224 amount of physical memory, not all of it can be "permanently 225 mapped" by the kernel. The physical memory that's not 226 permanently mapped is called "high memory". 227 228 If you are compiling a kernel which will never run on a 229 machine with more than 512 MB total physical RAM, answer 230 "false" here. This will result in the kernel mapping all of 231 physical memory into the top 1 GB of virtual memory space. 232 233 If unsure, say "true". 234 235config ZONE_DMA 236 def_bool y 237 238config IOMMU_HELPER 239 bool 240 241config NEED_SG_DMA_LENGTH 242 bool 243 244config SWIOTLB 245 bool 246 default TILEGX 247 select IOMMU_HELPER 248 select NEED_SG_DMA_LENGTH 249 select ARCH_HAS_DMA_SET_COHERENT_MASK 250 251# We do not currently support disabling NUMA. 252config NUMA 253 bool # "NUMA Memory Allocation and Scheduler Support" 254 depends on SMP && DISCONTIGMEM 255 default y 256 ---help--- 257 NUMA memory allocation is required for TILE processors 258 unless booting with memory striping enabled in the 259 hypervisor, or with only a single memory controller. 260 It is recommended that this option always be enabled. 261 262config NODES_SHIFT 263 int "Log base 2 of the max number of memory controllers" 264 default 2 265 depends on NEED_MULTIPLE_NODES 266 ---help--- 267 By default, 2, i.e. 2^2 == 4 DDR2 controllers. 268 In a system with more controllers, this value should be raised. 269 270choice 271 depends on !TILEGX 272 prompt "Memory split" if EXPERT 273 default VMSPLIT_3G 274 ---help--- 275 Select the desired split between kernel and user memory. 276 277 If the address range available to the kernel is less than the 278 physical memory installed, the remaining memory will be available 279 as "high memory". Accessing high memory is a little more costly 280 than low memory, as it needs to be mapped into the kernel first. 281 Note that increasing the kernel address space limits the range 282 available to user programs, making the address space there 283 tighter. Selecting anything other than the default 3G/1G split 284 will also likely make your kernel incompatible with binary-only 285 kernel modules. 286 287 If you are not absolutely sure what you are doing, leave this 288 option alone! 289 290 config VMSPLIT_3_75G 291 bool "3.75G/0.25G user/kernel split (no kernel networking)" 292 config VMSPLIT_3_5G 293 bool "3.5G/0.5G user/kernel split" 294 config VMSPLIT_3G 295 bool "3G/1G user/kernel split" 296 config VMSPLIT_2_75G 297 bool "2.75G/1.25G user/kernel split (for full 1G low memory)" 298 config VMSPLIT_2_5G 299 bool "2.5G/1.5G user/kernel split" 300 config VMSPLIT_2_25G 301 bool "2.25G/1.75G user/kernel split" 302 config VMSPLIT_2G 303 bool "2G/2G user/kernel split" 304 config VMSPLIT_1G 305 bool "1G/3G user/kernel split" 306endchoice 307 308config PAGE_OFFSET 309 hex 310 depends on !64BIT 311 default 0xF0000000 if VMSPLIT_3_75G 312 default 0xE0000000 if VMSPLIT_3_5G 313 default 0xB0000000 if VMSPLIT_2_75G 314 default 0xA0000000 if VMSPLIT_2_5G 315 default 0x90000000 if VMSPLIT_2_25G 316 default 0x80000000 if VMSPLIT_2G 317 default 0x40000000 if VMSPLIT_1G 318 default 0xC0000000 319 320source "mm/Kconfig" 321 322source "kernel/Kconfig.preempt" 323 324config CMDLINE_BOOL 325 bool "Built-in kernel command line" 326 default n 327 ---help--- 328 Allow for specifying boot arguments to the kernel at 329 build time. On some systems (e.g. embedded ones), it is 330 necessary or convenient to provide some or all of the 331 kernel boot arguments with the kernel itself (that is, 332 to not rely on the boot loader to provide them.) 333 334 To compile command line arguments into the kernel, 335 set this option to 'Y', then fill in the 336 the boot arguments in CONFIG_CMDLINE. 337 338 Systems with fully functional boot loaders (e.g. mboot, or 339 if booting over PCI) should leave this option set to 'N'. 340 341config CMDLINE 342 string "Built-in kernel command string" 343 depends on CMDLINE_BOOL 344 default "" 345 ---help--- 346 Enter arguments here that should be compiled into the kernel 347 image and used at boot time. If the boot loader provides a 348 command line at boot time, it is appended to this string to 349 form the full kernel command line, when the system boots. 350 351 However, you can use the CONFIG_CMDLINE_OVERRIDE option to 352 change this behavior. 353 354 In most cases, the command line (whether built-in or provided 355 by the boot loader) should specify the device for the root 356 file system. 357 358config CMDLINE_OVERRIDE 359 bool "Built-in command line overrides boot loader arguments" 360 default n 361 depends on CMDLINE_BOOL 362 ---help--- 363 Set this option to 'Y' to have the kernel ignore the boot loader 364 command line, and use ONLY the built-in command line. 365 366 This is used to work around broken boot loaders. This should 367 be set to 'N' under normal conditions. 368 369config VMALLOC_RESERVE 370 hex 371 default 0x2000000 372 373config HARDWALL 374 bool "Hardwall support to allow access to user dynamic network" 375 default y 376 377config KERNEL_PL 378 int "Processor protection level for kernel" 379 range 1 2 380 default 2 if TILEGX 381 default 1 if !TILEGX 382 ---help--- 383 Since MDE 4.2, the Tilera hypervisor runs the kernel 384 at PL2 by default. If running under an older hypervisor, 385 or as a KVM guest, you must run at PL1. (The current 386 hypervisor may also be recompiled with "make HV_PL=2" to 387 allow it to run a kernel at PL1, but clients running at PL1 388 are not expected to be supported indefinitely.) 389 390 If you're not sure, don't change the default. 391 392source "arch/tile/gxio/Kconfig" 393 394endmenu # Tilera-specific configuration 395 396menu "Bus options" 397 398config PCI 399 bool "PCI support" 400 default y 401 select PCI_DOMAINS 402 select GENERIC_PCI_IOMAP 403 select TILE_GXIO_TRIO if TILEGX 404 select PCI_MSI if TILEGX 405 ---help--- 406 Enable PCI root complex support, so PCIe endpoint devices can 407 be attached to the Tile chip. Many, but not all, PCI devices 408 are supported under Tilera's root complex driver. 409 410config PCI_DOMAINS 411 bool 412 413config NO_IOMEM 414 def_bool !PCI 415 416config NO_IOPORT_MAP 417 def_bool !PCI 418 419config TILE_PCI_IO 420 bool "PCI I/O space support" 421 default n 422 depends on PCI 423 depends on TILEGX 424 ---help--- 425 Enable PCI I/O space support on TILEGx. Since the PCI I/O space 426 is used by few modern PCIe endpoint devices, its support is disabled 427 by default to save the TRIO PIO Region resource for other purposes. 428 429source "drivers/pci/Kconfig" 430 431source "drivers/pci/pcie/Kconfig" 432 433config TILE_USB 434 tristate "Tilera USB host adapter support" 435 default y 436 depends on USB 437 depends on TILEGX 438 select TILE_GXIO_USB_HOST 439 ---help--- 440 Provides USB host adapter support for the built-in EHCI and OHCI 441 interfaces on TILE-Gx chips. 442 443source "drivers/pci/hotplug/Kconfig" 444 445endmenu 446 447menu "Executable file formats" 448 449source "fs/Kconfig.binfmt" 450 451endmenu 452 453source "net/Kconfig" 454 455source "drivers/Kconfig" 456 457source "fs/Kconfig" 458 459source "arch/tile/Kconfig.debug" 460 461source "security/Kconfig" 462 463source "crypto/Kconfig" 464 465source "lib/Kconfig" 466 467source "arch/tile/kvm/Kconfig"