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