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

