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