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