blob: ac0b309aced591321d2d4ec89c9e030325ce84e4 [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
Vineet Gupta2a440162015-08-08 17:51:58 +053011 select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC
Vineet Guptaf06d19e2013-11-15 12:08:05 +053012 select BUILDTIME_EXTABLE_SORT
Noam Camus69fbd092016-01-14 12:20:08 +053013 select CLKSRC_OF
Vineet Gupta4adeefe2013-01-18 15:12:18 +053014 select CLONE_BACKWARDS
Noam Camus69fbd092016-01-14 12:20:08 +053015 select COMMON_CLK
Vineet Guptace636522015-07-27 17:23:28 +053016 select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053017 select GENERIC_CLOCKEVENTS
18 select GENERIC_FIND_FIRST_BIT
19 # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
20 select GENERIC_IRQ_SHOW
Joao Pintoc1678ff2016-03-10 14:44:13 -060021 select GENERIC_PCI_IOMAP
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053022 select GENERIC_PENDING_IRQ if SMP
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053023 select GENERIC_SMP_IDLE_THREAD
Mischa Jonkerf46121b2013-01-18 15:12:24 +053024 select HAVE_ARCH_KGDB
Vineet Gupta547f1122013-01-18 15:12:22 +053025 select HAVE_ARCH_TRACEHOOK
Vineet Gupta5e057422015-08-06 17:55:34 +053026 select HAVE_FUTEX_CMPXCHG
Gilad Ben-Yossef43689022013-01-22 16:48:45 +053027 select HAVE_IOREMAP_PROT
Vineet Gupta4d86dfb2013-01-22 17:03:59 +053028 select HAVE_KPROBES
29 select HAVE_KRETPROBES
Vineet Guptac121c502013-01-18 15:12:20 +053030 select HAVE_MEMBLOCK
Vineet Gupta854a0d92013-01-22 17:03:19 +053031 select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
Vineet Gupta769bc1f2013-01-22 17:02:38 +053032 select HAVE_OPROFILE
Vineet Gupta9c575642013-01-18 15:12:24 +053033 select HAVE_PERF_EVENTS
Vineet Gupta1b0ccb82016-01-01 15:12:54 +053034 select HANDLE_DOMAIN_IRQ
Vineet Gupta999159a2013-01-22 17:00:52 +053035 select IRQ_DOMAIN
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053036 select MODULES_USE_ELF_RELA
Vineet Guptac121c502013-01-18 15:12:20 +053037 select NO_BOOTMEM
Vineet Gupta999159a2013-01-22 17:00:52 +053038 select OF
39 select OF_EARLY_FLATTREE
Alexey Brodkin1b10cb22016-04-26 19:29:34 +030040 select OF_RESERVED_MEM
Vineet Gupta9c575642013-01-18 15:12:24 +053041 select PERF_USE_VMALLOC
Dave Hansend1a1dc02013-07-01 13:04:42 -070042 select HAVE_DEBUG_STACKOVERFLOW
Alexey Brodkin32ed9a02016-04-26 19:29:33 +030043 select HAVE_GENERIC_DMA_COHERENT
Daniel Mentz27f3d2a2016-10-04 16:34:27 -070044 select HAVE_KERNEL_GZIP
45 select HAVE_KERNEL_LZMA
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053046
Joao Pintoc1678ff2016-03-10 14:44:13 -060047config MIGHT_HAVE_PCI
48 bool
49
Vineet Gupta0dafafc2013-09-06 14:18:17 +053050config TRACE_IRQFLAGS_SUPPORT
51 def_bool y
52
53config LOCKDEP_SUPPORT
54 def_bool y
55
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053056config SCHED_OMIT_FRAME_POINTER
57 def_bool y
58
59config GENERIC_CSUM
60 def_bool y
61
62config RWSEM_GENERIC_SPINLOCK
63 def_bool y
64
Vineet Gupta26f9d5f2016-04-18 10:49:56 +053065config ARCH_DISCONTIGMEM_ENABLE
Vineet Guptad140b9b2016-05-31 11:46:47 +053066 def_bool n
Vineet Gupta26f9d5f2016-04-18 10:49:56 +053067
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053068config ARCH_FLATMEM_ENABLE
69 def_bool y
70
71config MMU
72 def_bool y
73
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -070074config NO_IOPORT_MAP
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053075 def_bool y
76
77config GENERIC_CALIBRATE_DELAY
78 def_bool y
79
80config GENERIC_HWEIGHT
81 def_bool y
82
Vineet Gupta44c8bb92013-01-18 15:12:23 +053083config STACKTRACE_SUPPORT
84 def_bool y
85 select STACKTRACE
86
Vineet Guptafe6c1b82014-07-08 18:43:47 +053087config HAVE_ARCH_TRANSPARENT_HUGEPAGE
88 def_bool y
89 depends on ARC_MMU_V4
90
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053091source "init/Kconfig"
92source "kernel/Kconfig.freezer"
93
94menu "ARC Architecture Configuration"
95
Vineet Gupta93ad7002013-01-22 16:51:50 +053096menu "ARC Platform/SoC/Board"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053097
Vineet Guptafd155792015-02-20 19:12:18 +053098source "arch/arc/plat-sim/Kconfig"
Christian Ruppert072eb692013-04-12 08:40:59 +020099source "arch/arc/plat-tb10x/Kconfig"
Alexey Brodkin556cc1c2014-01-27 14:51:34 +0100100source "arch/arc/plat-axs10x/Kconfig"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530101#New platform adds here
Noam Camus966657892015-10-16 16:52:43 +0300102source "arch/arc/plat-eznps/Kconfig"
Vineet Gupta93ad7002013-01-22 16:51:50 +0530103
Vineet Gupta53d98952013-01-18 15:12:25 +0530104endmenu
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530105
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530106choice
107 prompt "ARC Instruction Set"
108 default ISA_ARCOMPACT
109
110config ISA_ARCOMPACT
111 bool "ARCompact ISA"
Zhaoxiu Zengfff7fb02016-05-20 17:03:57 -0700112 select CPU_NO_EFFICIENT_FFS
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530113 help
114 The original ARC ISA of ARC600/700 cores
115
Vineet Gupta65bfbcd2015-03-09 14:01:08 +0530116config ISA_ARCV2
117 bool "ARC ISA v2"
118 help
119 ISA for the Next Generation ARC-HS cores
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530120
121endchoice
122
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530123menu "ARC CPU Configuration"
124
125choice
126 prompt "ARC Core"
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530127 default ARC_CPU_770 if ISA_ARCOMPACT
128 default ARC_CPU_HS if ISA_ARCV2
129
130if ISA_ARCOMPACT
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530131
132config ARC_CPU_750D
133 bool "ARC750D"
Vineet Gupta14a0abf2015-06-26 12:42:53 +0530134 select ARC_CANT_LLSC
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530135 help
136 Support for ARC750 core
137
138config ARC_CPU_770
139 bool "ARC770"
Vineet Gupta742f8af2013-11-07 14:47:16 +0530140 select ARC_HAS_SWAPE
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530141 help
142 Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
143 This core has a bunch of cool new features:
144 -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
145 Shared Address Spaces (for sharing TLB entires in MMU)
146 -Caches: New Prog Model, Region Flush
147 -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
148
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530149endif #ISA_ARCOMPACT
150
151config ARC_CPU_HS
152 bool "ARC-HS"
153 depends on ISA_ARCV2
154 help
155 Support for ARC HS38x Cores based on ARCv2 ISA
156 The notable features are:
157 - SMP configurations of upto 4 core with coherency
158 - Optional L2 Cache and IO-Coherency
159 - Revised Interrupt Architecture (multiple priorites, reg banks,
160 auto stack switch, auto regfile save/restore)
161 - MMUv4 (PIPT dcache, Huge Pages)
162 - Instructions for
163 * 64bit load/store: LDD, STD
164 * Hardware assisted divide/remainder: DIV, REM
165 * Function prologue/epilogue: ENTER_S, LEAVE_S
166 * IRQ enable/disable: CLRI, SETI
167 * pop count: FFS, FLS
168 * SETcc, BMSKN, XBFU...
169
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530170endchoice
171
172config CPU_BIG_ENDIAN
173 bool "Enable Big Endian Mode"
174 default n
175 help
176 Build kernel for Big Endian Mode of ARC CPU
177
Vineet Gupta41195d22013-01-18 15:12:23 +0530178config SMP
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530179 bool "Symmetric Multi-Processing"
Vineet Gupta41195d22013-01-18 15:12:23 +0530180 default n
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530181 select ARC_HAS_COH_CACHES if ISA_ARCV2
182 select ARC_MCIP if ISA_ARCV2
Vineet Gupta41195d22013-01-18 15:12:23 +0530183 help
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530184 This enables support for systems with more than one CPU.
Vineet Gupta41195d22013-01-18 15:12:23 +0530185
186if SMP
187
188config ARC_HAS_COH_CACHES
189 def_bool n
190
Vineet Gupta41195d22013-01-18 15:12:23 +0530191config NR_CPUS
Noam Camus3aa4f802013-06-03 15:19:59 +0300192 int "Maximum number of CPUs (2-4096)"
193 range 2 4096
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530194 default "4"
195
Vineet Gupta3971cdc2015-10-09 11:26:12 +0530196config ARC_SMP_HALT_ON_RESET
197 bool "Enable Halt-on-reset boot mode"
198 default y if ARC_UBOOT_SUPPORT
199 help
200 In SMP configuration cores can be configured as Halt-on-reset
201 or they could all start at same time. For Halt-on-reset, non
202 masters are parked until Master kicks them so they can start of
203 at designated entry point. For other case, all jump to common
204 entry point and spin wait for Master's signal.
205
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530206endif #SMP
Vineet Gupta41195d22013-01-18 15:12:23 +0530207
Vineet Gupta3ce0fef2016-09-29 10:00:14 -0700208config ARC_MCIP
209 bool "ARConnect Multicore IP (MCIP) Support "
210 depends on ISA_ARCV2
211 default y if SMP
212 help
213 This IP block enables SMP in ARC-HS38 cores.
214 It provides for cross-core interrupts, multi-core debug
215 hardware semaphores, shared memory,....
216
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530217menuconfig ARC_CACHE
218 bool "Enable Cache Support"
219 default y
Vineet Gupta41195d22013-01-18 15:12:23 +0530220 # if SMP, cache enabled ONLY if ARC implementation has cache coherency
221 depends on !SMP || ARC_HAS_COH_CACHES
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530222
223if ARC_CACHE
224
225config ARC_CACHE_LINE_SHIFT
226 int "Cache Line Length (as power of 2)"
227 range 5 7
228 default "6"
229 help
230 Starting with ARC700 4.9, Cache line length is configurable,
231 This option specifies "N", with Line-len = 2 power N
232 So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
233 Linux only supports same line lengths for I and D caches.
234
235config ARC_HAS_ICACHE
236 bool "Use Instruction Cache"
237 default y
238
239config ARC_HAS_DCACHE
240 bool "Use Data Cache"
241 default y
242
243config ARC_CACHE_PAGES
244 bool "Per Page Cache Control"
245 default y
246 depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
247 help
248 This can be used to over-ride the global I/D Cache Enable on a
249 per-page basis (but only for pages accessed via MMU such as
250 Kernel Virtual address or User Virtual Address)
251 TLB entries have a per-page Cache Enable Bit.
252 Note that Global I/D ENABLE + Per Page DISABLE works but corollary
253 Global DISABLE + Per Page ENABLE won't work
254
Vineet Gupta4102b532013-05-09 21:54:51 +0530255config ARC_CACHE_VIPT_ALIASING
256 bool "Support VIPT Aliasing D$"
Vineet Guptad1f317d2015-04-06 17:23:57 +0530257 depends on ARC_HAS_DCACHE && ISA_ARCOMPACT
Vineet Gupta4102b532013-05-09 21:54:51 +0530258 default n
259
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530260endif #ARC_CACHE
261
Vineet Gupta8b5850f2013-01-18 15:12:25 +0530262config ARC_HAS_ICCM
263 bool "Use ICCM"
264 help
265 Single Cycle RAMS to store Fast Path Code
266 default n
267
268config ARC_ICCM_SZ
269 int "ICCM Size in KB"
270 default "64"
271 depends on ARC_HAS_ICCM
272
273config ARC_HAS_DCCM
274 bool "Use DCCM"
275 help
276 Single Cycle RAMS to store Fast Path Data
277 default n
278
279config ARC_DCCM_SZ
280 int "DCCM Size in KB"
281 default "64"
282 depends on ARC_HAS_DCCM
283
284config ARC_DCCM_BASE
285 hex "DCCM map address"
286 default "0xA0000000"
287 depends on ARC_HAS_DCCM
288
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530289choice
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530290 prompt "MMU Version"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530291 default ARC_MMU_V3 if ARC_CPU_770
292 default ARC_MMU_V2 if ARC_CPU_750D
Vineet Guptad7a512b2015-04-06 17:22:39 +0530293 default ARC_MMU_V4 if ARC_CPU_HS
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530294
Vineet Guptac583ee4f2015-09-29 16:01:13 +0530295if ISA_ARCOMPACT
296
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530297config ARC_MMU_V1
298 bool "MMU v1"
299 help
300 Orig ARC700 MMU
301
302config ARC_MMU_V2
303 bool "MMU v2"
304 help
305 Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio
306 when 2 D-TLB and 1 I-TLB entries index into same 2way set.
307
308config ARC_MMU_V3
309 bool "MMU v3"
310 depends on ARC_CPU_770
311 help
312 Introduced with ARC700 4.10: New Features
313 Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
314 Shared Address Spaces (SASID)
315
Vineet Guptac583ee4f2015-09-29 16:01:13 +0530316endif
317
Vineet Guptad7a512b2015-04-06 17:22:39 +0530318config ARC_MMU_V4
319 bool "MMU v4"
320 depends on ISA_ARCV2
321
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530322endchoice
323
324
325choice
326 prompt "MMU Page Size"
327 default ARC_PAGE_SIZE_8K
328
329config ARC_PAGE_SIZE_8K
330 bool "8KB"
331 help
332 Choose between 8k vs 16k
333
334config ARC_PAGE_SIZE_16K
335 bool "16KB"
Alexey Brodkin450ed0d2015-07-16 21:45:17 +0300336 depends on ARC_MMU_V3 || ARC_MMU_V4
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530337
338config ARC_PAGE_SIZE_4K
339 bool "4KB"
Alexey Brodkin450ed0d2015-07-16 21:45:17 +0300340 depends on ARC_MMU_V3 || ARC_MMU_V4
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530341
342endchoice
343
Vineet Gupta37eda9d2016-02-10 06:52:07 +0530344choice
345 prompt "MMU Super Page Size"
346 depends on ISA_ARCV2 && TRANSPARENT_HUGEPAGE
347 default ARC_HUGEPAGE_2M
348
349config ARC_HUGEPAGE_2M
350 bool "2MB"
351
352config ARC_HUGEPAGE_16M
353 bool "16MB"
354
355endchoice
356
Vineet Gupta26f9d5f2016-04-18 10:49:56 +0530357config NODES_SHIFT
358 int "Maximum NUMA Nodes (as a power of 2)"
Noam Camus3528f842016-09-21 13:51:48 +0300359 default "0" if !DISCONTIGMEM
360 default "1" if DISCONTIGMEM
Vineet Gupta26f9d5f2016-04-18 10:49:56 +0530361 depends on NEED_MULTIPLE_NODES
362 ---help---
363 Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory
364 zones.
365
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530366if ISA_ARCOMPACT
367
Vineet Gupta4788a592013-01-18 15:12:22 +0530368config ARC_COMPACT_IRQ_LEVELS
Vineet Gupta60f2b4b2016-05-30 19:21:22 +0530369 bool "Setup Timer IRQ as high Priority"
Vineet Gupta4788a592013-01-18 15:12:22 +0530370 default n
Vineet Gupta41195d22013-01-18 15:12:23 +0530371 # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
Vineet Gupta60f2b4b2016-05-30 19:21:22 +0530372 depends on !SMP
Vineet Gupta4788a592013-01-18 15:12:22 +0530373
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530374config ARC_FPU_SAVE_RESTORE
375 bool "Enable FPU state persistence across context switch"
376 default n
377 help
378 Double Precision Floating Point unit had dedictaed regs which
379 need to be saved/restored across context-switch.
380 Note that ARC FPU is overly simplistic, unlike say x86, which has
381 hardware pieces to allow software to conditionally save/restore,
382 based on actual usage of FPU by a task. Thus our implemn does
383 this for all tasks in system.
384
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530385endif #ISA_ARCOMPACT
386
Vineet Guptafbf8e132013-03-30 15:07:47 +0530387config ARC_CANT_LLSC
388 def_bool n
389
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530390config ARC_HAS_LLSC
391 bool "Insn: LLOCK/SCOND (efficient atomic ops)"
392 default y
Vineet Gupta14a0abf2015-06-26 12:42:53 +0530393 depends on !ARC_CANT_LLSC
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530394
395config ARC_HAS_SWAPE
396 bool "Insn: SWAPE (endian-swap)"
397 default y
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530398
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530399if ISA_ARCV2
400
401config ARC_HAS_LL64
402 bool "Insn: 64bit LDD/STD"
403 help
404 Enable gcc to generate 64-bit load/store instructions
405 ISA mandates even/odd registers to allow encoding of two
406 dest operands with 2 possible source operands.
407 default y
408
Alexey Brodkind05a76a2015-07-16 21:45:38 +0300409config ARC_HAS_DIV_REM
410 bool "Insn: div, divu, rem, remu"
411 default y
412
Vineet Guptaaa93e8e2013-11-07 14:57:16 +0530413config ARC_HAS_RTC
414 bool "Local 64-bit r/o cycle counter"
415 default n
416 depends on !SMP
417
Vineet Guptad584f0f2016-01-22 14:27:50 +0530418config ARC_HAS_GFRC
Vineet Gupta72d72882014-12-24 18:41:55 +0530419 bool "SMP synchronized 64-bit cycle counter"
420 default y
421 depends on SMP
422
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530423config ARC_NUMBER_OF_INTERRUPTS
424 int "Number of interrupts"
425 range 8 240
426 default 32
427 help
428 This defines the number of interrupts on the ARCv2HS core.
429 It affects the size of vector table.
430 The initial 8 IRQs are fixed (Timer, ICI etc) and although configurable
431 in hardware, it keep things simple for Linux to assume they are always
432 present.
433
434endif # ISA_ARCV2
435
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530436endmenu # "ARC CPU Configuration"
437
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530438config LINUX_LINK_BASE
439 hex "Linux Link Address"
440 default "0x80000000"
441 help
442 ARC700 divides the 32 bit phy address space into two equal halves
443 -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
444 -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
445 Typically Linux kernel is linked at the start of untransalted addr,
446 hence the default value of 0x8zs.
447 However some customers have peripherals mapped at this addr, so
448 Linux needs to be scooted a bit.
449 If you don't know what the above means, leave this setting alone.
Vineet Guptaff1c0b62015-12-15 13:57:16 +0530450 This needs to match memory start address specified in Device Tree
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530451
Vineet Gupta45890f62015-03-09 18:53:49 +0530452config HIGHMEM
453 bool "High Memory Support"
Vineet Guptad140b9b2016-05-31 11:46:47 +0530454 select ARCH_DISCONTIGMEM_ENABLE
Vineet Gupta45890f62015-03-09 18:53:49 +0530455 help
456 With ARC 2G:2G address split, only upper 2G is directly addressable by
457 kernel. Enable this to potentially allow access to rest of 2G and PAE
458 in future
459
Vineet Gupta5a364c22015-02-06 18:44:57 +0300460config ARC_HAS_PAE40
461 bool "Support for the 40-bit Physical Address Extension"
462 default n
463 depends on ISA_ARCV2
Vineet Gupta5a364c22015-02-06 18:44:57 +0300464 help
465 Enable access to physical memory beyond 4G, only supported on
466 ARC cores with 40 bit Physical Addressing support
467
468config ARCH_PHYS_ADDR_T_64BIT
469 def_bool ARC_HAS_PAE40
470
471config ARCH_DMA_ADDR_T_64BIT
472 bool
473
Vineet Guptaf2e3d552016-03-16 16:38:57 +0530474config ARC_PLAT_NEEDS_PHYS_TO_DMA
475 bool
476
Noam Camus15ca68a2014-09-07 22:52:33 +0300477config ARC_KVADDR_SIZE
478 int "Kernel Virtaul Address Space size (MB)"
479 range 0 512
480 default "256"
481 help
482 The kernel address space is carved out of 256MB of translated address
483 space for catering to vmalloc, modules, pkmap, fixmap. This however may
484 not suffice vmalloc requirements of a 4K CPU EZChip system. So allow
485 this to be stretched to 512 MB (by extending into the reserved
486 kernel-user gutter)
487
Vineet Gupta080c3742013-02-11 19:52:57 +0530488config ARC_CURR_IN_REG
489 bool "Dedicate Register r25 for current_task pointer"
490 default y
491 help
492 This reserved Register R25 to point to Current Task in
493 kernel mode. This saves memory access for each such access
494
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530495
Vineet Gupta1736a562014-09-08 11:18:15 +0530496config ARC_EMUL_UNALIGNED
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530497 bool "Emulate unaligned memory access (userspace only)"
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530498 default N
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530499 select SYSCTL_ARCH_UNALIGN_NO_WARN
500 select SYSCTL_ARCH_UNALIGN_ALLOW
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530501 depends on ISA_ARCOMPACT
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530502 help
503 This enables misaligned 16 & 32 bit memory access from user space.
504 Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
505 potential bugs in code
506
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530507config HZ
508 int "Timer Frequency"
509 default 100
510
Vineet Guptacbe056f2013-01-18 15:12:25 +0530511config ARC_METAWARE_HLINK
512 bool "Support for Metaware debugger assisted Host access"
513 default n
514 help
515 This options allows a Linux userland apps to directly access
516 host file system (open/creat/read/write etc) with help from
517 Metaware Debugger. This can come in handy for Linux-host communication
518 when there is no real usable peripheral such as EMAC.
519
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530520menuconfig ARC_DBG
521 bool "ARC debugging"
522 default y
523
Vineet Guptaaa6083e2014-11-07 10:45:28 +0530524if ARC_DBG
525
Vineet Gupta854a0d92013-01-22 17:03:19 +0530526config ARC_DW2_UNWIND
527 bool "Enable DWARF specific kernel stack unwind"
Vineet Gupta854a0d92013-01-22 17:03:19 +0530528 default y
529 select KALLSYMS
530 help
531 Compiles the kernel with DWARF unwind information and can be used
532 to get stack backtraces.
533
534 If you say Y here the resulting kernel image will be slightly larger
535 but not slower, and it will give very useful debugging information.
536 If you don't debug the kernel, you can say N, but we may not be able
537 to solve problems without frame unwind information
538
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530539config ARC_DBG_TLB_PARANOIA
540 bool "Paranoia Checks in Low Level TLB Handlers"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530541 default n
542
543config ARC_DBG_TLB_MISS_COUNT
544 bool "Profile TLB Misses"
545 default n
546 select DEBUG_FS
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530547 help
548 Counts number of I and D TLB Misses and exports them via Debugfs
549 The counters can be cleared via Debugfs as well
550
Vineet Guptaaa6083e2014-11-07 10:45:28 +0530551endif
552
Vineet Gupta036b2c52015-03-09 19:40:09 +0530553config ARC_UBOOT_SUPPORT
554 bool "Support uboot arg Handling"
555 default n
556 help
557 ARC Linux by default checks for uboot provided args as pointers to
558 external cmdline or DTB. This however breaks in absence of uboot,
559 when booting from Metaware debugger directly, as the registers are
560 not zeroed out on reset by mdb and/or ARCv2 based cores. The bogus
561 registers look like uboot args to kernel which then chokes.
562 So only enable the uboot arg checking/processing if users are sure
563 of uboot being in play.
564
Vineet Gupta999159a2013-01-22 17:00:52 +0530565config ARC_BUILTIN_DTB_NAME
566 string "Built in DTB"
567 help
568 Set the name of the DTB to embed in the vmlinux binary
569 Leaving it blank selects the minimal "skeleton" dtb
570
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530571source "kernel/Kconfig.preempt"
572
Vineet Gupta56288322013-04-06 14:16:20 +0530573menu "Executable file formats"
574source "fs/Kconfig.binfmt"
575endmenu
576
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530577endmenu # "ARC Architecture Configuration"
578
579source "mm/Kconfig"
Vineet Gupta37eda9d2016-02-10 06:52:07 +0530580
581config FORCE_MAX_ZONEORDER
582 int "Maximum zone order"
583 default "12" if ARC_HUGEPAGE_16M
584 default "11"
585
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530586source "net/Kconfig"
587source "drivers/Kconfig"
Joao Pintoc1678ff2016-03-10 14:44:13 -0600588
589menu "Bus Support"
590
591config PCI
592 bool "PCI support" if MIGHT_HAVE_PCI
593 help
594 PCI is the name of a bus system, i.e., the way the CPU talks to
595 the other stuff inside your box. Find out if your board/platform
596 has PCI.
597
598 Note: PCIe support for Synopsys Device will be available only
599 when HAPS DX is configured with PCIe RC bitmap. If you have PCI,
600 say Y, otherwise N.
601
602config PCI_SYSCALL
603 def_bool PCI
604
605source "drivers/pci/Kconfig"
Joao Pintoc1678ff2016-03-10 14:44:13 -0600606
607endmenu
608
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530609source "fs/Kconfig"
610source "arch/arc/Kconfig.debug"
611source "security/Kconfig"
612source "crypto/Kconfig"
613source "lib/Kconfig"
Alexey Brodkin996bad62014-10-29 15:26:25 +0300614source "kernel/power/Kconfig"