xref: /linux/arch/arc/Kconfig (revision eb1357d942e5d96de6b4c20a8ffa55acf96233a2)
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