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 ARCH_NO_VIRT_TO_BUS 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_GENERIC_HARDIRQS 22 select MODULES_USE_ELF_RELA 23 24config SCHED_OMIT_FRAME_POINTER 25 def_bool y 26 27config GENERIC_CSUM 28 def_bool y 29 30config RWSEM_GENERIC_SPINLOCK 31 def_bool y 32 33config ARCH_FLATMEM_ENABLE 34 def_bool y 35 36config MMU 37 def_bool y 38 39config NO_IOPORT 40 def_bool y 41 42config GENERIC_CALIBRATE_DELAY 43 def_bool y 44 45config GENERIC_HWEIGHT 46 def_bool y 47 48config BINFMT_ELF 49 def_bool y 50 51config HAVE_LATENCYTOP_SUPPORT 52 def_bool y 53 54config NO_DMA 55 def_bool n 56 57source "init/Kconfig" 58source "kernel/Kconfig.freezer" 59 60menu "ARC Architecture Configuration" 61 62choice 63 prompt "ARC Platform" 64 default ARC_PLAT_FPGA_LEGACY 65 66config ARC_PLAT_FPGA_LEGACY 67 bool "\"Legacy\" ARC FPGA dev platform" 68 help 69 Support for ARC development platforms, provided by Synopsys. 70 These are based on FPGA or ISS. e.g. 71 - ARCAngel4 72 - ML509 73 - MetaWare ISS 74 75#New platform adds here 76endchoice 77 78menu "ARC CPU Configuration" 79 80choice 81 prompt "ARC Core" 82 default ARC_CPU_770 83 84config ARC_CPU_750D 85 bool "ARC750D" 86 help 87 Support for ARC750 core 88 89config ARC_CPU_770 90 bool "ARC770" 91 select ARC_CPU_REL_4_10 92 help 93 Support for ARC770 core introduced with Rel 4.10 (Summer 2011) 94 This core has a bunch of cool new features: 95 -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4) 96 Shared Address Spaces (for sharing TLB entires in MMU) 97 -Caches: New Prog Model, Region Flush 98 -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr 99 100endchoice 101 102config CPU_BIG_ENDIAN 103 bool "Enable Big Endian Mode" 104 default n 105 help 106 Build kernel for Big Endian Mode of ARC CPU 107 108menuconfig ARC_CACHE 109 bool "Enable Cache Support" 110 default y 111 112if ARC_CACHE 113 114config ARC_CACHE_LINE_SHIFT 115 int "Cache Line Length (as power of 2)" 116 range 5 7 117 default "6" 118 help 119 Starting with ARC700 4.9, Cache line length is configurable, 120 This option specifies "N", with Line-len = 2 power N 121 So line lengths of 32, 64, 128 are specified by 5,6,7, respectively 122 Linux only supports same line lengths for I and D caches. 123 124config ARC_HAS_ICACHE 125 bool "Use Instruction Cache" 126 default y 127 128config ARC_HAS_DCACHE 129 bool "Use Data Cache" 130 default y 131 132config ARC_CACHE_PAGES 133 bool "Per Page Cache Control" 134 default y 135 depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE 136 help 137 This can be used to over-ride the global I/D Cache Enable on a 138 per-page basis (but only for pages accessed via MMU such as 139 Kernel Virtual address or User Virtual Address) 140 TLB entries have a per-page Cache Enable Bit. 141 Note that Global I/D ENABLE + Per Page DISABLE works but corollary 142 Global DISABLE + Per Page ENABLE won't work 143 144endif #ARC_CACHE 145 146config ARC_HAS_HW_MPY 147 bool "Use Hardware Multiplier (Normal or Faster XMAC)" 148 default y 149 help 150 Influences how gcc generates code for MPY operations. 151 If enabled, MPYxx insns are generated, provided by Standard/XMAC 152 Multipler. Otherwise software multipy lib is used 153 154choice 155 prompt "ARC700 MMU Version" 156 default ARC_MMU_V3 if ARC_CPU_770 157 default ARC_MMU_V2 if ARC_CPU_750D 158 159config ARC_MMU_V1 160 bool "MMU v1" 161 help 162 Orig ARC700 MMU 163 164config ARC_MMU_V2 165 bool "MMU v2" 166 help 167 Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio 168 when 2 D-TLB and 1 I-TLB entries index into same 2way set. 169 170config ARC_MMU_V3 171 bool "MMU v3" 172 depends on ARC_CPU_770 173 help 174 Introduced with ARC700 4.10: New Features 175 Variable Page size (1k-16k), var JTLB size 128 x (2 or 4) 176 Shared Address Spaces (SASID) 177 178endchoice 179 180 181choice 182 prompt "MMU Page Size" 183 default ARC_PAGE_SIZE_8K 184 185config ARC_PAGE_SIZE_8K 186 bool "8KB" 187 help 188 Choose between 8k vs 16k 189 190config ARC_PAGE_SIZE_16K 191 bool "16KB" 192 depends on ARC_MMU_V3 193 194config ARC_PAGE_SIZE_4K 195 bool "4KB" 196 depends on ARC_MMU_V3 197 198endchoice 199 200config ARC_FPU_SAVE_RESTORE 201 bool "Enable FPU state persistence across context switch" 202 default n 203 help 204 Double Precision Floating Point unit had dedictaed regs which 205 need to be saved/restored across context-switch. 206 Note that ARC FPU is overly simplistic, unlike say x86, which has 207 hardware pieces to allow software to conditionally save/restore, 208 based on actual usage of FPU by a task. Thus our implemn does 209 this for all tasks in system. 210 211menuconfig ARC_CPU_REL_4_10 212 bool "Enable support for Rel 4.10 features" 213 default n 214 help 215 -ARC770 (and dependent features) enabled 216 -ARC750 also shares some of the new features with 770 217 218config ARC_HAS_LLSC 219 bool "Insn: LLOCK/SCOND (efficient atomic ops)" 220 default y 221 depends on ARC_CPU_770 222 # if SMP, enable LLSC ONLY if ARC implementation has coherent atomics 223 depends on !SMP || ARC_HAS_COH_LLSC 224 225config ARC_HAS_SWAPE 226 bool "Insn: SWAPE (endian-swap)" 227 default y 228 depends on ARC_CPU_REL_4_10 229 230config ARC_HAS_RTSC 231 bool "Insn: RTSC (64-bit r/o cycle counter)" 232 default y 233 depends on ARC_CPU_REL_4_10 234 235endmenu # "ARC CPU Configuration" 236 237menu "Platform Board Configuration" 238 239source "arch/arc/plat-arcfpga/Kconfig" 240 241#New platform adds here 242 243config ARC_PLAT_CLK 244 int "Clk speed in Hz" 245 default "80000000" 246 247config LINUX_LINK_BASE 248 hex "Linux Link Address" 249 default "0x80000000" 250 help 251 ARC700 divides the 32 bit phy address space into two equal halves 252 -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU 253 -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel 254 Typically Linux kernel is linked at the start of untransalted addr, 255 hence the default value of 0x8zs. 256 However some customers have peripherals mapped at this addr, so 257 Linux needs to be scooted a bit. 258 If you don't know what the above means, leave this setting alone. 259 260config ARC_PLAT_SDRAM_SIZE 261 hex "SD RAM Size" 262 default "0x10000000" 263 help 264 Implies the amount of SDRAM/DRAM Linux is going to claim/own. 265 The actual memory itself could be larger than this number. But for 266 all software purposes, this is the amt of memory. 267 268endmenu # "Platform Board Configuration" 269 270config ARC_STACK_NONEXEC 271 bool "Make stack non-executable" 272 default n 273 help 274 To disable the execute permissions of stack/heap of processes 275 which are enabled by default. 276 277config HZ 278 int "Timer Frequency" 279 default 100 280 281menuconfig ARC_DBG 282 bool "ARC debugging" 283 default y 284 285config ARC_DBG_TLB_PARANOIA 286 bool "Paranoia Checks in Low Level TLB Handlers" 287 depends on ARC_DBG 288 default n 289 290config ARC_DBG_TLB_MISS_COUNT 291 bool "Profile TLB Misses" 292 default n 293 select DEBUG_FS 294 depends on ARC_DBG 295 help 296 Counts number of I and D TLB Misses and exports them via Debugfs 297 The counters can be cleared via Debugfs as well 298 299config CMDLINE 300 string "Kernel command line to built-in" 301 default "print-fatal-signals=1" 302 help 303 The default command line which will be appended to the optional 304 u-boot provided command line (see below) 305 306config CMDLINE_UBOOT 307 bool "Support U-boot kernel command line passing" 308 default n 309 help 310 If you are using U-boot (www.denx.de) and wish to pass the kernel 311 command line from the U-boot environment to the Linux kernel then 312 switch this option on. 313 ARC U-boot will setup the cmdline in RAM/flash and set r2 to point 314 to it. kernel startup code will copy the string into cmdline buffer 315 and also append CONFIG_CMDLINE. 316 317source "kernel/Kconfig.preempt" 318 319endmenu # "ARC Architecture Configuration" 320 321source "mm/Kconfig" 322source "net/Kconfig" 323source "drivers/Kconfig" 324source "fs/Kconfig" 325source "arch/arc/Kconfig.debug" 326source "security/Kconfig" 327source "crypto/Kconfig" 328source "lib/Kconfig" 329