1d2912cb1SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2cfdbc2e1SVineet Gupta# 3cfdbc2e1SVineet Gupta# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 4cfdbc2e1SVineet Gupta# 5cfdbc2e1SVineet Gupta 6cfdbc2e1SVineet Guptaconfig ARC 7cfdbc2e1SVineet Gupta def_bool y 8c4c9a040SVineet Gupta select ARC_TIMERS 95c0541e1SZi Yan select ARCH_HAS_CPU_CACHE_ALIASING 10c2280be8SAnshuman Khandual select ARCH_HAS_CACHE_LINE_SIZE 11399145f9SAnshuman Khandual select ARCH_HAS_DEBUG_VM_PGTABLE 12f73c9045SChristoph Hellwig select ARCH_HAS_DMA_PREP_COHERENT 13c27d0e90SVineet Gupta select ARCH_HAS_PTE_SPECIAL 14347cb6afSChristoph Hellwig select ARCH_HAS_SETUP_DMA_OPS 156c3e71ddSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_CPU 166c3e71ddSChristoph Hellwig select ARCH_HAS_SYNC_DMA_FOR_DEVICE 17f2519d4dSPaul E. McKenney select ARCH_NEED_CMPXCHG_1_EMU 182a440168SVineet Gupta select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC 19942fa985SYury Norov select ARCH_32BIT_OFF_T 2010916706SShile Zhang select BUILDTIME_TABLE_SORT 21*3b7f793aSMasahiro Yamada select GENERIC_BUILTIN_DTB 224adeefe1SVineet Gupta select CLONE_BACKWARDS 2369fbd098SNoam Camus select COMMON_CLK 24f73c9045SChristoph Hellwig select DMA_DIRECT_REMAP 25ce636527SVineet Gupta select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC) 26cfdbc2e1SVineet Gupta # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP 27cfdbc2e1SVineet Gupta select GENERIC_IRQ_SHOW 28c1678ffcSJoao Pinto select GENERIC_PCI_IOMAP 29bf287607SAlexey Brodkin select GENERIC_SCHED_CLOCK 30cfdbc2e1SVineet Gupta select GENERIC_SMP_IDLE_THREAD 3106dfae39SBaoquan He select GENERIC_IOREMAP 32f798f91eSVineet Gupta select GENERIC_STRNCPY_FROM_USER if MMU 33f798f91eSVineet Gupta select GENERIC_STRNLEN_USER if MMU 34f46121bdSMischa Jonker select HAVE_ARCH_KGDB 35547f1125SVineet Gupta select HAVE_ARCH_TRACEHOOK 36e8003bf6SAnshuman Khandual select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARC_MMU_V4 37c27d0e90SVineet Gupta select HAVE_DEBUG_STACKOVERFLOW 389fbea0b7SEugeniy Paltsev select HAVE_DEBUG_KMEMLEAK 394368902bSGilad Ben-Yossef select HAVE_IOREMAP_PROT 40c27d0e90SVineet Gupta select HAVE_KERNEL_GZIP 41c27d0e90SVineet Gupta select HAVE_KERNEL_LZMA 424d86dfbbSVineet Gupta select HAVE_KPROBES 434d86dfbbSVineet Gupta select HAVE_KRETPROBES 44b3bbf6a7SSergey Matyukevich select HAVE_REGS_AND_STACK_ACCESS_API 45eb1357d9SVineet Gupta select HAVE_MOD_ARCH_SPECIFIC 469c57564eSVineet Gupta select HAVE_PERF_EVENTS 47fb0b5490SSergey Matyukevich select HAVE_SYSCALL_TRACEPOINTS 48999159a5SVineet Gupta select IRQ_DOMAIN 49a050ba1eSLinus Torvalds select LOCK_MM_AND_FIND_VMA 50cfdbc2e1SVineet Gupta select MODULES_USE_ELF_RELA 51999159a5SVineet Gupta select OF 52999159a5SVineet Gupta select OF_EARLY_FLATTREE 5320f1b79dSChristoph Hellwig select PCI_SYSCALL if PCI 54f091d5a4SEugeniy Paltsev select HAVE_ARCH_JUMP_LABEL if ISA_ARCV2 && !CPU_ENDIAN_BE32 554aae683fSMasahiro Yamada select TRACE_IRQFLAGS_SUPPORT 56f122668dSShahab Vahedi select HAVE_EBPF_JIT if ISA_ARCV2 570dafafc3SVineet Gupta 580dafafc3SVineet Guptaconfig LOCKDEP_SUPPORT 590dafafc3SVineet Gupta def_bool y 600dafafc3SVineet Gupta 61cfdbc2e1SVineet Guptaconfig SCHED_OMIT_FRAME_POINTER 62cfdbc2e1SVineet Gupta def_bool y 63cfdbc2e1SVineet Gupta 64cfdbc2e1SVineet Guptaconfig GENERIC_CSUM 65cfdbc2e1SVineet Gupta def_bool y 66cfdbc2e1SVineet Gupta 67cfdbc2e1SVineet Guptaconfig ARCH_FLATMEM_ENABLE 68cfdbc2e1SVineet Gupta def_bool y 69cfdbc2e1SVineet Gupta 70cfdbc2e1SVineet Guptaconfig MMU 71cfdbc2e1SVineet Gupta def_bool y 72cfdbc2e1SVineet Gupta 73ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP 74cfdbc2e1SVineet Gupta def_bool y 75cfdbc2e1SVineet Gupta 76cfdbc2e1SVineet Guptaconfig GENERIC_CALIBRATE_DELAY 77cfdbc2e1SVineet Gupta def_bool y 78cfdbc2e1SVineet Gupta 79cfdbc2e1SVineet Guptaconfig GENERIC_HWEIGHT 80cfdbc2e1SVineet Gupta def_bool y 81cfdbc2e1SVineet Gupta 8244c8bb91SVineet Guptaconfig STACKTRACE_SUPPORT 8344c8bb91SVineet Gupta def_bool y 8444c8bb91SVineet Gupta select STACKTRACE 8544c8bb91SVineet Gupta 86cfdbc2e1SVineet Guptamenu "ARC Architecture Configuration" 87cfdbc2e1SVineet Gupta 8893ad700dSVineet Guptamenu "ARC Platform/SoC/Board" 89cfdbc2e1SVineet Gupta 90072eb693SChristian Ruppertsource "arch/arc/plat-tb10x/Kconfig" 91556cc1c5SAlexey Brodkinsource "arch/arc/plat-axs10x/Kconfig" 92a518d637SAlexey Brodkinsource "arch/arc/plat-hsdk/Kconfig" 9393ad700dSVineet Gupta 9453d98958SVineet Guptaendmenu 95cfdbc2e1SVineet Gupta 961f6ccfffSVineet Guptachoice 971f6ccfffSVineet Gupta prompt "ARC Instruction Set" 98b7cc40c3SKevin Hilman default ISA_ARCV2 991f6ccfffSVineet Gupta 1001f6ccfffSVineet Guptaconfig ISA_ARCOMPACT 1011f6ccfffSVineet Gupta bool "ARCompact ISA" 102fff7fb0bSZhaoxiu Zeng select CPU_NO_EFFICIENT_FFS 1031f6ccfffSVineet Gupta help 1041f6ccfffSVineet Gupta The original ARC ISA of ARC600/700 cores 1051f6ccfffSVineet Gupta 10665bfbcdfSVineet Guptaconfig ISA_ARCV2 10765bfbcdfSVineet Gupta bool "ARC ISA v2" 108c4c9a040SVineet Gupta select ARC_TIMERS_64BIT 10965bfbcdfSVineet Gupta help 11065bfbcdfSVineet Gupta ISA for the Next Generation ARC-HS cores 1111f6ccfffSVineet Gupta 1121f6ccfffSVineet Guptaendchoice 1131f6ccfffSVineet Gupta 114cfdbc2e1SVineet Guptamenu "ARC CPU Configuration" 115cfdbc2e1SVineet Gupta 116cfdbc2e1SVineet Guptachoice 117cfdbc2e1SVineet Gupta prompt "ARC Core" 1181f6ccfffSVineet Gupta default ARC_CPU_770 if ISA_ARCOMPACT 1191f6ccfffSVineet Gupta default ARC_CPU_HS if ISA_ARCV2 1201f6ccfffSVineet Gupta 121cfdbc2e1SVineet Guptaconfig ARC_CPU_770 122cfdbc2e1SVineet Gupta bool "ARC770" 123767a697eSVineet Gupta depends on ISA_ARCOMPACT 124cfdbc2e1SVineet Gupta help 125cfdbc2e1SVineet Gupta Support for ARC770 core introduced with Rel 4.10 (Summer 2011) 126cfdbc2e1SVineet Gupta This core has a bunch of cool new features: 127cfdbc2e1SVineet Gupta -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4) 1287c2020c3SColin Ian King Shared Address Spaces (for sharing TLB entries in MMU) 129cfdbc2e1SVineet Gupta -Caches: New Prog Model, Region Flush 130cfdbc2e1SVineet Gupta -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr 131cfdbc2e1SVineet Gupta 1321f6ccfffSVineet Guptaconfig ARC_CPU_HS 1331f6ccfffSVineet Gupta bool "ARC-HS" 1341f6ccfffSVineet Gupta depends on ISA_ARCV2 1351f6ccfffSVineet Gupta help 1361f6ccfffSVineet Gupta Support for ARC HS38x Cores based on ARCv2 ISA 1371f6ccfffSVineet Gupta The notable features are: 138a5760db2SRandy Dunlap - SMP configurations of up to 4 cores with coherency 1391f6ccfffSVineet Gupta - Optional L2 Cache and IO-Coherency 1401f6ccfffSVineet Gupta - Revised Interrupt Architecture (multiple priorites, reg banks, 1411f6ccfffSVineet Gupta auto stack switch, auto regfile save/restore) 1421f6ccfffSVineet Gupta - MMUv4 (PIPT dcache, Huge Pages) 1431f6ccfffSVineet Gupta - Instructions for 1441f6ccfffSVineet Gupta * 64bit load/store: LDD, STD 1451f6ccfffSVineet Gupta * Hardware assisted divide/remainder: DIV, REM 1461f6ccfffSVineet Gupta * Function prologue/epilogue: ENTER_S, LEAVE_S 1471f6ccfffSVineet Gupta * IRQ enable/disable: CLRI, SETI 1481f6ccfffSVineet Gupta * pop count: FFS, FLS 1491f6ccfffSVineet Gupta * SETcc, BMSKN, XBFU... 1501f6ccfffSVineet Gupta 151cfdbc2e1SVineet Guptaendchoice 152cfdbc2e1SVineet Gupta 1530bdd6e74SEugeniy Paltsevconfig ARC_TUNE_MCPU 1540bdd6e74SEugeniy Paltsev string "Override default -mcpu compiler flag" 1550bdd6e74SEugeniy Paltsev default "" 1560bdd6e74SEugeniy Paltsev help 1570bdd6e74SEugeniy Paltsev Override default -mcpu=xxx compiler flag (which is set depending on 1580bdd6e74SEugeniy Paltsev the ISA version) with the specified value. 1590bdd6e74SEugeniy Paltsev NOTE: If specified flag isn't supported by current compiler the 1600bdd6e74SEugeniy Paltsev ISA default value will be used as a fallback. 1610bdd6e74SEugeniy Paltsev 162cfdbc2e1SVineet Guptaconfig CPU_BIG_ENDIAN 163cfdbc2e1SVineet Gupta bool "Enable Big Endian Mode" 164cfdbc2e1SVineet Gupta help 165cfdbc2e1SVineet Gupta Build kernel for Big Endian Mode of ARC CPU 166cfdbc2e1SVineet Gupta 16741195d23SVineet Guptaconfig SMP 16882fea5a1SVineet Gupta bool "Symmetric Multi-Processing" 16982fea5a1SVineet Gupta select ARC_MCIP if ISA_ARCV2 17041195d23SVineet Gupta help 17182fea5a1SVineet Gupta This enables support for systems with more than one CPU. 17241195d23SVineet Gupta 17341195d23SVineet Guptaif SMP 17441195d23SVineet Gupta 17541195d23SVineet Guptaconfig NR_CPUS 1763aa4f80eSNoam Camus int "Maximum number of CPUs (2-4096)" 1773aa4f80eSNoam Camus range 2 4096 17882fea5a1SVineet Gupta default "4" 17982fea5a1SVineet Gupta 1803971cdc2SVineet Guptaconfig ARC_SMP_HALT_ON_RESET 1813971cdc2SVineet Gupta bool "Enable Halt-on-reset boot mode" 1823971cdc2SVineet Gupta help 1833971cdc2SVineet Gupta In SMP configuration cores can be configured as Halt-on-reset 1843971cdc2SVineet Gupta or they could all start at same time. For Halt-on-reset, non 185a5760db2SRandy Dunlap masters are parked until Master kicks them so they can start off 1863971cdc2SVineet Gupta at designated entry point. For other case, all jump to common 1873971cdc2SVineet Gupta entry point and spin wait for Master's signal. 1883971cdc2SVineet Gupta 18982fea5a1SVineet Guptaendif #SMP 19041195d23SVineet Gupta 1913ce0fefcSVineet Guptaconfig ARC_MCIP 1923ce0fefcSVineet Gupta bool "ARConnect Multicore IP (MCIP) Support " 1933ce0fefcSVineet Gupta depends on ISA_ARCV2 1943ce0fefcSVineet Gupta default y if SMP 1953ce0fefcSVineet Gupta help 1963ce0fefcSVineet Gupta This IP block enables SMP in ARC-HS38 cores. 1973ce0fefcSVineet Gupta It provides for cross-core interrupts, multi-core debug 1983ce0fefcSVineet Gupta hardware semaphores, shared memory,.... 1993ce0fefcSVineet Gupta 200cfdbc2e1SVineet Guptamenuconfig ARC_CACHE 201cfdbc2e1SVineet Gupta bool "Enable Cache Support" 202cfdbc2e1SVineet Gupta default y 203cfdbc2e1SVineet Gupta 204cfdbc2e1SVineet Guptaif ARC_CACHE 205cfdbc2e1SVineet Gupta 206cfdbc2e1SVineet Guptaconfig ARC_CACHE_LINE_SHIFT 207cfdbc2e1SVineet Gupta int "Cache Line Length (as power of 2)" 208cfdbc2e1SVineet Gupta range 5 7 209cfdbc2e1SVineet Gupta default "6" 210cfdbc2e1SVineet Gupta help 211cfdbc2e1SVineet Gupta Starting with ARC700 4.9, Cache line length is configurable, 212cfdbc2e1SVineet Gupta This option specifies "N", with Line-len = 2 power N 213cfdbc2e1SVineet Gupta So line lengths of 32, 64, 128 are specified by 5,6,7, respectively 214cfdbc2e1SVineet Gupta Linux only supports same line lengths for I and D caches. 215cfdbc2e1SVineet Gupta 216cfdbc2e1SVineet Guptaconfig ARC_HAS_ICACHE 217cfdbc2e1SVineet Gupta bool "Use Instruction Cache" 218cfdbc2e1SVineet Gupta default y 219cfdbc2e1SVineet Gupta 220cfdbc2e1SVineet Guptaconfig ARC_HAS_DCACHE 221cfdbc2e1SVineet Gupta bool "Use Data Cache" 222cfdbc2e1SVineet Gupta default y 223cfdbc2e1SVineet Gupta 224cfdbc2e1SVineet Guptaconfig ARC_CACHE_PAGES 225cfdbc2e1SVineet Gupta bool "Per Page Cache Control" 226cfdbc2e1SVineet Gupta default y 227cfdbc2e1SVineet Gupta depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE 228cfdbc2e1SVineet Gupta help 229cfdbc2e1SVineet Gupta This can be used to over-ride the global I/D Cache Enable on a 230cfdbc2e1SVineet Gupta per-page basis (but only for pages accessed via MMU such as 231cfdbc2e1SVineet Gupta Kernel Virtual address or User Virtual Address) 232cfdbc2e1SVineet Gupta TLB entries have a per-page Cache Enable Bit. 233cfdbc2e1SVineet Gupta Note that Global I/D ENABLE + Per Page DISABLE works but corollary 234cfdbc2e1SVineet Gupta Global DISABLE + Per Page ENABLE won't work 235cfdbc2e1SVineet Gupta 236cfdbc2e1SVineet Guptaendif #ARC_CACHE 237cfdbc2e1SVineet Gupta 2388b5850f8SVineet Guptaconfig ARC_HAS_ICCM 2398b5850f8SVineet Gupta bool "Use ICCM" 2408b5850f8SVineet Gupta help 2418b5850f8SVineet Gupta Single Cycle RAMS to store Fast Path Code 2428b5850f8SVineet Gupta 2438b5850f8SVineet Guptaconfig ARC_ICCM_SZ 2448b5850f8SVineet Gupta int "ICCM Size in KB" 2458b5850f8SVineet Gupta default "64" 2468b5850f8SVineet Gupta depends on ARC_HAS_ICCM 2478b5850f8SVineet Gupta 2488b5850f8SVineet Guptaconfig ARC_HAS_DCCM 2498b5850f8SVineet Gupta bool "Use DCCM" 2508b5850f8SVineet Gupta help 2518b5850f8SVineet Gupta Single Cycle RAMS to store Fast Path Data 2528b5850f8SVineet Gupta 2538b5850f8SVineet Guptaconfig ARC_DCCM_SZ 2548b5850f8SVineet Gupta int "DCCM Size in KB" 2558b5850f8SVineet Gupta default "64" 2568b5850f8SVineet Gupta depends on ARC_HAS_DCCM 2578b5850f8SVineet Gupta 2588b5850f8SVineet Guptaconfig ARC_DCCM_BASE 2598b5850f8SVineet Gupta hex "DCCM map address" 2608b5850f8SVineet Gupta default "0xA0000000" 2618b5850f8SVineet Gupta depends on ARC_HAS_DCCM 2628b5850f8SVineet Gupta 263cfdbc2e1SVineet Guptachoice 2641f6ccfffSVineet Gupta prompt "MMU Version" 265288ff7deSVineet Gupta default ARC_MMU_V3 if ISA_ARCOMPACT 266288ff7deSVineet Gupta default ARC_MMU_V4 if ISA_ARCV2 267cfdbc2e1SVineet Gupta 268cfdbc2e1SVineet Guptaconfig ARC_MMU_V3 269cfdbc2e1SVineet Gupta bool "MMU v3" 270288ff7deSVineet Gupta depends on ISA_ARCOMPACT 271cfdbc2e1SVineet Gupta help 272cfdbc2e1SVineet Gupta Introduced with ARC700 4.10: New Features 273cfdbc2e1SVineet Gupta Variable Page size (1k-16k), var JTLB size 128 x (2 or 4) 274cfdbc2e1SVineet Gupta Shared Address Spaces (SASID) 275cfdbc2e1SVineet Gupta 276d7a512bfSVineet Guptaconfig ARC_MMU_V4 277d7a512bfSVineet Gupta bool "MMU v4" 278d7a512bfSVineet Gupta depends on ISA_ARCV2 279d7a512bfSVineet Gupta 280cfdbc2e1SVineet Guptaendchoice 281cfdbc2e1SVineet Gupta 282cfdbc2e1SVineet Gupta 283cfdbc2e1SVineet Guptachoice 284cfdbc2e1SVineet Gupta prompt "MMU Page Size" 285cfdbc2e1SVineet Gupta default ARC_PAGE_SIZE_8K 286cfdbc2e1SVineet Gupta 287cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_8K 288cfdbc2e1SVineet Gupta bool "8KB" 289d3e5bab9SArnd Bergmann select HAVE_PAGE_SIZE_8KB 290cfdbc2e1SVineet Gupta help 291cfdbc2e1SVineet Gupta Choose between 8k vs 16k 292cfdbc2e1SVineet Gupta 293cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_16K 294d3e5bab9SArnd Bergmann select HAVE_PAGE_SIZE_16KB 295cfdbc2e1SVineet Gupta bool "16KB" 296cfdbc2e1SVineet Gupta 297cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_4K 298cfdbc2e1SVineet Gupta bool "4KB" 299d3e5bab9SArnd Bergmann select HAVE_PAGE_SIZE_4KB 300cfdbc2e1SVineet Gupta 301cfdbc2e1SVineet Guptaendchoice 302cfdbc2e1SVineet Gupta 30337eda9dfSVineet Guptachoice 30437eda9dfSVineet Gupta prompt "MMU Super Page Size" 30537eda9dfSVineet Gupta depends on ISA_ARCV2 && TRANSPARENT_HUGEPAGE 30637eda9dfSVineet Gupta default ARC_HUGEPAGE_2M 30737eda9dfSVineet Gupta 30837eda9dfSVineet Guptaconfig ARC_HUGEPAGE_2M 30937eda9dfSVineet Gupta bool "2MB" 31037eda9dfSVineet Gupta 31137eda9dfSVineet Guptaconfig ARC_HUGEPAGE_16M 31237eda9dfSVineet Gupta bool "16MB" 31337eda9dfSVineet Gupta 31437eda9dfSVineet Guptaendchoice 31537eda9dfSVineet Gupta 3162dde02abSVineet Guptaconfig PGTABLE_LEVELS 3172dde02abSVineet Gupta int "Number of Page table levels" 3182dde02abSVineet Gupta default 2 3192dde02abSVineet Gupta 3204788a594SVineet Guptaconfig ARC_COMPACT_IRQ_LEVELS 321f45ba2bdSVineet Gupta depends on ISA_ARCOMPACT 32260f2b4b8SVineet Gupta bool "Setup Timer IRQ as high Priority" 32341195d23SVineet Gupta # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy 32460f2b4b8SVineet Gupta depends on !SMP 3254788a594SVineet Gupta 326cfdbc2e1SVineet Guptaconfig ARC_FPU_SAVE_RESTORE 327cfdbc2e1SVineet Gupta bool "Enable FPU state persistence across context switch" 328cfdbc2e1SVineet Gupta help 329f45ba2bdSVineet Gupta ARCompact FPU has internal registers to assist with Double precision 330f45ba2bdSVineet Gupta Floating Point operations. There are control and stauts registers 331f45ba2bdSVineet Gupta for floating point exceptions and rounding modes. These are 332f45ba2bdSVineet Gupta preserved across task context switch when enabled. 3331f6ccfffSVineet Gupta 334cfdbc2e1SVineet Guptaconfig ARC_HAS_LLSC 335cfdbc2e1SVineet Gupta bool "Insn: LLOCK/SCOND (efficient atomic ops)" 336cfdbc2e1SVineet Gupta default y 337cfdbc2e1SVineet Gupta 3381f6ccfffSVineet Guptaif ISA_ARCV2 3391f6ccfffSVineet Gupta 34076551468SEugeniy Paltsevconfig ARC_USE_UNALIGNED_MEM_ACCESS 34176551468SEugeniy Paltsev bool "Enable unaligned access in HW" 34276551468SEugeniy Paltsev default y 34376551468SEugeniy Paltsev select HAVE_EFFICIENT_UNALIGNED_ACCESS 34476551468SEugeniy Paltsev help 34576551468SEugeniy Paltsev The ARC HS architecture supports unaligned memory access 34676551468SEugeniy Paltsev which is disabled by default. Enable unaligned access in 34776551468SEugeniy Paltsev hardware and use software to use it 34876551468SEugeniy Paltsev 3491f6ccfffSVineet Guptaconfig ARC_HAS_LL64 3501f6ccfffSVineet Gupta bool "Insn: 64bit LDD/STD" 3511f6ccfffSVineet Gupta help 3521f6ccfffSVineet Gupta Enable gcc to generate 64-bit load/store instructions 3531f6ccfffSVineet Gupta ISA mandates even/odd registers to allow encoding of two 3541f6ccfffSVineet Gupta dest operands with 2 possible source operands. 3551f6ccfffSVineet Gupta default y 3561f6ccfffSVineet Gupta 357d05a76abSAlexey Brodkinconfig ARC_HAS_DIV_REM 358d05a76abSAlexey Brodkin bool "Insn: div, divu, rem, remu" 359d05a76abSAlexey Brodkin default y 360d05a76abSAlexey Brodkin 3613d5e8012SVineet Guptaconfig ARC_HAS_ACCL_REGS 3624827d0cfSEugeniy Paltsev bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6 and/or DSP)" 363af1fc5baSVineet Gupta default y 3643d5e8012SVineet Gupta help 3653d5e8012SVineet Gupta Depending on the configuration, CPU can contain accumulator reg-pair 3663d5e8012SVineet Gupta (also referred to as r58:r59). These can also be used by gcc as GPR so 3673d5e8012SVineet Gupta kernel needs to save/restore per process 3683d5e8012SVineet Gupta 3694827d0cfSEugeniy Paltsevconfig ARC_DSP_HANDLED 3704827d0cfSEugeniy Paltsev def_bool n 3714827d0cfSEugeniy Paltsev 3727321e2eaSEugeniy Paltsevconfig ARC_DSP_SAVE_RESTORE_REGS 3737321e2eaSEugeniy Paltsev def_bool n 3747321e2eaSEugeniy Paltsev 3754827d0cfSEugeniy Paltsevchoice 3764827d0cfSEugeniy Paltsev prompt "DSP support" 3774827d0cfSEugeniy Paltsev default ARC_DSP_NONE 3784827d0cfSEugeniy Paltsev help 3794827d0cfSEugeniy Paltsev Depending on the configuration, CPU can contain DSP registers 3804827d0cfSEugeniy Paltsev (ACC0_GLO, ACC0_GHI, DSP_BFLY0, DSP_CTRL, DSP_FFT_CTRL). 38181e82fa5SColin Ian King Below are options describing how to handle these registers in 3824827d0cfSEugeniy Paltsev interrupt entry / exit and in context switch. 3834827d0cfSEugeniy Paltsev 3844827d0cfSEugeniy Paltsevconfig ARC_DSP_NONE 3854827d0cfSEugeniy Paltsev bool "No DSP extension presence in HW" 3864827d0cfSEugeniy Paltsev help 3874827d0cfSEugeniy Paltsev No DSP extension presence in HW 3884827d0cfSEugeniy Paltsev 3894827d0cfSEugeniy Paltsevconfig ARC_DSP_KERNEL 3904827d0cfSEugeniy Paltsev bool "DSP extension in HW, no support for userspace" 3914827d0cfSEugeniy Paltsev select ARC_HAS_ACCL_REGS 3924827d0cfSEugeniy Paltsev select ARC_DSP_HANDLED 3934827d0cfSEugeniy Paltsev help 3944827d0cfSEugeniy Paltsev DSP extension presence in HW, no support for DSP-enabled userspace 3954827d0cfSEugeniy Paltsev applications. We don't save / restore DSP registers and only do 3964827d0cfSEugeniy Paltsev some minimal preparations so userspace won't be able to break kernel 3977321e2eaSEugeniy Paltsev 3987321e2eaSEugeniy Paltsevconfig ARC_DSP_USERSPACE 3997321e2eaSEugeniy Paltsev bool "Support DSP for userspace apps" 4007321e2eaSEugeniy Paltsev select ARC_HAS_ACCL_REGS 4017321e2eaSEugeniy Paltsev select ARC_DSP_HANDLED 4027321e2eaSEugeniy Paltsev select ARC_DSP_SAVE_RESTORE_REGS 4037321e2eaSEugeniy Paltsev help 4047321e2eaSEugeniy Paltsev DSP extension presence in HW, support save / restore DSP registers to 4057321e2eaSEugeniy Paltsev run DSP-enabled userspace applications 406f09d3174SEugeniy Paltsev 407f09d3174SEugeniy Paltsevconfig ARC_DSP_AGU_USERSPACE 408f09d3174SEugeniy Paltsev bool "Support DSP with AGU for userspace apps" 409f09d3174SEugeniy Paltsev select ARC_HAS_ACCL_REGS 410f09d3174SEugeniy Paltsev select ARC_DSP_HANDLED 411f09d3174SEugeniy Paltsev select ARC_DSP_SAVE_RESTORE_REGS 412f09d3174SEugeniy Paltsev help 413f09d3174SEugeniy Paltsev DSP and AGU extensions presence in HW, support save / restore DSP 414f09d3174SEugeniy Paltsev and AGU registers to run DSP-enabled userspace applications 4154827d0cfSEugeniy Paltsevendchoice 4164827d0cfSEugeniy Paltsev 417e494239aSVineet Guptaconfig ARC_IRQ_NO_AUTOSAVE 418e494239aSVineet Gupta bool "Disable hardware autosave regfile on interrupts" 419e494239aSVineet Gupta default n 420e494239aSVineet Gupta help 421e494239aSVineet Gupta On HS cores, taken interrupt auto saves the regfile on stack. 422e494239aSVineet Gupta This is programmable and can be optionally disabled in which case 423e494239aSVineet Gupta software INTERRUPT_PROLOGUE/EPILGUE do the needed work 424e494239aSVineet Gupta 42510011f7dSEugeniy Paltsevconfig ARC_LPB_DISABLE 42610011f7dSEugeniy Paltsev bool "Disable loop buffer (LPB)" 42710011f7dSEugeniy Paltsev help 42810011f7dSEugeniy Paltsev On HS cores, loop buffer (LPB) is programmable in runtime and can 42910011f7dSEugeniy Paltsev be optionally disabled. 43010011f7dSEugeniy Paltsev 4311f6ccfffSVineet Guptaendif # ISA_ARCV2 4321f6ccfffSVineet Gupta 433cfdbc2e1SVineet Guptaendmenu # "ARC CPU Configuration" 434cfdbc2e1SVineet Gupta 435cfdbc2e1SVineet Guptaconfig LINUX_LINK_BASE 4369ed68785SEugeniy Paltsev hex "Kernel link address" 437cfdbc2e1SVineet Gupta default "0x80000000" 438cfdbc2e1SVineet Gupta help 439cfdbc2e1SVineet Gupta ARC700 divides the 32 bit phy address space into two equal halves 440cfdbc2e1SVineet Gupta -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU 441cfdbc2e1SVineet Gupta -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel 442cfdbc2e1SVineet Gupta Typically Linux kernel is linked at the start of untransalted addr, 443cfdbc2e1SVineet Gupta hence the default value of 0x8zs. 444cfdbc2e1SVineet Gupta However some customers have peripherals mapped at this addr, so 445cfdbc2e1SVineet Gupta Linux needs to be scooted a bit. 446cfdbc2e1SVineet Gupta If you don't know what the above means, leave this setting alone. 447ff1c0b6aSVineet Gupta This needs to match memory start address specified in Device Tree 448cfdbc2e1SVineet Gupta 4499ed68785SEugeniy Paltsevconfig LINUX_RAM_BASE 4509ed68785SEugeniy Paltsev hex "RAM base address" 4519ed68785SEugeniy Paltsev default LINUX_LINK_BASE 4529ed68785SEugeniy Paltsev help 4539ed68785SEugeniy Paltsev By default Linux is linked at base of RAM. However in some special 4549ed68785SEugeniy Paltsev cases (such as HSDK), Linux can't be linked at start of DDR, hence 4559ed68785SEugeniy Paltsev this option. 4569ed68785SEugeniy Paltsev 45745890f6dSVineet Guptaconfig HIGHMEM 45845890f6dSVineet Gupta bool "High Memory Support" 459050b2da2SMike Rapoport select HAVE_ARCH_PFN_VALID 46039cac191SThomas Gleixner select KMAP_LOCAL 46145890f6dSVineet Gupta help 46245890f6dSVineet Gupta With ARC 2G:2G address split, only upper 2G is directly addressable by 46345890f6dSVineet Gupta kernel. Enable this to potentially allow access to rest of 2G and PAE 46445890f6dSVineet Gupta in future 46545890f6dSVineet Gupta 4665a364c2aSVineet Guptaconfig ARC_HAS_PAE40 4675a364c2aSVineet Gupta bool "Support for the 40-bit Physical Address Extension" 468dd2b2302SLukas Bulwahn depends on ARC_MMU_V4 4698871331bSVineet Gupta depends on !ARC_PAGE_SIZE_4K 470cf4100d1SAlexey Brodkin select HIGHMEM 471d4a451d5SChristoph Hellwig select PHYS_ADDR_T_64BIT 4725a364c2aSVineet Gupta help 4735a364c2aSVineet Gupta Enable access to physical memory beyond 4G, only supported on 4745a364c2aSVineet Gupta ARC cores with 40 bit Physical Addressing support 4755a364c2aSVineet Gupta 47615ca68a9SNoam Camusconfig ARC_KVADDR_SIZE 47783fc61a5SMasanari Iida int "Kernel Virtual Address Space size (MB)" 47815ca68a9SNoam Camus range 0 512 47915ca68a9SNoam Camus default "256" 48015ca68a9SNoam Camus help 48115ca68a9SNoam Camus The kernel address space is carved out of 256MB of translated address 48215ca68a9SNoam Camus space for catering to vmalloc, modules, pkmap, fixmap. This however may 48315ca68a9SNoam Camus not suffice vmalloc requirements of a 4K CPU EZChip system. So allow 48415ca68a9SNoam Camus this to be stretched to 512 MB (by extending into the reserved 48515ca68a9SNoam Camus kernel-user gutter) 48615ca68a9SNoam Camus 487080c3747SVineet Guptaconfig ARC_CURR_IN_REG 488cfca4b5aSVineet Gupta bool "cache current task pointer in gp" 489080c3747SVineet Gupta default y 490080c3747SVineet Gupta help 491cfca4b5aSVineet Gupta This reserves gp register to point to Current Task in 492cfca4b5aSVineet Gupta kernel mode eliding memory access for each access 493080c3747SVineet Gupta 4942e651ea1SVineet Gupta 4951736a56fSVineet Guptaconfig ARC_EMUL_UNALIGNED 4962e651ea1SVineet Gupta bool "Emulate unaligned memory access (userspace only)" 4972e651ea1SVineet Gupta select SYSCTL_ARCH_UNALIGN_NO_WARN 4982e651ea1SVineet Gupta select SYSCTL_ARCH_UNALIGN_ALLOW 4991f6ccfffSVineet Gupta depends on ISA_ARCOMPACT 5002e651ea1SVineet Gupta help 5012e651ea1SVineet Gupta This enables misaligned 16 & 32 bit memory access from user space. 5022e651ea1SVineet Gupta Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide 5032e651ea1SVineet Gupta potential bugs in code 5042e651ea1SVineet Gupta 505cfdbc2e1SVineet Guptaconfig HZ 506cfdbc2e1SVineet Gupta int "Timer Frequency" 507cfdbc2e1SVineet Gupta default 100 508cfdbc2e1SVineet Gupta 509cbe056f7SVineet Guptaconfig ARC_METAWARE_HLINK 510cbe056f7SVineet Gupta bool "Support for Metaware debugger assisted Host access" 511cbe056f7SVineet Gupta help 512cbe056f7SVineet Gupta This options allows a Linux userland apps to directly access 513cbe056f7SVineet Gupta host file system (open/creat/read/write etc) with help from 514cbe056f7SVineet Gupta Metaware Debugger. This can come in handy for Linux-host communication 515cbe056f7SVineet Gupta when there is no real usable peripheral such as EMAC. 516cbe056f7SVineet Gupta 517cfdbc2e1SVineet Guptamenuconfig ARC_DBG 518cfdbc2e1SVineet Gupta bool "ARC debugging" 519cfdbc2e1SVineet Gupta default y 520cfdbc2e1SVineet Gupta 521aa6083edSVineet Guptaif ARC_DBG 522aa6083edSVineet Gupta 523854a0d95SVineet Guptaconfig ARC_DW2_UNWIND 524854a0d95SVineet Gupta bool "Enable DWARF specific kernel stack unwind" 525854a0d95SVineet Gupta default y 526854a0d95SVineet Gupta select KALLSYMS 527854a0d95SVineet Gupta help 528854a0d95SVineet Gupta Compiles the kernel with DWARF unwind information and can be used 529854a0d95SVineet Gupta to get stack backtraces. 530854a0d95SVineet Gupta 531854a0d95SVineet Gupta If you say Y here the resulting kernel image will be slightly larger 532854a0d95SVineet Gupta but not slower, and it will give very useful debugging information. 533854a0d95SVineet Gupta If you don't debug the kernel, you can say N, but we may not be able 534854a0d95SVineet Gupta to solve problems without frame unwind information 535854a0d95SVineet Gupta 536f091d5a4SEugeniy Paltsevconfig ARC_DBG_JUMP_LABEL 537f091d5a4SEugeniy Paltsev bool "Paranoid checks in Static Keys (jump labels) code" 538f091d5a4SEugeniy Paltsev depends on JUMP_LABEL 539f091d5a4SEugeniy Paltsev default y if STATIC_KEYS_SELFTEST 540f091d5a4SEugeniy Paltsev help 541f091d5a4SEugeniy Paltsev Enable paranoid checks and self-test of both ARC-specific and generic 542f091d5a4SEugeniy Paltsev part of static keys (jump labels) related code. 543aa6083edSVineet Guptaendif 544aa6083edSVineet Gupta 545*3b7f793aSMasahiro Yamadaconfig BUILTIN_DTB_NAME 546999159a5SVineet Gupta string "Built in DTB" 547*3b7f793aSMasahiro Yamada default "nsim_700" 548999159a5SVineet Gupta help 549*3b7f793aSMasahiro Yamada Set the name of the DTB to embed in the vmlinux binary. 550999159a5SVineet Gupta 551cfdbc2e1SVineet Guptaendmenu # "ARC Architecture Configuration" 552cfdbc2e1SVineet Gupta 5530192445cSZi Yanconfig ARCH_FORCE_MAX_ORDER 55437eda9dfSVineet Gupta int "Maximum zone order" 55523baf831SKirill A. Shutemov default "11" if ARC_HUGEPAGE_16M 55623baf831SKirill A. Shutemov default "10" 55737eda9dfSVineet Gupta 558996bad6cSAlexey Brodkinsource "kernel/power/Kconfig" 559