1cfdbc2e1SVineet Gupta# 2cfdbc2e1SVineet Gupta# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3cfdbc2e1SVineet Gupta# 4cfdbc2e1SVineet Gupta# This program is free software; you can redistribute it and/or modify 5cfdbc2e1SVineet Gupta# it under the terms of the GNU General Public License version 2 as 6cfdbc2e1SVineet Gupta# published by the Free Software Foundation. 7cfdbc2e1SVineet Gupta# 8cfdbc2e1SVineet Gupta 9cfdbc2e1SVineet Guptaconfig ARC 10cfdbc2e1SVineet Gupta def_bool y 11c4c9a040SVineet Gupta select ARC_TIMERS 12983eeba7SVladimir Kondratiev select ARCH_HAS_SG_CHAIN 132a440168SVineet Gupta select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC 14f06d19e4SVineet Gupta select BUILDTIME_EXTABLE_SORT 154adeefe1SVineet Gupta select CLONE_BACKWARDS 1669fbd098SNoam Camus select COMMON_CLK 17ce636527SVineet Gupta select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC) 18cfdbc2e1SVineet Gupta select GENERIC_CLOCKEVENTS 19cfdbc2e1SVineet Gupta select GENERIC_FIND_FIRST_BIT 20cfdbc2e1SVineet Gupta # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP 21cfdbc2e1SVineet Gupta select GENERIC_IRQ_SHOW 22c1678ffcSJoao Pinto select GENERIC_PCI_IOMAP 23cfdbc2e1SVineet Gupta select GENERIC_PENDING_IRQ if SMP 24cfdbc2e1SVineet Gupta select GENERIC_SMP_IDLE_THREAD 25f46121bdSMischa Jonker select HAVE_ARCH_KGDB 26547f1125SVineet Gupta select HAVE_ARCH_TRACEHOOK 275e057429SVineet Gupta select HAVE_FUTEX_CMPXCHG 284368902bSGilad Ben-Yossef select HAVE_IOREMAP_PROT 294d86dfbbSVineet Gupta select HAVE_KPROBES 304d86dfbbSVineet Gupta select HAVE_KRETPROBES 31c121c506SVineet Gupta select HAVE_MEMBLOCK 32*eb1357d9SVineet Gupta select HAVE_MOD_ARCH_SPECIFIC 33769bc1fdSVineet Gupta select HAVE_OPROFILE 349c57564eSVineet Gupta select HAVE_PERF_EVENTS 351b0ccb8aSVineet Gupta select HANDLE_DOMAIN_IRQ 36999159a5SVineet Gupta select IRQ_DOMAIN 37cfdbc2e1SVineet Gupta select MODULES_USE_ELF_RELA 38c121c506SVineet Gupta select NO_BOOTMEM 39999159a5SVineet Gupta select OF 40999159a5SVineet Gupta select OF_EARLY_FLATTREE 411b10cb21SAlexey Brodkin select OF_RESERVED_MEM 429c57564eSVineet Gupta select PERF_USE_VMALLOC 43d1a1dc0bSDave Hansen select HAVE_DEBUG_STACKOVERFLOW 4432ed9a0eSAlexey Brodkin select HAVE_GENERIC_DMA_COHERENT 4527f3d2a3SDaniel Mentz select HAVE_KERNEL_GZIP 4627f3d2a3SDaniel Mentz select HAVE_KERNEL_LZMA 47cfdbc2e1SVineet Gupta 48c1678ffcSJoao Pintoconfig MIGHT_HAVE_PCI 49c1678ffcSJoao Pinto bool 50c1678ffcSJoao Pinto 510dafafc3SVineet Guptaconfig TRACE_IRQFLAGS_SUPPORT 520dafafc3SVineet Gupta def_bool y 530dafafc3SVineet Gupta 540dafafc3SVineet Guptaconfig LOCKDEP_SUPPORT 550dafafc3SVineet Gupta def_bool y 560dafafc3SVineet Gupta 57cfdbc2e1SVineet Guptaconfig SCHED_OMIT_FRAME_POINTER 58cfdbc2e1SVineet Gupta def_bool y 59cfdbc2e1SVineet Gupta 60cfdbc2e1SVineet Guptaconfig GENERIC_CSUM 61cfdbc2e1SVineet Gupta def_bool y 62cfdbc2e1SVineet Gupta 63cfdbc2e1SVineet Guptaconfig RWSEM_GENERIC_SPINLOCK 64cfdbc2e1SVineet Gupta def_bool y 65cfdbc2e1SVineet Gupta 6626f9d5fdSVineet Guptaconfig ARCH_DISCONTIGMEM_ENABLE 67d140b9bfSVineet Gupta def_bool n 6826f9d5fdSVineet Gupta 69cfdbc2e1SVineet Guptaconfig ARCH_FLATMEM_ENABLE 70cfdbc2e1SVineet Gupta def_bool y 71cfdbc2e1SVineet Gupta 72cfdbc2e1SVineet Guptaconfig MMU 73cfdbc2e1SVineet Gupta def_bool y 74cfdbc2e1SVineet Gupta 75ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP 76cfdbc2e1SVineet Gupta def_bool y 77cfdbc2e1SVineet Gupta 78cfdbc2e1SVineet Guptaconfig GENERIC_CALIBRATE_DELAY 79cfdbc2e1SVineet Gupta def_bool y 80cfdbc2e1SVineet Gupta 81cfdbc2e1SVineet Guptaconfig GENERIC_HWEIGHT 82cfdbc2e1SVineet Gupta def_bool y 83cfdbc2e1SVineet Gupta 8444c8bb91SVineet Guptaconfig STACKTRACE_SUPPORT 8544c8bb91SVineet Gupta def_bool y 8644c8bb91SVineet Gupta select STACKTRACE 8744c8bb91SVineet Gupta 88fe6c1b86SVineet Guptaconfig HAVE_ARCH_TRANSPARENT_HUGEPAGE 89fe6c1b86SVineet Gupta def_bool y 90fe6c1b86SVineet Gupta depends on ARC_MMU_V4 91fe6c1b86SVineet Gupta 92cfdbc2e1SVineet Guptasource "init/Kconfig" 93cfdbc2e1SVineet Guptasource "kernel/Kconfig.freezer" 94cfdbc2e1SVineet Gupta 95cfdbc2e1SVineet Guptamenu "ARC Architecture Configuration" 96cfdbc2e1SVineet Gupta 9793ad700dSVineet Guptamenu "ARC Platform/SoC/Board" 98cfdbc2e1SVineet Gupta 99fd155792SVineet Guptasource "arch/arc/plat-sim/Kconfig" 100072eb693SChristian Ruppertsource "arch/arc/plat-tb10x/Kconfig" 101556cc1c5SAlexey Brodkinsource "arch/arc/plat-axs10x/Kconfig" 102cfdbc2e1SVineet Gupta#New platform adds here 10396665789SNoam Camussource "arch/arc/plat-eznps/Kconfig" 10493ad700dSVineet Gupta 10553d98958SVineet Guptaendmenu 106cfdbc2e1SVineet Gupta 1071f6ccfffSVineet Guptachoice 1081f6ccfffSVineet Gupta prompt "ARC Instruction Set" 1091f6ccfffSVineet Gupta default ISA_ARCOMPACT 1101f6ccfffSVineet Gupta 1111f6ccfffSVineet Guptaconfig ISA_ARCOMPACT 1121f6ccfffSVineet Gupta bool "ARCompact ISA" 113fff7fb0bSZhaoxiu Zeng select CPU_NO_EFFICIENT_FFS 1141f6ccfffSVineet Gupta help 1151f6ccfffSVineet Gupta The original ARC ISA of ARC600/700 cores 1161f6ccfffSVineet Gupta 11765bfbcdfSVineet Guptaconfig ISA_ARCV2 11865bfbcdfSVineet Gupta bool "ARC ISA v2" 119c4c9a040SVineet Gupta select ARC_TIMERS_64BIT 12065bfbcdfSVineet Gupta help 12165bfbcdfSVineet Gupta ISA for the Next Generation ARC-HS cores 1221f6ccfffSVineet Gupta 1231f6ccfffSVineet Guptaendchoice 1241f6ccfffSVineet Gupta 125cfdbc2e1SVineet Guptamenu "ARC CPU Configuration" 126cfdbc2e1SVineet Gupta 127cfdbc2e1SVineet Guptachoice 128cfdbc2e1SVineet Gupta prompt "ARC Core" 1291f6ccfffSVineet Gupta default ARC_CPU_770 if ISA_ARCOMPACT 1301f6ccfffSVineet Gupta default ARC_CPU_HS if ISA_ARCV2 1311f6ccfffSVineet Gupta 1321f6ccfffSVineet Guptaif ISA_ARCOMPACT 133cfdbc2e1SVineet Gupta 134cfdbc2e1SVineet Guptaconfig ARC_CPU_750D 135cfdbc2e1SVineet Gupta bool "ARC750D" 13614a0abfcSVineet Gupta select ARC_CANT_LLSC 137cfdbc2e1SVineet Gupta help 138cfdbc2e1SVineet Gupta Support for ARC750 core 139cfdbc2e1SVineet Gupta 140cfdbc2e1SVineet Guptaconfig ARC_CPU_770 141cfdbc2e1SVineet Gupta bool "ARC770" 142742f8af6SVineet Gupta select ARC_HAS_SWAPE 143cfdbc2e1SVineet Gupta help 144cfdbc2e1SVineet Gupta Support for ARC770 core introduced with Rel 4.10 (Summer 2011) 145cfdbc2e1SVineet Gupta This core has a bunch of cool new features: 146cfdbc2e1SVineet Gupta -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4) 147cfdbc2e1SVineet Gupta Shared Address Spaces (for sharing TLB entires in MMU) 148cfdbc2e1SVineet Gupta -Caches: New Prog Model, Region Flush 149cfdbc2e1SVineet Gupta -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr 150cfdbc2e1SVineet Gupta 1511f6ccfffSVineet Guptaendif #ISA_ARCOMPACT 1521f6ccfffSVineet Gupta 1531f6ccfffSVineet Guptaconfig ARC_CPU_HS 1541f6ccfffSVineet Gupta bool "ARC-HS" 1551f6ccfffSVineet Gupta depends on ISA_ARCV2 1561f6ccfffSVineet Gupta help 1571f6ccfffSVineet Gupta Support for ARC HS38x Cores based on ARCv2 ISA 1581f6ccfffSVineet Gupta The notable features are: 1591f6ccfffSVineet Gupta - SMP configurations of upto 4 core with coherency 1601f6ccfffSVineet Gupta - Optional L2 Cache and IO-Coherency 1611f6ccfffSVineet Gupta - Revised Interrupt Architecture (multiple priorites, reg banks, 1621f6ccfffSVineet Gupta auto stack switch, auto regfile save/restore) 1631f6ccfffSVineet Gupta - MMUv4 (PIPT dcache, Huge Pages) 1641f6ccfffSVineet Gupta - Instructions for 1651f6ccfffSVineet Gupta * 64bit load/store: LDD, STD 1661f6ccfffSVineet Gupta * Hardware assisted divide/remainder: DIV, REM 1671f6ccfffSVineet Gupta * Function prologue/epilogue: ENTER_S, LEAVE_S 1681f6ccfffSVineet Gupta * IRQ enable/disable: CLRI, SETI 1691f6ccfffSVineet Gupta * pop count: FFS, FLS 1701f6ccfffSVineet Gupta * SETcc, BMSKN, XBFU... 1711f6ccfffSVineet Gupta 172cfdbc2e1SVineet Guptaendchoice 173cfdbc2e1SVineet Gupta 174cfdbc2e1SVineet Guptaconfig CPU_BIG_ENDIAN 175cfdbc2e1SVineet Gupta bool "Enable Big Endian Mode" 176cfdbc2e1SVineet Gupta default n 177cfdbc2e1SVineet Gupta help 178cfdbc2e1SVineet Gupta Build kernel for Big Endian Mode of ARC CPU 179cfdbc2e1SVineet Gupta 18041195d23SVineet Guptaconfig SMP 18182fea5a1SVineet Gupta bool "Symmetric Multi-Processing" 18241195d23SVineet Gupta default n 18382fea5a1SVineet Gupta select ARC_HAS_COH_CACHES if ISA_ARCV2 18482fea5a1SVineet Gupta select ARC_MCIP if ISA_ARCV2 18541195d23SVineet Gupta help 18682fea5a1SVineet Gupta This enables support for systems with more than one CPU. 18741195d23SVineet Gupta 18841195d23SVineet Guptaif SMP 18941195d23SVineet Gupta 19041195d23SVineet Guptaconfig ARC_HAS_COH_CACHES 19141195d23SVineet Gupta def_bool n 19241195d23SVineet Gupta 19341195d23SVineet Guptaconfig NR_CPUS 1943aa4f80eSNoam Camus int "Maximum number of CPUs (2-4096)" 1953aa4f80eSNoam Camus range 2 4096 19682fea5a1SVineet Gupta default "4" 19782fea5a1SVineet Gupta 1983971cdc2SVineet Guptaconfig ARC_SMP_HALT_ON_RESET 1993971cdc2SVineet Gupta bool "Enable Halt-on-reset boot mode" 2003971cdc2SVineet Gupta default y if ARC_UBOOT_SUPPORT 2013971cdc2SVineet Gupta help 2023971cdc2SVineet Gupta In SMP configuration cores can be configured as Halt-on-reset 2033971cdc2SVineet Gupta or they could all start at same time. For Halt-on-reset, non 2043971cdc2SVineet Gupta masters are parked until Master kicks them so they can start of 2053971cdc2SVineet Gupta at designated entry point. For other case, all jump to common 2063971cdc2SVineet Gupta entry point and spin wait for Master's signal. 2073971cdc2SVineet Gupta 20882fea5a1SVineet Guptaendif #SMP 20941195d23SVineet Gupta 2103ce0fefcSVineet Guptaconfig ARC_MCIP 2113ce0fefcSVineet Gupta bool "ARConnect Multicore IP (MCIP) Support " 2123ce0fefcSVineet Gupta depends on ISA_ARCV2 2133ce0fefcSVineet Gupta default y if SMP 2143ce0fefcSVineet Gupta help 2153ce0fefcSVineet Gupta This IP block enables SMP in ARC-HS38 cores. 2163ce0fefcSVineet Gupta It provides for cross-core interrupts, multi-core debug 2173ce0fefcSVineet Gupta hardware semaphores, shared memory,.... 2183ce0fefcSVineet Gupta 219cfdbc2e1SVineet Guptamenuconfig ARC_CACHE 220cfdbc2e1SVineet Gupta bool "Enable Cache Support" 221cfdbc2e1SVineet Gupta default y 22241195d23SVineet Gupta # if SMP, cache enabled ONLY if ARC implementation has cache coherency 22341195d23SVineet Gupta depends on !SMP || ARC_HAS_COH_CACHES 224cfdbc2e1SVineet Gupta 225cfdbc2e1SVineet Guptaif ARC_CACHE 226cfdbc2e1SVineet Gupta 227cfdbc2e1SVineet Guptaconfig ARC_CACHE_LINE_SHIFT 228cfdbc2e1SVineet Gupta int "Cache Line Length (as power of 2)" 229cfdbc2e1SVineet Gupta range 5 7 230cfdbc2e1SVineet Gupta default "6" 231cfdbc2e1SVineet Gupta help 232cfdbc2e1SVineet Gupta Starting with ARC700 4.9, Cache line length is configurable, 233cfdbc2e1SVineet Gupta This option specifies "N", with Line-len = 2 power N 234cfdbc2e1SVineet Gupta So line lengths of 32, 64, 128 are specified by 5,6,7, respectively 235cfdbc2e1SVineet Gupta Linux only supports same line lengths for I and D caches. 236cfdbc2e1SVineet Gupta 237cfdbc2e1SVineet Guptaconfig ARC_HAS_ICACHE 238cfdbc2e1SVineet Gupta bool "Use Instruction Cache" 239cfdbc2e1SVineet Gupta default y 240cfdbc2e1SVineet Gupta 241cfdbc2e1SVineet Guptaconfig ARC_HAS_DCACHE 242cfdbc2e1SVineet Gupta bool "Use Data Cache" 243cfdbc2e1SVineet Gupta default y 244cfdbc2e1SVineet Gupta 245cfdbc2e1SVineet Guptaconfig ARC_CACHE_PAGES 246cfdbc2e1SVineet Gupta bool "Per Page Cache Control" 247cfdbc2e1SVineet Gupta default y 248cfdbc2e1SVineet Gupta depends on ARC_HAS_ICACHE || ARC_HAS_DCACHE 249cfdbc2e1SVineet Gupta help 250cfdbc2e1SVineet Gupta This can be used to over-ride the global I/D Cache Enable on a 251cfdbc2e1SVineet Gupta per-page basis (but only for pages accessed via MMU such as 252cfdbc2e1SVineet Gupta Kernel Virtual address or User Virtual Address) 253cfdbc2e1SVineet Gupta TLB entries have a per-page Cache Enable Bit. 254cfdbc2e1SVineet Gupta Note that Global I/D ENABLE + Per Page DISABLE works but corollary 255cfdbc2e1SVineet Gupta Global DISABLE + Per Page ENABLE won't work 256cfdbc2e1SVineet Gupta 2574102b533SVineet Guptaconfig ARC_CACHE_VIPT_ALIASING 2584102b533SVineet Gupta bool "Support VIPT Aliasing D$" 259d1f317d8SVineet Gupta depends on ARC_HAS_DCACHE && ISA_ARCOMPACT 2604102b533SVineet Gupta default n 2614102b533SVineet Gupta 262cfdbc2e1SVineet Guptaendif #ARC_CACHE 263cfdbc2e1SVineet Gupta 2648b5850f8SVineet Guptaconfig ARC_HAS_ICCM 2658b5850f8SVineet Gupta bool "Use ICCM" 2668b5850f8SVineet Gupta help 2678b5850f8SVineet Gupta Single Cycle RAMS to store Fast Path Code 2688b5850f8SVineet Gupta default n 2698b5850f8SVineet Gupta 2708b5850f8SVineet Guptaconfig ARC_ICCM_SZ 2718b5850f8SVineet Gupta int "ICCM Size in KB" 2728b5850f8SVineet Gupta default "64" 2738b5850f8SVineet Gupta depends on ARC_HAS_ICCM 2748b5850f8SVineet Gupta 2758b5850f8SVineet Guptaconfig ARC_HAS_DCCM 2768b5850f8SVineet Gupta bool "Use DCCM" 2778b5850f8SVineet Gupta help 2788b5850f8SVineet Gupta Single Cycle RAMS to store Fast Path Data 2798b5850f8SVineet Gupta default n 2808b5850f8SVineet Gupta 2818b5850f8SVineet Guptaconfig ARC_DCCM_SZ 2828b5850f8SVineet Gupta int "DCCM Size in KB" 2838b5850f8SVineet Gupta default "64" 2848b5850f8SVineet Gupta depends on ARC_HAS_DCCM 2858b5850f8SVineet Gupta 2868b5850f8SVineet Guptaconfig ARC_DCCM_BASE 2878b5850f8SVineet Gupta hex "DCCM map address" 2888b5850f8SVineet Gupta default "0xA0000000" 2898b5850f8SVineet Gupta depends on ARC_HAS_DCCM 2908b5850f8SVineet Gupta 291cfdbc2e1SVineet Guptachoice 2921f6ccfffSVineet Gupta prompt "MMU Version" 293cfdbc2e1SVineet Gupta default ARC_MMU_V3 if ARC_CPU_770 294cfdbc2e1SVineet Gupta default ARC_MMU_V2 if ARC_CPU_750D 295d7a512bfSVineet Gupta default ARC_MMU_V4 if ARC_CPU_HS 296cfdbc2e1SVineet Gupta 297c583ee4fSVineet Guptaif ISA_ARCOMPACT 298c583ee4fSVineet Gupta 299cfdbc2e1SVineet Guptaconfig ARC_MMU_V1 300cfdbc2e1SVineet Gupta bool "MMU v1" 301cfdbc2e1SVineet Gupta help 302cfdbc2e1SVineet Gupta Orig ARC700 MMU 303cfdbc2e1SVineet Gupta 304cfdbc2e1SVineet Guptaconfig ARC_MMU_V2 305cfdbc2e1SVineet Gupta bool "MMU v2" 306cfdbc2e1SVineet Gupta help 307cfdbc2e1SVineet Gupta Fixed the deficiency of v1 - possible thrashing in memcpy sceanrio 308cfdbc2e1SVineet Gupta when 2 D-TLB and 1 I-TLB entries index into same 2way set. 309cfdbc2e1SVineet Gupta 310cfdbc2e1SVineet Guptaconfig ARC_MMU_V3 311cfdbc2e1SVineet Gupta bool "MMU v3" 312cfdbc2e1SVineet Gupta depends on ARC_CPU_770 313cfdbc2e1SVineet Gupta help 314cfdbc2e1SVineet Gupta Introduced with ARC700 4.10: New Features 315cfdbc2e1SVineet Gupta Variable Page size (1k-16k), var JTLB size 128 x (2 or 4) 316cfdbc2e1SVineet Gupta Shared Address Spaces (SASID) 317cfdbc2e1SVineet Gupta 318c583ee4fSVineet Guptaendif 319c583ee4fSVineet Gupta 320d7a512bfSVineet Guptaconfig ARC_MMU_V4 321d7a512bfSVineet Gupta bool "MMU v4" 322d7a512bfSVineet Gupta depends on ISA_ARCV2 323d7a512bfSVineet Gupta 324cfdbc2e1SVineet Guptaendchoice 325cfdbc2e1SVineet Gupta 326cfdbc2e1SVineet Gupta 327cfdbc2e1SVineet Guptachoice 328cfdbc2e1SVineet Gupta prompt "MMU Page Size" 329cfdbc2e1SVineet Gupta default ARC_PAGE_SIZE_8K 330cfdbc2e1SVineet Gupta 331cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_8K 332cfdbc2e1SVineet Gupta bool "8KB" 333cfdbc2e1SVineet Gupta help 334cfdbc2e1SVineet Gupta Choose between 8k vs 16k 335cfdbc2e1SVineet Gupta 336cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_16K 337cfdbc2e1SVineet Gupta bool "16KB" 338450ed0dbSAlexey Brodkin depends on ARC_MMU_V3 || ARC_MMU_V4 339cfdbc2e1SVineet Gupta 340cfdbc2e1SVineet Guptaconfig ARC_PAGE_SIZE_4K 341cfdbc2e1SVineet Gupta bool "4KB" 342450ed0dbSAlexey Brodkin depends on ARC_MMU_V3 || ARC_MMU_V4 343cfdbc2e1SVineet Gupta 344cfdbc2e1SVineet Guptaendchoice 345cfdbc2e1SVineet Gupta 34637eda9dfSVineet Guptachoice 34737eda9dfSVineet Gupta prompt "MMU Super Page Size" 34837eda9dfSVineet Gupta depends on ISA_ARCV2 && TRANSPARENT_HUGEPAGE 34937eda9dfSVineet Gupta default ARC_HUGEPAGE_2M 35037eda9dfSVineet Gupta 35137eda9dfSVineet Guptaconfig ARC_HUGEPAGE_2M 35237eda9dfSVineet Gupta bool "2MB" 35337eda9dfSVineet Gupta 35437eda9dfSVineet Guptaconfig ARC_HUGEPAGE_16M 35537eda9dfSVineet Gupta bool "16MB" 35637eda9dfSVineet Gupta 35737eda9dfSVineet Guptaendchoice 35837eda9dfSVineet Gupta 35926f9d5fdSVineet Guptaconfig NODES_SHIFT 36026f9d5fdSVineet Gupta int "Maximum NUMA Nodes (as a power of 2)" 3613528f84fSNoam Camus default "0" if !DISCONTIGMEM 3623528f84fSNoam Camus default "1" if DISCONTIGMEM 36326f9d5fdSVineet Gupta depends on NEED_MULTIPLE_NODES 36426f9d5fdSVineet Gupta ---help--- 36526f9d5fdSVineet Gupta Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory 36626f9d5fdSVineet Gupta zones. 36726f9d5fdSVineet Gupta 3681f6ccfffSVineet Guptaif ISA_ARCOMPACT 3691f6ccfffSVineet Gupta 3704788a594SVineet Guptaconfig ARC_COMPACT_IRQ_LEVELS 37160f2b4b8SVineet Gupta bool "Setup Timer IRQ as high Priority" 3724788a594SVineet Gupta default n 37341195d23SVineet Gupta # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy 37460f2b4b8SVineet Gupta depends on !SMP 3754788a594SVineet Gupta 376cfdbc2e1SVineet Guptaconfig ARC_FPU_SAVE_RESTORE 377cfdbc2e1SVineet Gupta bool "Enable FPU state persistence across context switch" 378cfdbc2e1SVineet Gupta default n 379cfdbc2e1SVineet Gupta help 380cfdbc2e1SVineet Gupta Double Precision Floating Point unit had dedictaed regs which 381cfdbc2e1SVineet Gupta need to be saved/restored across context-switch. 382cfdbc2e1SVineet Gupta Note that ARC FPU is overly simplistic, unlike say x86, which has 383cfdbc2e1SVineet Gupta hardware pieces to allow software to conditionally save/restore, 384cfdbc2e1SVineet Gupta based on actual usage of FPU by a task. Thus our implemn does 385cfdbc2e1SVineet Gupta this for all tasks in system. 386cfdbc2e1SVineet Gupta 3871f6ccfffSVineet Guptaendif #ISA_ARCOMPACT 3881f6ccfffSVineet Gupta 389fbf8e13dSVineet Guptaconfig ARC_CANT_LLSC 390fbf8e13dSVineet Gupta def_bool n 391fbf8e13dSVineet Gupta 392cfdbc2e1SVineet Guptaconfig ARC_HAS_LLSC 393cfdbc2e1SVineet Gupta bool "Insn: LLOCK/SCOND (efficient atomic ops)" 394cfdbc2e1SVineet Gupta default y 39514a0abfcSVineet Gupta depends on !ARC_CANT_LLSC 396cfdbc2e1SVineet Gupta 397cfdbc2e1SVineet Guptaconfig ARC_HAS_SWAPE 398cfdbc2e1SVineet Gupta bool "Insn: SWAPE (endian-swap)" 399cfdbc2e1SVineet Gupta default y 400cfdbc2e1SVineet Gupta 4011f6ccfffSVineet Guptaif ISA_ARCV2 4021f6ccfffSVineet Gupta 4031f6ccfffSVineet Guptaconfig ARC_HAS_LL64 4041f6ccfffSVineet Gupta bool "Insn: 64bit LDD/STD" 4051f6ccfffSVineet Gupta help 4061f6ccfffSVineet Gupta Enable gcc to generate 64-bit load/store instructions 4071f6ccfffSVineet Gupta ISA mandates even/odd registers to allow encoding of two 4081f6ccfffSVineet Gupta dest operands with 2 possible source operands. 4091f6ccfffSVineet Gupta default y 4101f6ccfffSVineet Gupta 411d05a76abSAlexey Brodkinconfig ARC_HAS_DIV_REM 412d05a76abSAlexey Brodkin bool "Insn: div, divu, rem, remu" 413d05a76abSAlexey Brodkin default y 414d05a76abSAlexey Brodkin 4151f6ccfffSVineet Guptaconfig ARC_NUMBER_OF_INTERRUPTS 4161f6ccfffSVineet Gupta int "Number of interrupts" 4171f6ccfffSVineet Gupta range 8 240 4181f6ccfffSVineet Gupta default 32 4191f6ccfffSVineet Gupta help 4201f6ccfffSVineet Gupta This defines the number of interrupts on the ARCv2HS core. 4211f6ccfffSVineet Gupta It affects the size of vector table. 4221f6ccfffSVineet Gupta The initial 8 IRQs are fixed (Timer, ICI etc) and although configurable 4231f6ccfffSVineet Gupta in hardware, it keep things simple for Linux to assume they are always 4241f6ccfffSVineet Gupta present. 4251f6ccfffSVineet Gupta 4261f6ccfffSVineet Guptaendif # ISA_ARCV2 4271f6ccfffSVineet Gupta 428cfdbc2e1SVineet Guptaendmenu # "ARC CPU Configuration" 429cfdbc2e1SVineet Gupta 430cfdbc2e1SVineet Guptaconfig LINUX_LINK_BASE 431cfdbc2e1SVineet Gupta hex "Linux Link Address" 432cfdbc2e1SVineet Gupta default "0x80000000" 433cfdbc2e1SVineet Gupta help 434cfdbc2e1SVineet Gupta ARC700 divides the 32 bit phy address space into two equal halves 435cfdbc2e1SVineet Gupta -Lower 2G (0 - 0x7FFF_FFFF ) is user virtual, translated by MMU 436cfdbc2e1SVineet Gupta -Upper 2G (0x8000_0000 onwards) is untranslated, for kernel 437cfdbc2e1SVineet Gupta Typically Linux kernel is linked at the start of untransalted addr, 438cfdbc2e1SVineet Gupta hence the default value of 0x8zs. 439cfdbc2e1SVineet Gupta However some customers have peripherals mapped at this addr, so 440cfdbc2e1SVineet Gupta Linux needs to be scooted a bit. 441cfdbc2e1SVineet Gupta If you don't know what the above means, leave this setting alone. 442ff1c0b6aSVineet Gupta This needs to match memory start address specified in Device Tree 443cfdbc2e1SVineet Gupta 44445890f6dSVineet Guptaconfig HIGHMEM 44545890f6dSVineet Gupta bool "High Memory Support" 446d140b9bfSVineet Gupta select ARCH_DISCONTIGMEM_ENABLE 44745890f6dSVineet Gupta help 44845890f6dSVineet Gupta With ARC 2G:2G address split, only upper 2G is directly addressable by 44945890f6dSVineet Gupta kernel. Enable this to potentially allow access to rest of 2G and PAE 45045890f6dSVineet Gupta in future 45145890f6dSVineet Gupta 4525a364c2aSVineet Guptaconfig ARC_HAS_PAE40 4535a364c2aSVineet Gupta bool "Support for the 40-bit Physical Address Extension" 4545a364c2aSVineet Gupta default n 4555a364c2aSVineet Gupta depends on ISA_ARCV2 4565a364c2aSVineet Gupta help 4575a364c2aSVineet Gupta Enable access to physical memory beyond 4G, only supported on 4585a364c2aSVineet Gupta ARC cores with 40 bit Physical Addressing support 4595a364c2aSVineet Gupta 4605a364c2aSVineet Guptaconfig ARCH_PHYS_ADDR_T_64BIT 4615a364c2aSVineet Gupta def_bool ARC_HAS_PAE40 4625a364c2aSVineet Gupta 4635a364c2aSVineet Guptaconfig ARCH_DMA_ADDR_T_64BIT 4645a364c2aSVineet Gupta bool 4655a364c2aSVineet Gupta 466f2e3d553SVineet Guptaconfig ARC_PLAT_NEEDS_PHYS_TO_DMA 467f2e3d553SVineet Gupta bool 468f2e3d553SVineet Gupta 46915ca68a9SNoam Camusconfig ARC_KVADDR_SIZE 47015ca68a9SNoam Camus int "Kernel Virtaul Address Space size (MB)" 47115ca68a9SNoam Camus range 0 512 47215ca68a9SNoam Camus default "256" 47315ca68a9SNoam Camus help 47415ca68a9SNoam Camus The kernel address space is carved out of 256MB of translated address 47515ca68a9SNoam Camus space for catering to vmalloc, modules, pkmap, fixmap. This however may 47615ca68a9SNoam Camus not suffice vmalloc requirements of a 4K CPU EZChip system. So allow 47715ca68a9SNoam Camus this to be stretched to 512 MB (by extending into the reserved 47815ca68a9SNoam Camus kernel-user gutter) 47915ca68a9SNoam Camus 480080c3747SVineet Guptaconfig ARC_CURR_IN_REG 481080c3747SVineet Gupta bool "Dedicate Register r25 for current_task pointer" 482080c3747SVineet Gupta default y 483080c3747SVineet Gupta help 484080c3747SVineet Gupta This reserved Register R25 to point to Current Task in 485080c3747SVineet Gupta kernel mode. This saves memory access for each such access 486080c3747SVineet Gupta 4872e651ea1SVineet Gupta 4881736a56fSVineet Guptaconfig ARC_EMUL_UNALIGNED 4892e651ea1SVineet Gupta bool "Emulate unaligned memory access (userspace only)" 4901f6ccfffSVineet Gupta default N 4912e651ea1SVineet Gupta select SYSCTL_ARCH_UNALIGN_NO_WARN 4922e651ea1SVineet Gupta select SYSCTL_ARCH_UNALIGN_ALLOW 4931f6ccfffSVineet Gupta depends on ISA_ARCOMPACT 4942e651ea1SVineet Gupta help 4952e651ea1SVineet Gupta This enables misaligned 16 & 32 bit memory access from user space. 4962e651ea1SVineet Gupta Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide 4972e651ea1SVineet Gupta potential bugs in code 4982e651ea1SVineet Gupta 499cfdbc2e1SVineet Guptaconfig HZ 500cfdbc2e1SVineet Gupta int "Timer Frequency" 501cfdbc2e1SVineet Gupta default 100 502cfdbc2e1SVineet Gupta 503cbe056f7SVineet Guptaconfig ARC_METAWARE_HLINK 504cbe056f7SVineet Gupta bool "Support for Metaware debugger assisted Host access" 505cbe056f7SVineet Gupta default n 506cbe056f7SVineet Gupta help 507cbe056f7SVineet Gupta This options allows a Linux userland apps to directly access 508cbe056f7SVineet Gupta host file system (open/creat/read/write etc) with help from 509cbe056f7SVineet Gupta Metaware Debugger. This can come in handy for Linux-host communication 510cbe056f7SVineet Gupta when there is no real usable peripheral such as EMAC. 511cbe056f7SVineet Gupta 512cfdbc2e1SVineet Guptamenuconfig ARC_DBG 513cfdbc2e1SVineet Gupta bool "ARC debugging" 514cfdbc2e1SVineet Gupta default y 515cfdbc2e1SVineet Gupta 516aa6083edSVineet Guptaif ARC_DBG 517aa6083edSVineet Gupta 518854a0d95SVineet Guptaconfig ARC_DW2_UNWIND 519854a0d95SVineet Gupta bool "Enable DWARF specific kernel stack unwind" 520854a0d95SVineet Gupta default y 521854a0d95SVineet Gupta select KALLSYMS 522854a0d95SVineet Gupta help 523854a0d95SVineet Gupta Compiles the kernel with DWARF unwind information and can be used 524854a0d95SVineet Gupta to get stack backtraces. 525854a0d95SVineet Gupta 526854a0d95SVineet Gupta If you say Y here the resulting kernel image will be slightly larger 527854a0d95SVineet Gupta but not slower, and it will give very useful debugging information. 528854a0d95SVineet Gupta If you don't debug the kernel, you can say N, but we may not be able 529854a0d95SVineet Gupta to solve problems without frame unwind information 530854a0d95SVineet Gupta 531cfdbc2e1SVineet Guptaconfig ARC_DBG_TLB_PARANOIA 532cfdbc2e1SVineet Gupta bool "Paranoia Checks in Low Level TLB Handlers" 533cfdbc2e1SVineet Gupta default n 534cfdbc2e1SVineet Gupta 535aa6083edSVineet Guptaendif 536aa6083edSVineet Gupta 537036b2c56SVineet Guptaconfig ARC_UBOOT_SUPPORT 538036b2c56SVineet Gupta bool "Support uboot arg Handling" 539036b2c56SVineet Gupta default n 540036b2c56SVineet Gupta help 541036b2c56SVineet Gupta ARC Linux by default checks for uboot provided args as pointers to 542036b2c56SVineet Gupta external cmdline or DTB. This however breaks in absence of uboot, 543036b2c56SVineet Gupta when booting from Metaware debugger directly, as the registers are 544036b2c56SVineet Gupta not zeroed out on reset by mdb and/or ARCv2 based cores. The bogus 545036b2c56SVineet Gupta registers look like uboot args to kernel which then chokes. 546036b2c56SVineet Gupta So only enable the uboot arg checking/processing if users are sure 547036b2c56SVineet Gupta of uboot being in play. 548036b2c56SVineet Gupta 549999159a5SVineet Guptaconfig ARC_BUILTIN_DTB_NAME 550999159a5SVineet Gupta string "Built in DTB" 551999159a5SVineet Gupta help 552999159a5SVineet Gupta Set the name of the DTB to embed in the vmlinux binary 553999159a5SVineet Gupta Leaving it blank selects the minimal "skeleton" dtb 554999159a5SVineet Gupta 555cfdbc2e1SVineet Guptasource "kernel/Kconfig.preempt" 556cfdbc2e1SVineet Gupta 5575628832fSVineet Guptamenu "Executable file formats" 5585628832fSVineet Guptasource "fs/Kconfig.binfmt" 5595628832fSVineet Guptaendmenu 5605628832fSVineet Gupta 561cfdbc2e1SVineet Guptaendmenu # "ARC Architecture Configuration" 562cfdbc2e1SVineet Gupta 563cfdbc2e1SVineet Guptasource "mm/Kconfig" 56437eda9dfSVineet Gupta 56537eda9dfSVineet Guptaconfig FORCE_MAX_ZONEORDER 56637eda9dfSVineet Gupta int "Maximum zone order" 56737eda9dfSVineet Gupta default "12" if ARC_HUGEPAGE_16M 56837eda9dfSVineet Gupta default "11" 56937eda9dfSVineet Gupta 570cfdbc2e1SVineet Guptasource "net/Kconfig" 571cfdbc2e1SVineet Guptasource "drivers/Kconfig" 572c1678ffcSJoao Pinto 573c1678ffcSJoao Pintomenu "Bus Support" 574c1678ffcSJoao Pinto 575c1678ffcSJoao Pintoconfig PCI 576c1678ffcSJoao Pinto bool "PCI support" if MIGHT_HAVE_PCI 577c1678ffcSJoao Pinto help 578c1678ffcSJoao Pinto PCI is the name of a bus system, i.e., the way the CPU talks to 579c1678ffcSJoao Pinto the other stuff inside your box. Find out if your board/platform 580c1678ffcSJoao Pinto has PCI. 581c1678ffcSJoao Pinto 582c1678ffcSJoao Pinto Note: PCIe support for Synopsys Device will be available only 583c1678ffcSJoao Pinto when HAPS DX is configured with PCIe RC bitmap. If you have PCI, 584c1678ffcSJoao Pinto say Y, otherwise N. 585c1678ffcSJoao Pinto 586c1678ffcSJoao Pintoconfig PCI_SYSCALL 587c1678ffcSJoao Pinto def_bool PCI 588c1678ffcSJoao Pinto 589c1678ffcSJoao Pintosource "drivers/pci/Kconfig" 590c1678ffcSJoao Pinto 591c1678ffcSJoao Pintoendmenu 592c1678ffcSJoao Pinto 593cfdbc2e1SVineet Guptasource "fs/Kconfig" 594cfdbc2e1SVineet Guptasource "arch/arc/Kconfig.debug" 595cfdbc2e1SVineet Guptasource "security/Kconfig" 596cfdbc2e1SVineet Guptasource "crypto/Kconfig" 597cfdbc2e1SVineet Guptasource "lib/Kconfig" 598996bad6cSAlexey Brodkinsource "kernel/power/Kconfig" 599