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