blob: 3c2a4753d09b62aa16f2ca4180608c42ef0a2457 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001# SPDX-License-Identifier: GPL-2.0-only
Vineet Guptacfdbc2e2013-01-18 15:12:20 +05302#
3# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
4#
Vineet Guptacfdbc2e2013-01-18 15:12:20 +05305
6config ARC
7 def_bool y
Vineet Guptac4c9a042016-10-31 13:46:38 -07008 select ARC_TIMERS
Anshuman Khandualc2280be2021-05-04 18:38:09 -07009 select ARCH_HAS_CACHE_LINE_SIZE
Anshuman Khandual399145f2020-06-04 16:47:15 -070010 select ARCH_HAS_DEBUG_VM_PGTABLE
Christoph Hellwigf73c9042019-06-14 16:26:41 +020011 select ARCH_HAS_DMA_PREP_COHERENT
Vineet Guptac27d0e92018-08-16 10:20:33 -070012 select ARCH_HAS_PTE_SPECIAL
Christoph Hellwig347cb6a2019-01-07 13:36:20 -050013 select ARCH_HAS_SETUP_DMA_OPS
Christoph Hellwig6c3e71d2018-05-18 15:41:32 +020014 select ARCH_HAS_SYNC_DMA_FOR_CPU
15 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
Vineet Gupta2a440162015-08-08 17:51:58 +053016 select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC
Yury Norov942fa982018-05-16 11:18:49 +030017 select ARCH_32BIT_OFF_T
Shile Zhang10916702019-12-04 08:46:31 +080018 select BUILDTIME_TABLE_SORT
Vineet Gupta4adeefe2013-01-18 15:12:18 +053019 select CLONE_BACKWARDS
Noam Camus69fbd092016-01-14 12:20:08 +053020 select COMMON_CLK
Christoph Hellwigf73c9042019-06-14 16:26:41 +020021 select DMA_DIRECT_REMAP
Vineet Guptace636522015-07-27 17:23:28 +053022 select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053023 # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
24 select GENERIC_IRQ_SHOW
Joao Pintoc1678ff2016-03-10 14:44:13 -060025 select GENERIC_PCI_IOMAP
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053026 select GENERIC_PENDING_IRQ if SMP
Alexey Brodkinbf287602018-11-19 14:29:17 +030027 select GENERIC_SCHED_CLOCK
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053028 select GENERIC_SMP_IDLE_THREAD
Mischa Jonkerf46121b2013-01-18 15:12:24 +053029 select HAVE_ARCH_KGDB
Vineet Gupta547f1122013-01-18 15:12:22 +053030 select HAVE_ARCH_TRACEHOOK
Anshuman Khanduale8003bf62021-05-04 18:38:29 -070031 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARC_MMU_V4
Vineet Guptac27d0e92018-08-16 10:20:33 -070032 select HAVE_DEBUG_STACKOVERFLOW
Eugeniy Paltsev9fbea0b2019-11-19 18:26:15 +030033 select HAVE_DEBUG_KMEMLEAK
Gilad Ben-Yossef43689022013-01-22 16:48:45 +053034 select HAVE_IOREMAP_PROT
Vineet Guptac27d0e92018-08-16 10:20:33 -070035 select HAVE_KERNEL_GZIP
36 select HAVE_KERNEL_LZMA
Vineet Gupta4d86dfb2013-01-22 17:03:59 +053037 select HAVE_KPROBES
38 select HAVE_KRETPROBES
Vineet Guptaeb1357d2017-01-16 10:48:09 -080039 select HAVE_MOD_ARCH_SPECIFIC
Vineet Gupta9c575642013-01-18 15:12:24 +053040 select HAVE_PERF_EVENTS
Vineet Gupta999159a2013-01-22 17:00:52 +053041 select IRQ_DOMAIN
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053042 select MODULES_USE_ELF_RELA
Vineet Gupta999159a2013-01-22 17:00:52 +053043 select OF
44 select OF_EARLY_FLATTREE
Christoph Hellwig20f1b792018-11-15 20:05:34 +010045 select PCI_SYSCALL if PCI
Vineet Gupta82385732016-09-28 11:53:17 -070046 select PERF_USE_VMALLOC if ARC_CACHE_VIPT_ALIASING
Eugeniy Paltsevf091d5a2019-11-08 19:20:22 +030047 select HAVE_ARCH_JUMP_LABEL if ISA_ARCV2 && !CPU_ENDIAN_BE32
Christoph Hellwig5e6e9852020-09-03 16:22:35 +020048 select SET_FS
Masahiro Yamada4aae6832021-07-31 14:22:32 +090049 select TRACE_IRQFLAGS_SUPPORT
Vineet Gupta0dafafc2013-09-06 14:18:17 +053050
51config LOCKDEP_SUPPORT
52 def_bool y
53
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053054config SCHED_OMIT_FRAME_POINTER
55 def_bool y
56
57config GENERIC_CSUM
58 def_bool y
59
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053060config ARCH_FLATMEM_ENABLE
61 def_bool y
62
63config MMU
64 def_bool y
65
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -070066config NO_IOPORT_MAP
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053067 def_bool y
68
69config GENERIC_CALIBRATE_DELAY
70 def_bool y
71
72config GENERIC_HWEIGHT
73 def_bool y
74
Vineet Gupta44c8bb92013-01-18 15:12:23 +053075config STACKTRACE_SUPPORT
76 def_bool y
77 select STACKTRACE
78
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053079menu "ARC Architecture Configuration"
80
Vineet Gupta93ad7002013-01-22 16:51:50 +053081menu "ARC Platform/SoC/Board"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053082
Christian Ruppert072eb692013-04-12 08:40:59 +020083source "arch/arc/plat-tb10x/Kconfig"
Alexey Brodkin556cc1c2014-01-27 14:51:34 +010084source "arch/arc/plat-axs10x/Kconfig"
Alexey Brodkina518d632017-08-15 21:13:55 +030085source "arch/arc/plat-hsdk/Kconfig"
Vineet Gupta93ad7002013-01-22 16:51:50 +053086
Vineet Gupta53d98952013-01-18 15:12:25 +053087endmenu
Vineet Guptacfdbc2e2013-01-18 15:12:20 +053088
Vineet Gupta1f6ccff2013-05-13 18:30:41 +053089choice
90 prompt "ARC Instruction Set"
Kevin Hilmanb7cc40c2018-11-30 15:51:56 +030091 default ISA_ARCV2
Vineet Gupta1f6ccff2013-05-13 18:30:41 +053092
93config ISA_ARCOMPACT
94 bool "ARCompact ISA"
Zhaoxiu Zengfff7fb02016-05-20 17:03:57 -070095 select CPU_NO_EFFICIENT_FFS
Vineet Gupta1f6ccff2013-05-13 18:30:41 +053096 help
97 The original ARC ISA of ARC600/700 cores
98
Vineet Gupta65bfbcd2015-03-09 14:01:08 +053099config ISA_ARCV2
100 bool "ARC ISA v2"
Vineet Guptac4c9a042016-10-31 13:46:38 -0700101 select ARC_TIMERS_64BIT
Vineet Gupta65bfbcd2015-03-09 14:01:08 +0530102 help
103 ISA for the Next Generation ARC-HS cores
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530104
105endchoice
106
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530107menu "ARC CPU Configuration"
108
109choice
110 prompt "ARC Core"
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530111 default ARC_CPU_770 if ISA_ARCOMPACT
112 default ARC_CPU_HS if ISA_ARCV2
113
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530114config ARC_CPU_770
115 bool "ARC770"
Vineet Gupta767a6972021-08-05 23:38:44 -0700116 depends on ISA_ARCOMPACT
Vineet Gupta742f8af2013-11-07 14:47:16 +0530117 select ARC_HAS_SWAPE
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530118 help
119 Support for ARC770 core introduced with Rel 4.10 (Summer 2011)
120 This core has a bunch of cool new features:
121 -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4)
Enrico Weigelt, metux IT consult9a18b5a2019-03-11 14:57:59 +0100122 Shared Address Spaces (for sharing TLB entries in MMU)
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530123 -Caches: New Prog Model, Region Flush
124 -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr
125
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530126config ARC_CPU_HS
127 bool "ARC-HS"
128 depends on ISA_ARCV2
129 help
130 Support for ARC HS38x Cores based on ARCv2 ISA
131 The notable features are:
Randy Dunlapa5760db2020-01-31 17:49:33 -0800132 - SMP configurations of up to 4 cores with coherency
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530133 - Optional L2 Cache and IO-Coherency
134 - Revised Interrupt Architecture (multiple priorites, reg banks,
135 auto stack switch, auto regfile save/restore)
136 - MMUv4 (PIPT dcache, Huge Pages)
137 - Instructions for
138 * 64bit load/store: LDD, STD
139 * Hardware assisted divide/remainder: DIV, REM
140 * Function prologue/epilogue: ENTER_S, LEAVE_S
141 * IRQ enable/disable: CLRI, SETI
142 * pop count: FFS, FLS
143 * SETcc, BMSKN, XBFU...
144
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530145endchoice
146
Eugeniy Paltsev0bdd6e72020-06-04 20:39:24 +0300147config ARC_TUNE_MCPU
148 string "Override default -mcpu compiler flag"
149 default ""
150 help
151 Override default -mcpu=xxx compiler flag (which is set depending on
152 the ISA version) with the specified value.
153 NOTE: If specified flag isn't supported by current compiler the
154 ISA default value will be used as a fallback.
155
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530156config CPU_BIG_ENDIAN
157 bool "Enable Big Endian Mode"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530158 help
159 Build kernel for Big Endian Mode of ARC CPU
160
Vineet Gupta41195d22013-01-18 15:12:23 +0530161config SMP
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530162 bool "Symmetric Multi-Processing"
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530163 select ARC_MCIP if ISA_ARCV2
Vineet Gupta41195d22013-01-18 15:12:23 +0530164 help
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530165 This enables support for systems with more than one CPU.
Vineet Gupta41195d22013-01-18 15:12:23 +0530166
167if SMP
168
Vineet Gupta41195d22013-01-18 15:12:23 +0530169config NR_CPUS
Noam Camus3aa4f802013-06-03 15:19:59 +0300170 int "Maximum number of CPUs (2-4096)"
171 range 2 4096
Vineet Gupta82fea5a2014-09-10 19:05:38 +0530172 default "4"
173
Vineet Gupta3971cdc2015-10-09 11:26:12 +0530174config ARC_SMP_HALT_ON_RESET
175 bool "Enable Halt-on-reset boot mode"
Vineet Gupta3971cdc2015-10-09 11:26:12 +0530176 help
177 In SMP configuration cores can be configured as Halt-on-reset
178 or they could all start at same time. For Halt-on-reset, non
Randy Dunlapa5760db2020-01-31 17:49:33 -0800179 masters are parked until Master kicks them so they can start off
Vineet Gupta3971cdc2015-10-09 11:26:12 +0530180 at designated entry point. For other case, all jump to common
181 entry point and spin wait for Master's signal.
182
Enrico Weigelt, metux IT consult9a18b5a2019-03-11 14:57:59 +0100183endif #SMP
Vineet Gupta41195d22013-01-18 15:12:23 +0530184
Vineet Gupta3ce0fef2016-09-29 10:00:14 -0700185config ARC_MCIP
186 bool "ARConnect Multicore IP (MCIP) Support "
187 depends on ISA_ARCV2
188 default y if SMP
189 help
190 This IP block enables SMP in ARC-HS38 cores.
191 It provides for cross-core interrupts, multi-core debug
192 hardware semaphores, shared memory,....
193
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530194menuconfig ARC_CACHE
195 bool "Enable Cache Support"
196 default y
197
198if ARC_CACHE
199
200config ARC_CACHE_LINE_SHIFT
201 int "Cache Line Length (as power of 2)"
202 range 5 7
203 default "6"
204 help
205 Starting with ARC700 4.9, Cache line length is configurable,
206 This option specifies "N", with Line-len = 2 power N
207 So line lengths of 32, 64, 128 are specified by 5,6,7, respectively
208 Linux only supports same line lengths for I and D caches.
209
210config ARC_HAS_ICACHE
211 bool "Use Instruction Cache"
212 default y
213
214config ARC_HAS_DCACHE
215 bool "Use Data Cache"
216 default y
217
218config ARC_CACHE_PAGES
219 bool "Per Page Cache Control"
220 default y
221 depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE
222 help
223 This can be used to over-ride the global I/D Cache Enable on a
224 per-page basis (but only for pages accessed via MMU such as
225 Kernel Virtual address or User Virtual Address)
226 TLB entries have a per-page Cache Enable Bit.
227 Note that Global I/D ENABLE + Per Page DISABLE works but corollary
228 Global DISABLE + Per Page ENABLE won't work
229
Vineet Gupta4102b532013-05-09 21:54:51 +0530230config ARC_CACHE_VIPT_ALIASING
231 bool "Support VIPT Aliasing D$"
Vineet Guptad1f317d2015-04-06 17:23:57 +0530232 depends on ARC_HAS_DCACHE && ISA_ARCOMPACT
Vineet Gupta4102b532013-05-09 21:54:51 +0530233
Enrico Weigelt, metux IT consult9a18b5a2019-03-11 14:57:59 +0100234endif #ARC_CACHE
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530235
Vineet Gupta8b5850f2013-01-18 15:12:25 +0530236config ARC_HAS_ICCM
237 bool "Use ICCM"
238 help
239 Single Cycle RAMS to store Fast Path Code
Vineet Gupta8b5850f2013-01-18 15:12:25 +0530240
241config ARC_ICCM_SZ
242 int "ICCM Size in KB"
243 default "64"
244 depends on ARC_HAS_ICCM
245
246config ARC_HAS_DCCM
247 bool "Use DCCM"
248 help
249 Single Cycle RAMS to store Fast Path Data
Vineet Gupta8b5850f2013-01-18 15:12:25 +0530250
251config ARC_DCCM_SZ
252 int "DCCM Size in KB"
253 default "64"
254 depends on ARC_HAS_DCCM
255
256config ARC_DCCM_BASE
257 hex "DCCM map address"
258 default "0xA0000000"
259 depends on ARC_HAS_DCCM
260
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530261choice
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530262 prompt "MMU Version"
Vineet Gupta288ff7d2019-09-09 17:36:34 -0700263 default ARC_MMU_V3 if ISA_ARCOMPACT
264 default ARC_MMU_V4 if ISA_ARCV2
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530265
266config ARC_MMU_V3
267 bool "MMU v3"
Vineet Gupta288ff7d2019-09-09 17:36:34 -0700268 depends on ISA_ARCOMPACT
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530269 help
270 Introduced with ARC700 4.10: New Features
271 Variable Page size (1k-16k), var JTLB size 128 x (2 or 4)
272 Shared Address Spaces (SASID)
273
Vineet Guptad7a512b2015-04-06 17:22:39 +0530274config ARC_MMU_V4
275 bool "MMU v4"
276 depends on ISA_ARCV2
277
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530278endchoice
279
280
281choice
282 prompt "MMU Page Size"
283 default ARC_PAGE_SIZE_8K
284
285config ARC_PAGE_SIZE_8K
286 bool "8KB"
287 help
288 Choose between 8k vs 16k
289
290config ARC_PAGE_SIZE_16K
291 bool "16KB"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530292
293config ARC_PAGE_SIZE_4K
294 bool "4KB"
Alexey Brodkin450ed0d2015-07-16 21:45:17 +0300295 depends on ARC_MMU_V3 || ARC_MMU_V4
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530296
297endchoice
298
Vineet Gupta37eda9d2016-02-10 06:52:07 +0530299choice
300 prompt "MMU Super Page Size"
301 depends on ISA_ARCV2 && TRANSPARENT_HUGEPAGE
302 default ARC_HUGEPAGE_2M
303
304config ARC_HUGEPAGE_2M
305 bool "2MB"
306
307config ARC_HUGEPAGE_16M
308 bool "16MB"
309
310endchoice
311
Vineet Gupta2dde02a2020-09-30 18:58:50 -0700312config PGTABLE_LEVELS
313 int "Number of Page table levels"
314 default 2
315
Vineet Gupta4788a592013-01-18 15:12:22 +0530316config ARC_COMPACT_IRQ_LEVELS
Vineet Guptaf45ba2b2020-01-17 15:04:03 -0800317 depends on ISA_ARCOMPACT
Vineet Gupta60f2b4b2016-05-30 19:21:22 +0530318 bool "Setup Timer IRQ as high Priority"
Vineet Gupta41195d22013-01-18 15:12:23 +0530319 # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy
Vineet Gupta60f2b4b2016-05-30 19:21:22 +0530320 depends on !SMP
Vineet Gupta4788a592013-01-18 15:12:22 +0530321
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530322config ARC_FPU_SAVE_RESTORE
323 bool "Enable FPU state persistence across context switch"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530324 help
Vineet Guptaf45ba2b2020-01-17 15:04:03 -0800325 ARCompact FPU has internal registers to assist with Double precision
326 Floating Point operations. There are control and stauts registers
327 for floating point exceptions and rounding modes. These are
328 preserved across task context switch when enabled.
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530329
Vineet Guptafbf8e132013-03-30 15:07:47 +0530330config ARC_CANT_LLSC
331 def_bool n
332
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530333config ARC_HAS_LLSC
334 bool "Insn: LLOCK/SCOND (efficient atomic ops)"
335 default y
Vineet Gupta14a0abf2015-06-26 12:42:53 +0530336 depends on !ARC_CANT_LLSC
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530337
338config ARC_HAS_SWAPE
339 bool "Insn: SWAPE (endian-swap)"
340 default y
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530341
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530342if ISA_ARCV2
343
Eugeniy Paltsev76551462019-01-30 19:32:41 +0300344config ARC_USE_UNALIGNED_MEM_ACCESS
345 bool "Enable unaligned access in HW"
346 default y
347 select HAVE_EFFICIENT_UNALIGNED_ACCESS
348 help
349 The ARC HS architecture supports unaligned memory access
350 which is disabled by default. Enable unaligned access in
351 hardware and use software to use it
352
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530353config ARC_HAS_LL64
354 bool "Insn: 64bit LDD/STD"
355 help
356 Enable gcc to generate 64-bit load/store instructions
357 ISA mandates even/odd registers to allow encoding of two
358 dest operands with 2 possible source operands.
359 default y
360
Alexey Brodkind05a76a2015-07-16 21:45:38 +0300361config ARC_HAS_DIV_REM
362 bool "Insn: div, divu, rem, remu"
363 default y
364
Vineet Gupta3d5e8012017-04-20 15:36:51 -0700365config ARC_HAS_ACCL_REGS
Eugeniy Paltsev4827d0c2020-03-05 23:02:50 +0300366 bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6 and/or DSP)"
Vineet Guptaaf1fc5b2018-07-17 15:21:56 -0700367 default y
Vineet Gupta3d5e8012017-04-20 15:36:51 -0700368 help
369 Depending on the configuration, CPU can contain accumulator reg-pair
370 (also referred to as r58:r59). These can also be used by gcc as GPR so
371 kernel needs to save/restore per process
372
Eugeniy Paltsev4827d0c2020-03-05 23:02:50 +0300373config ARC_DSP_HANDLED
374 def_bool n
375
Eugeniy Paltsev7321e2e2020-03-05 23:02:51 +0300376config ARC_DSP_SAVE_RESTORE_REGS
377 def_bool n
378
Eugeniy Paltsev4827d0c2020-03-05 23:02:50 +0300379choice
380 prompt "DSP support"
381 default ARC_DSP_NONE
382 help
383 Depending on the configuration, CPU can contain DSP registers
384 (ACC0_GLO, ACC0_GHI, DSP_BFLY0, DSP_CTRL, DSP_FFT_CTRL).
Colin Ian King81e82fa2021-07-04 10:28:24 +0100385 Below are options describing how to handle these registers in
Eugeniy Paltsev4827d0c2020-03-05 23:02:50 +0300386 interrupt entry / exit and in context switch.
387
388config ARC_DSP_NONE
389 bool "No DSP extension presence in HW"
390 help
391 No DSP extension presence in HW
392
393config ARC_DSP_KERNEL
394 bool "DSP extension in HW, no support for userspace"
395 select ARC_HAS_ACCL_REGS
396 select ARC_DSP_HANDLED
397 help
398 DSP extension presence in HW, no support for DSP-enabled userspace
399 applications. We don't save / restore DSP registers and only do
400 some minimal preparations so userspace won't be able to break kernel
Eugeniy Paltsev7321e2e2020-03-05 23:02:51 +0300401
402config ARC_DSP_USERSPACE
403 bool "Support DSP for userspace apps"
404 select ARC_HAS_ACCL_REGS
405 select ARC_DSP_HANDLED
406 select ARC_DSP_SAVE_RESTORE_REGS
407 help
408 DSP extension presence in HW, support save / restore DSP registers to
409 run DSP-enabled userspace applications
Eugeniy Paltsevf09d3172020-03-05 23:02:52 +0300410
411config ARC_DSP_AGU_USERSPACE
412 bool "Support DSP with AGU for userspace apps"
413 select ARC_HAS_ACCL_REGS
414 select ARC_DSP_HANDLED
415 select ARC_DSP_SAVE_RESTORE_REGS
416 help
417 DSP and AGU extensions presence in HW, support save / restore DSP
418 and AGU registers to run DSP-enabled userspace applications
Eugeniy Paltsev4827d0c2020-03-05 23:02:50 +0300419endchoice
420
Vineet Guptae4942392018-06-06 10:20:37 -0700421config ARC_IRQ_NO_AUTOSAVE
422 bool "Disable hardware autosave regfile on interrupts"
423 default n
424 help
425 On HS cores, taken interrupt auto saves the regfile on stack.
426 This is programmable and can be optionally disabled in which case
427 software INTERRUPT_PROLOGUE/EPILGUE do the needed work
428
Eugeniy Paltsev10011f72020-06-04 20:39:25 +0300429config ARC_LPB_DISABLE
430 bool "Disable loop buffer (LPB)"
431 help
432 On HS cores, loop buffer (LPB) is programmable in runtime and can
433 be optionally disabled.
434
Enrico Weigelt, metux IT consult9a18b5a2019-03-11 14:57:59 +0100435endif # ISA_ARCV2
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530436
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530437endmenu # "ARC CPU Configuration"
438
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530439config LINUX_LINK_BASE
Eugeniy Paltsev9ed68782017-08-15 21:13:54 +0300440 hex "Kernel link address"
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530441 default "0x80000000"
442 help
443 ARC700 divides the 32 bit phy address space into two equal halves
444 -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU
445 -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel
446 Typically Linux kernel is linked at the start of untransalted addr,
447 hence the default value of 0x8zs.
448 However some customers have peripherals mapped at this addr, so
449 Linux needs to be scooted a bit.
450 If you don't know what the above means, leave this setting alone.
Vineet Guptaff1c0b62015-12-15 13:57:16 +0530451 This needs to match memory start address specified in Device Tree
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530452
Eugeniy Paltsev9ed68782017-08-15 21:13:54 +0300453config LINUX_RAM_BASE
454 hex "RAM base address"
455 default LINUX_LINK_BASE
456 help
457 By default Linux is linked at base of RAM. However in some special
458 cases (such as HSDK), Linux can't be linked at start of DDR, hence
459 this option.
460
Vineet Gupta45890f62015-03-09 18:53:49 +0530461config HIGHMEM
462 bool "High Memory Support"
Mike Rapoport050b2da2020-12-14 19:10:04 -0800463 select HAVE_ARCH_PFN_VALID
Thomas Gleixner39cac192020-11-03 10:27:21 +0100464 select KMAP_LOCAL
Vineet Gupta45890f62015-03-09 18:53:49 +0530465 help
466 With ARC 2G:2G address split, only upper 2G is directly addressable by
467 kernel. Enable this to potentially allow access to rest of 2G and PAE
468 in future
469
Vineet Gupta5a364c22015-02-06 18:44:57 +0300470config ARC_HAS_PAE40
471 bool "Support for the 40-bit Physical Address Extension"
Vineet Gupta5a364c22015-02-06 18:44:57 +0300472 depends on ISA_ARCV2
Alexey Brodkincf4100d2017-05-05 23:20:29 +0300473 select HIGHMEM
Christoph Hellwigd4a451d2018-04-03 16:24:20 +0200474 select PHYS_ADDR_T_64BIT
Vineet Gupta5a364c22015-02-06 18:44:57 +0300475 help
476 Enable access to physical memory beyond 4G, only supported on
477 ARC cores with 40 bit Physical Addressing support
478
Noam Camus15ca68a2014-09-07 22:52:33 +0300479config ARC_KVADDR_SIZE
Masanari Iida83fc61a2017-09-26 12:47:59 +0900480 int "Kernel Virtual Address Space size (MB)"
Noam Camus15ca68a2014-09-07 22:52:33 +0300481 range 0 512
482 default "256"
483 help
484 The kernel address space is carved out of 256MB of translated address
485 space for catering to vmalloc, modules, pkmap, fixmap. This however may
486 not suffice vmalloc requirements of a 4K CPU EZChip system. So allow
487 this to be stretched to 512 MB (by extending into the reserved
488 kernel-user gutter)
489
Vineet Gupta080c3742013-02-11 19:52:57 +0530490config ARC_CURR_IN_REG
491 bool "Dedicate Register r25 for current_task pointer"
492 default y
493 help
494 This reserved Register R25 to point to Current Task in
495 kernel mode. This saves memory access for each such access
496
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530497
Vineet Gupta1736a562014-09-08 11:18:15 +0530498config ARC_EMUL_UNALIGNED
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530499 bool "Emulate unaligned memory access (userspace only)"
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530500 select SYSCTL_ARCH_UNALIGN_NO_WARN
501 select SYSCTL_ARCH_UNALIGN_ALLOW
Vineet Gupta1f6ccff2013-05-13 18:30:41 +0530502 depends on ISA_ARCOMPACT
Vineet Gupta2e651ea2013-01-23 16:30:36 +0530503 help
504 This enables misaligned 16 & 32 bit memory access from user space.
505 Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
506 potential bugs in code
507
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530508config HZ
509 int "Timer Frequency"
510 default 100
511
Vineet Guptacbe056f2013-01-18 15:12:25 +0530512config ARC_METAWARE_HLINK
513 bool "Support for Metaware debugger assisted Host access"
Vineet Guptacbe056f2013-01-18 15:12:25 +0530514 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
Eugeniy Paltsevf091d5a2019-11-08 19:20:22 +0300539config ARC_DBG_JUMP_LABEL
540 bool "Paranoid checks in Static Keys (jump labels) code"
541 depends on JUMP_LABEL
542 default y if STATIC_KEYS_SELFTEST
543 help
544 Enable paranoid checks and self-test of both ARC-specific and generic
545 part of static keys (jump labels) related code.
Vineet Guptaaa6083e2014-11-07 10:45:28 +0530546endif
547
Vineet Gupta999159a2013-01-22 17:00:52 +0530548config ARC_BUILTIN_DTB_NAME
549 string "Built in DTB"
550 help
551 Set the name of the DTB to embed in the vmlinux binary
552 Leaving it blank selects the minimal "skeleton" dtb
553
Vineet Guptacfdbc2e2013-01-18 15:12:20 +0530554endmenu # "ARC Architecture Configuration"
555
Vineet Gupta37eda9d2016-02-10 06:52:07 +0530556config FORCE_MAX_ZONEORDER
557 int "Maximum zone order"
558 default "12" if ARC_HUGEPAGE_16M
559 default "11"
560
Alexey Brodkin996bad62014-10-29 15:26:25 +0300561source "kernel/power/Kconfig"