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