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