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_IOREMAP_PROT 24 select HAVE_KPROBES 25 select HAVE_KRETPROBES 26 select HAVE_MEMBLOCK 27 select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND 28 select HAVE_OPROFILE 29 select HAVE_PERF_EVENTS 30 select IRQ_DOMAIN 31 select MODULES_USE_ELF_RELA 32 select NO_BOOTMEM 33 select OF 34 select OF_EARLY_FLATTREE 35 select PERF_USE_VMALLOC 36 select HAVE_DEBUG_STACKOVERFLOW 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 depends on ARC_HAS_DCACHE 188 default n 189 190endif #ARC_CACHE 191 192config ARC_HAS_ICCM 193 bool "Use ICCM" 194 help 195 Single Cycle RAMS to store Fast Path Code 196 default n 197 198config ARC_ICCM_SZ 199 int "ICCM Size in KB" 200 default "64" 201 depends on ARC_HAS_ICCM 202 203config ARC_HAS_DCCM 204 bool "Use DCCM" 205 help 206 Single Cycle RAMS to store Fast Path Data 207 default n 208 209config ARC_DCCM_SZ 210 int "DCCM Size in KB" 211 default "64" 212 depends on ARC_HAS_DCCM 213 214config ARC_DCCM_BASE 215 hex "DCCM map address" 216 default "0xA0000000" 217 depends on ARC_HAS_DCCM 218 219config ARC_HAS_HW_MPY 220 bool "Use Hardware Multiplier (Normal or Faster XMAC)" 221 default y 222 help 223 Influences how gcc generates code for MPY operations. 224 If enabled, MPYxx insns are generated, provided by Standard/XMAC 225 Multipler. Otherwise software multipy lib is used 226 227choice 228 prompt "ARC700 MMU Version" 229 default ARC_MMU_V3 if ARC_CPU_770 230 default ARC_MMU_V2 if ARC_CPU_750D 231 232config ARC_MMU_V1 233 bool "MMU v1" 234 help 235 Orig ARC700 MMU 236 237config ARC_MMU_V2 238 bool "MMU v2" 239 help 240 Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio 241 when 2 D-TLB and 1 I-TLB entries index into same 2way set. 242 243config ARC_MMU_V3 244 bool "MMU v3" 245 depends on ARC_CPU_770 246 help 247 Introduced with ARC700 4.10: New Features 248 Variable Page size (1k-16k), var JTLB size 128 x (2 or 4) 249 Shared Address Spaces (SASID) 250 251endchoice 252 253 254choice 255 prompt "MMU Page Size" 256 default ARC_PAGE_SIZE_8K 257 258config ARC_PAGE_SIZE_8K 259 bool "8KB" 260 help 261 Choose between 8k vs 16k 262 263config ARC_PAGE_SIZE_16K 264 bool "16KB" 265 depends on ARC_MMU_V3 266 267config ARC_PAGE_SIZE_4K 268 bool "4KB" 269 depends on ARC_MMU_V3 270 271endchoice 272 273config ARC_COMPACT_IRQ_LEVELS 274 bool "ARCompact IRQ Priorities: High(2)/Low(1)" 275 default n 276 # Timer HAS to be high priority, for any other high priority config 277 select ARC_IRQ3_LV2 278 # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy 279 depends on !SMP || ARC_HAS_REENTRANT_IRQ_LV2 280 281if ARC_COMPACT_IRQ_LEVELS 282 283config ARC_IRQ3_LV2 284 bool 285 286config ARC_IRQ5_LV2 287 bool 288 289config ARC_IRQ6_LV2 290 bool 291 292endif 293 294config ARC_FPU_SAVE_RESTORE 295 bool "Enable FPU state persistence across context switch" 296 default n 297 help 298 Double Precision Floating Point unit had dedictaed regs which 299 need to be saved/restored across context-switch. 300 Note that ARC FPU is overly simplistic, unlike say x86, which has 301 hardware pieces to allow software to conditionally save/restore, 302 based on actual usage of FPU by a task. Thus our implemn does 303 this for all tasks in system. 304 305config ARC_CANT_LLSC 306 def_bool n 307 308menuconfig ARC_CPU_REL_4_10 309 bool "Enable support for Rel 4.10 features" 310 default n 311 help 312 -ARC770 (and dependent features) enabled 313 -ARC750 also shares some of the new features with 770 314 315config ARC_HAS_LLSC 316 bool "Insn: LLOCK/SCOND (efficient atomic ops)" 317 default y 318 depends on ARC_CPU_770 && !ARC_CANT_LLSC 319 320config ARC_HAS_SWAPE 321 bool "Insn: SWAPE (endian-swap)" 322 default y 323 depends on ARC_CPU_REL_4_10 324 325config ARC_HAS_RTSC 326 bool "Insn: RTSC (64-bit r/o cycle counter)" 327 default y 328 depends on ARC_CPU_REL_4_10 329 # if SMP, enable RTSC only if counter is coherent across cores 330 depends on !SMP || ARC_HAS_COH_RTSC 331 332endmenu # "ARC CPU Configuration" 333 334config LINUX_LINK_BASE 335 hex "Linux Link Address" 336 default "0x80000000" 337 help 338 ARC700 divides the 32 bit phy address space into two equal halves 339 -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU 340 -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel 341 Typically Linux kernel is linked at the start of untransalted addr, 342 hence the default value of 0x8zs. 343 However some customers have peripherals mapped at this addr, so 344 Linux needs to be scooted a bit. 345 If you don't know what the above means, leave this setting alone. 346 347config ARC_CURR_IN_REG 348 bool "Dedicate Register r25 for current_task pointer" 349 default y 350 help 351 This reserved Register R25 to point to Current Task in 352 kernel mode. This saves memory access for each such access 353 354 355config ARC_MISALIGN_ACCESS 356 bool "Emulate unaligned memory access (userspace only)" 357 default N 358 select SYSCTL_ARCH_UNALIGN_NO_WARN 359 select SYSCTL_ARCH_UNALIGN_ALLOW 360 help 361 This enables misaligned 16 & 32 bit memory access from user space. 362 Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide 363 potential bugs in code 364 365config HZ 366 int "Timer Frequency" 367 default 100 368 369config ARC_METAWARE_HLINK 370 bool "Support for Metaware debugger assisted Host access" 371 default n 372 help 373 This options allows a Linux userland apps to directly access 374 host file system (open/creat/read/write etc) with help from 375 Metaware Debugger. This can come in handy for Linux-host communication 376 when there is no real usable peripheral such as EMAC. 377 378menuconfig ARC_DBG 379 bool "ARC debugging" 380 default y 381 382config ARC_DW2_UNWIND 383 bool "Enable DWARF specific kernel stack unwind" 384 depends on ARC_DBG 385 default y 386 select KALLSYMS 387 help 388 Compiles the kernel with DWARF unwind information and can be used 389 to get stack backtraces. 390 391 If you say Y here the resulting kernel image will be slightly larger 392 but not slower, and it will give very useful debugging information. 393 If you don't debug the kernel, you can say N, but we may not be able 394 to solve problems without frame unwind information 395 396config ARC_DBG_TLB_PARANOIA 397 bool "Paranoia Checks in Low Level TLB Handlers" 398 depends on ARC_DBG 399 default n 400 401config ARC_DBG_TLB_MISS_COUNT 402 bool "Profile TLB Misses" 403 default n 404 select DEBUG_FS 405 depends on ARC_DBG 406 help 407 Counts number of I and D TLB Misses and exports them via Debugfs 408 The counters can be cleared via Debugfs as well 409 410config CMDLINE_UBOOT 411 bool "Support U-boot kernel command line passing" 412 default n 413 help 414 If you are using U-boot (www.denx.de) and wish to pass the kernel 415 command line from the U-boot environment to the Linux kernel then 416 switch this option on. 417 ARC U-boot will setup the cmdline in RAM/flash and set r2 to point 418 to it. kernel startup code will append this to DeviceTree 419 /bootargs provided cmdline args. 420 421config ARC_BUILTIN_DTB_NAME 422 string "Built in DTB" 423 help 424 Set the name of the DTB to embed in the vmlinux binary 425 Leaving it blank selects the minimal "skeleton" dtb 426 427source "kernel/Kconfig.preempt" 428 429menu "Executable file formats" 430source "fs/Kconfig.binfmt" 431endmenu 432 433endmenu # "ARC Architecture Configuration" 434 435source "mm/Kconfig" 436source "net/Kconfig" 437source "drivers/Kconfig" 438source "fs/Kconfig" 439source "arch/arc/Kconfig.debug" 440source "security/Kconfig" 441source "crypto/Kconfig" 442source "lib/Kconfig" 443