linux/arch/tile/Kconfig
<<
>>
Prefs
   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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.