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