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