linux/arch/arc/Kconfig
<<
>>
Prefs
   1#
   2# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
   3#
   4# This program is free software; you can redistribute it and/or modify
   5# it under the terms of the GNU General Public License version 2 as
   6# published by the Free Software Foundation.
   7#
   8
   9config ARC
  10        def_bool y
  11        select BUILDTIME_EXTABLE_SORT
  12        select CLONE_BACKWARDS
  13        # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
  14        select DEVTMPFS if !INITRAMFS_SOURCE=""
  15        select GENERIC_ATOMIC64
  16        select GENERIC_CLOCKEVENTS
  17        select GENERIC_FIND_FIRST_BIT
  18        # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
  19        select GENERIC_IRQ_SHOW
  20        select GENERIC_PENDING_IRQ if SMP
  21        select GENERIC_SMP_IDLE_THREAD
  22        select HAVE_ARCH_KGDB
  23        select HAVE_ARCH_TRACEHOOK
  24        select HAVE_IOREMAP_PROT
  25        select HAVE_KPROBES
  26        select HAVE_KRETPROBES
  27        select HAVE_MEMBLOCK
  28        select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
  29        select HAVE_OPROFILE
  30        select HAVE_PERF_EVENTS
  31        select IRQ_DOMAIN
  32        select MODULES_USE_ELF_RELA
  33        select NO_BOOTMEM
  34        select OF
  35        select OF_EARLY_FLATTREE
  36        select PERF_USE_VMALLOC
  37        select HAVE_DEBUG_STACKOVERFLOW
  38
  39config TRACE_IRQFLAGS_SUPPORT
  40        def_bool y
  41
  42config LOCKDEP_SUPPORT
  43        def_bool y
  44
  45config SCHED_OMIT_FRAME_POINTER
  46        def_bool y
  47
  48config GENERIC_CSUM
  49        def_bool y
  50
  51config RWSEM_GENERIC_SPINLOCK
  52        def_bool y
  53
  54config ARCH_FLATMEM_ENABLE
  55        def_bool y
  56
  57config MMU
  58        def_bool y
  59
  60config NO_IOPORT_MAP
  61        def_bool y
  62
  63config GENERIC_CALIBRATE_DELAY
  64        def_bool y
  65
  66config GENERIC_HWEIGHT
  67        def_bool y
  68
  69config STACKTRACE_SUPPORT
  70        def_bool y
  71        select STACKTRACE
  72
  73config HAVE_LATENCYTOP_SUPPORT
  74        def_bool y
  75
  76config NO_DMA
  77        def_bool n
  78
  79source "init/Kconfig"
  80source "kernel/Kconfig.freezer"
  81
  82menu "ARC Architecture Configuration"
  83
  84menu "ARC Platform/SoC/Board"
  85
  86source "arch/arc/plat-arcfpga/Kconfig"
  87source "arch/arc/plat-tb10x/Kconfig"
  88#New platform adds here
  89
  90endmenu
  91
  92menu "ARC CPU Configuration"
  93
  94choice
  95        prompt "ARC Core"
  96        default ARC_CPU_770
  97
  98config ARC_CPU_750D
  99        bool "ARC750D"
 100        help
 101          Support for ARC750 core
 102
 103config ARC_CPU_770
 104        bool "ARC770"
 105        select ARC_CPU_REL_4_10
 106        help
 107          Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
 108          This core has a bunch of cool new features:
 109          -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
 110                   Shared Address Spaces (for sharing TLB entires in MMU)
 111          -Caches: New Prog Model, Region Flush
 112          -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
 113
 114endchoice
 115
 116config CPU_BIG_ENDIAN
 117        bool "Enable Big Endian Mode"
 118        default n
 119        help
 120          Build kernel for Big Endian Mode of ARC CPU
 121
 122# If a platform can't work with 0x8000_0000 based dma_addr_t
 123config ARC_PLAT_NEEDS_CPU_TO_DMA
 124        bool
 125
 126config SMP
 127        bool "Symmetric Multi-Processing (Incomplete)"
 128        default n
 129        help
 130          This enables support for systems with more than one CPU. If you have
 131          a system with only one CPU, say N. If you have a system with more
 132          than one CPU, say Y.
 133
 134if SMP
 135
 136config ARC_HAS_COH_CACHES
 137        def_bool n
 138
 139config ARC_HAS_REENTRANT_IRQ_LV2
 140        def_bool n
 141
 142endif
 143
 144config NR_CPUS
 145        int "Maximum number of CPUs (2-4096)"
 146        range 2 4096
 147        depends on SMP
 148        default "2"
 149
 150menuconfig ARC_CACHE
 151        bool "Enable Cache Support"
 152        default y
 153        # if SMP, cache enabled ONLY if ARC implementation has cache coherency
 154        depends on !SMP || ARC_HAS_COH_CACHES
 155
 156if ARC_CACHE
 157
 158config ARC_CACHE_LINE_SHIFT
 159        int "Cache Line Length (as power of 2)"
 160        range 5 7
 161        default "6"
 162        help
 163          Starting with ARC700 4.9, Cache line length is configurable,
 164          This option specifies "N", with Line-len = 2 power N
 165          So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
 166          Linux only supports same line lengths for I and D caches.
 167
 168config ARC_HAS_ICACHE
 169        bool "Use Instruction Cache"
 170        default y
 171
 172config ARC_HAS_DCACHE
 173        bool "Use Data Cache"
 174        default y
 175
 176config ARC_CACHE_PAGES
 177        bool "Per Page Cache Control"
 178        default y
 179        depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
 180        help
 181          This can be used to over-ride the global I/D Cache Enable on a
 182          per-page basis (but only for pages accessed via MMU such as
 183          Kernel Virtual address or User Virtual Address)
 184          TLB entries have a per-page Cache Enable Bit.
 185          Note that Global I/D ENABLE + Per Page DISABLE works but corollary
 186          Global DISABLE + Per Page ENABLE won't work
 187
 188config ARC_CACHE_VIPT_ALIASING
 189        bool "Support VIPT Aliasing D$"
 190        depends on ARC_HAS_DCACHE
 191        default n
 192
 193endif   #ARC_CACHE
 194
 195config ARC_HAS_ICCM
 196        bool "Use ICCM"
 197        help
 198          Single Cycle RAMS to store Fast Path Code
 199        default n
 200
 201config ARC_ICCM_SZ
 202        int "ICCM Size in KB"
 203        default "64"
 204        depends on ARC_HAS_ICCM
 205
 206config ARC_HAS_DCCM
 207        bool "Use DCCM"
 208        help
 209          Single Cycle RAMS to store Fast Path Data
 210        default n
 211
 212config ARC_DCCM_SZ
 213        int "DCCM Size in KB"
 214        default "64"
 215        depends on ARC_HAS_DCCM
 216
 217config ARC_DCCM_BASE
 218        hex "DCCM map address"
 219        default "0xA0000000"
 220        depends on ARC_HAS_DCCM
 221
 222config ARC_HAS_HW_MPY
 223        bool "Use Hardware Multiplier (Normal or Faster XMAC)"
 224        default y
 225        help
 226          Influences how gcc generates code for MPY operations.
 227          If enabled, MPYxx insns are generated, provided by Standard/XMAC
 228          Multipler. Otherwise software multipy lib is used
 229
 230choice
 231        prompt "ARC700 MMU Version"
 232        default ARC_MMU_V3 if ARC_CPU_770
 233        default ARC_MMU_V2 if ARC_CPU_750D
 234
 235config ARC_MMU_V1
 236        bool "MMU v1"
 237        help
 238          Orig ARC700 MMU
 239
 240config ARC_MMU_V2
 241        bool "MMU v2"
 242        help
 243          Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio
 244          when 2 D-TLB and 1 I-TLB entries index into same 2way set.
 245
 246config ARC_MMU_V3
 247        bool "MMU v3"
 248        depends on ARC_CPU_770
 249        help
 250          Introduced with ARC700 4.10: New Features
 251          Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
 252          Shared Address Spaces (SASID)
 253
 254endchoice
 255
 256
 257choice
 258        prompt "MMU Page Size"
 259        default ARC_PAGE_SIZE_8K
 260
 261config ARC_PAGE_SIZE_8K
 262        bool "8KB"
 263        help
 264          Choose between 8k vs 16k
 265
 266config ARC_PAGE_SIZE_16K
 267        bool "16KB"
 268        depends on ARC_MMU_V3
 269
 270config ARC_PAGE_SIZE_4K
 271        bool "4KB"
 272        depends on ARC_MMU_V3
 273
 274endchoice
 275
 276config ARC_COMPACT_IRQ_LEVELS
 277        bool "ARCompact IRQ Priorities: High(2)/Low(1)"
 278        default n
 279        # Timer HAS to be high priority, for any other high priority config
 280        select ARC_IRQ3_LV2
 281        # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
 282        depends on !SMP || ARC_HAS_REENTRANT_IRQ_LV2
 283
 284if ARC_COMPACT_IRQ_LEVELS
 285
 286config ARC_IRQ3_LV2
 287        bool
 288
 289config ARC_IRQ5_LV2
 290        bool
 291
 292config ARC_IRQ6_LV2
 293        bool
 294
 295endif
 296
 297config ARC_FPU_SAVE_RESTORE
 298        bool "Enable FPU state persistence across context switch"
 299        default n
 300        help
 301          Double Precision Floating Point unit had dedictaed regs which
 302          need to be saved/restored across context-switch.
 303          Note that ARC FPU is overly simplistic, unlike say x86, which has
 304          hardware pieces to allow software to conditionally save/restore,
 305          based on actual usage of FPU by a task. Thus our implemn does
 306          this for all tasks in system.
 307
 308config ARC_CANT_LLSC
 309        def_bool n
 310
 311menuconfig ARC_CPU_REL_4_10
 312        bool "Enable support for Rel 4.10 features"
 313        default n
 314        help
 315          -ARC770 (and dependent features) enabled
 316          -ARC750 also shares some of the new features with 770
 317
 318config ARC_HAS_LLSC
 319        bool "Insn: LLOCK/SCOND (efficient atomic ops)"
 320        default y
 321        depends on ARC_CPU_770 && !ARC_CANT_LLSC
 322
 323config ARC_HAS_SWAPE
 324        bool "Insn: SWAPE (endian-swap)"
 325        default y
 326        depends on ARC_CPU_REL_4_10
 327
 328config ARC_HAS_RTSC
 329        bool "Insn: RTSC (64-bit r/o cycle counter)"
 330        default y
 331        depends on ARC_CPU_REL_4_10
 332        depends on !SMP
 333
 334endmenu   # "ARC CPU Configuration"
 335
 336config LINUX_LINK_BASE
 337        hex "Linux Link Address"
 338        default "0x80000000"
 339        help
 340          ARC700 divides the 32 bit phy address space into two equal halves
 341          -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
 342          -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
 343          Typically Linux kernel is linked at the start of untransalted addr,
 344          hence the default value of 0x8zs.
 345          However some customers have peripherals mapped at this addr, so
 346          Linux needs to be scooted a bit.
 347          If you don't know what the above means, leave this setting alone.
 348
 349config ARC_CURR_IN_REG
 350        bool "Dedicate Register r25 for current_task pointer"
 351        default y
 352        help
 353          This reserved Register R25 to point to Current Task in
 354          kernel mode. This saves memory access for each such access
 355
 356
 357config ARC_MISALIGN_ACCESS
 358        bool "Emulate unaligned memory access (userspace only)"
 359        select SYSCTL_ARCH_UNALIGN_NO_WARN
 360        select SYSCTL_ARCH_UNALIGN_ALLOW
 361        help
 362          This enables misaligned 16 & 32 bit memory access from user space.
 363          Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
 364          potential bugs in code
 365
 366config HZ
 367        int "Timer Frequency"
 368        default 100
 369
 370config ARC_METAWARE_HLINK
 371        bool "Support for Metaware debugger assisted Host access"
 372        default n
 373        help
 374          This options allows a Linux userland apps to directly access
 375          host file system (open/creat/read/write etc) with help from
 376          Metaware Debugger. This can come in handy for Linux-host communication
 377          when there is no real usable peripheral such as EMAC.
 378
 379menuconfig ARC_DBG
 380        bool "ARC debugging"
 381        default y
 382
 383config ARC_DW2_UNWIND
 384        bool "Enable DWARF specific kernel stack unwind"
 385        depends on ARC_DBG
 386        default y
 387        select KALLSYMS
 388        help
 389          Compiles the kernel with DWARF unwind information and can be used
 390          to get stack backtraces.
 391
 392          If you say Y here the resulting kernel image will be slightly larger
 393          but not slower, and it will give very useful debugging information.
 394          If you don't debug the kernel, you can say N, but we may not be able
 395          to solve problems without frame unwind information
 396
 397config ARC_DBG_TLB_PARANOIA
 398        bool "Paranoia Checks in Low Level TLB Handlers"
 399        depends on ARC_DBG
 400        default n
 401
 402config ARC_DBG_TLB_MISS_COUNT
 403        bool "Profile TLB Misses"
 404        default n
 405        select DEBUG_FS
 406        depends on ARC_DBG
 407        help
 408          Counts number of I and D TLB Misses and exports them via Debugfs
 409          The counters can be cleared via Debugfs as well
 410
 411config ARC_BUILTIN_DTB_NAME
 412        string "Built in DTB"
 413        help
 414          Set the name of the DTB to embed in the vmlinux binary
 415          Leaving it blank selects the minimal "skeleton" dtb
 416
 417source "kernel/Kconfig.preempt"
 418
 419menu "Executable file formats"
 420source "fs/Kconfig.binfmt"
 421endmenu
 422
 423endmenu  # "ARC Architecture Configuration"
 424
 425source "mm/Kconfig"
 426source "net/Kconfig"
 427source "drivers/Kconfig"
 428source "fs/Kconfig"
 429source "arch/arc/Kconfig.debug"
 430source "security/Kconfig"
 431source "crypto/Kconfig"
 432source "lib/Kconfig"
 433