xref: /linux/arch/csky/Kconfig (revision 761b4f694cb90b63ca2739ac8a8a176342636e5e)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2c32e64e8SGuo Renconfig CSKY
3c32e64e8SGuo Ren	def_bool y
4942fa985SYury Norov	select ARCH_32BIT_OFF_T
513bf5cedSChristoph Hellwig	select ARCH_HAS_DMA_PREP_COHERENT
6c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_CPU
7c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
8c32e64e8SGuo Ren	select ARCH_USE_BUILTIN_BSWAP
9c32e64e8SGuo Ren	select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
10c32e64e8SGuo Ren	select COMMON_CLK
11c32e64e8SGuo Ren	select CLKSRC_MMIO
12c32e64e8SGuo Ren	select CLKSRC_OF
131994cc49SGuo Ren	select CSKY_MPINTC if CPU_CK860
141994cc49SGuo Ren	select CSKY_MP_TIMER if CPU_CK860
151994cc49SGuo Ren	select CSKY_APB_INTC
16f04b951fSChristoph Hellwig	select DMA_DIRECT_REMAP
17c32e64e8SGuo Ren	select IRQ_DOMAIN
18c32e64e8SGuo Ren	select HANDLE_DOMAIN_IRQ
19c32e64e8SGuo Ren	select DW_APB_TIMER_OF
200055f67bSChristoph Hellwig	select GENERIC_IOREMAP
21c32e64e8SGuo Ren	select GENERIC_LIB_ASHLDI3
22c32e64e8SGuo Ren	select GENERIC_LIB_ASHRDI3
23c32e64e8SGuo Ren	select GENERIC_LIB_LSHRDI3
24c32e64e8SGuo Ren	select GENERIC_LIB_MULDI3
25c32e64e8SGuo Ren	select GENERIC_LIB_CMPDI2
26c32e64e8SGuo Ren	select GENERIC_LIB_UCMPDI2
27c32e64e8SGuo Ren	select GENERIC_ALLOCATOR
28c32e64e8SGuo Ren	select GENERIC_ATOMIC64
29c32e64e8SGuo Ren	select GENERIC_CLOCKEVENTS
30c32e64e8SGuo Ren	select GENERIC_CPU_DEVICES
31c32e64e8SGuo Ren	select GENERIC_IRQ_CHIP
32c32e64e8SGuo Ren	select GENERIC_IRQ_PROBE
33c32e64e8SGuo Ren	select GENERIC_IRQ_SHOW
34c32e64e8SGuo Ren	select GENERIC_IRQ_MULTI_HANDLER
35c32e64e8SGuo Ren	select GENERIC_SCHED_CLOCK
36c32e64e8SGuo Ren	select GENERIC_SMP_IDLE_THREAD
371994cc49SGuo Ren	select GX6605S_TIMER if CPU_CK610
38c32e64e8SGuo Ren	select HAVE_ARCH_TRACEHOOK
392f7932b0SGuo Ren	select HAVE_ARCH_AUDITSYSCALL
4028bb030fSGuo Ren	select HAVE_DYNAMIC_FTRACE
41230c77a5SGuo Ren	select HAVE_FUNCTION_TRACER
42d7950be1SGuo Ren	select HAVE_FUNCTION_GRAPH_TRACER
4328bb030fSGuo Ren	select HAVE_FTRACE_MCOUNT_RECORD
44c32e64e8SGuo Ren	select HAVE_KERNEL_GZIP
45c32e64e8SGuo Ren	select HAVE_KERNEL_LZO
46c32e64e8SGuo Ren	select HAVE_KERNEL_LZMA
47f50fd2d8SGuo Ren	select HAVE_PERF_EVENTS
48daac95e7SMao Han	select HAVE_PERF_REGS
49daac95e7SMao Han	select HAVE_PERF_USER_STACK_DUMP
50c32e64e8SGuo Ren	select HAVE_DMA_API_DEBUG
51c32e64e8SGuo Ren	select HAVE_DMA_CONTIGUOUS
522f78c73fSMao Han	select HAVE_STACKPROTECTOR
532f7932b0SGuo Ren	select HAVE_SYSCALL_TRACEPOINTS
54c32e64e8SGuo Ren	select MAY_HAVE_SPARSE_IRQ
55c32e64e8SGuo Ren	select MODULES_USE_ELF_RELA if MODULES
56c32e64e8SGuo Ren	select OF
57c32e64e8SGuo Ren	select OF_EARLY_FLATTREE
58f50fd2d8SGuo Ren	select PERF_USE_VMALLOC if CPU_CK610
59c32e64e8SGuo Ren	select RTC_LIB
60c32e64e8SGuo Ren	select TIMER_OF
61c32e64e8SGuo Ren	select USB_ARCH_HAS_EHCI
62c32e64e8SGuo Ren	select USB_ARCH_HAS_OHCI
63c32e64e8SGuo Ren
64c32e64e8SGuo Renconfig CPU_HAS_CACHEV2
65c32e64e8SGuo Ren	bool
66c32e64e8SGuo Ren
67c32e64e8SGuo Renconfig CPU_HAS_FPUV2
68c32e64e8SGuo Ren	bool
69c32e64e8SGuo Ren
70c32e64e8SGuo Renconfig CPU_HAS_HILO
71c32e64e8SGuo Ren	bool
72c32e64e8SGuo Ren
73c32e64e8SGuo Renconfig CPU_HAS_TLBI
74c32e64e8SGuo Ren	bool
75c32e64e8SGuo Ren
76c32e64e8SGuo Renconfig CPU_HAS_LDSTEX
77c32e64e8SGuo Ren	bool
78c32e64e8SGuo Ren	help
79c32e64e8SGuo Ren	  For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
80c32e64e8SGuo Ren
81c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC
82c32e64e8SGuo Ren	bool
83c32e64e8SGuo Ren
84c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN
85c32e64e8SGuo Ren	bool
86c32e64e8SGuo Ren
87c32e64e8SGuo Renconfig CPU_NO_USER_BKPT
88c32e64e8SGuo Ren	bool
89c32e64e8SGuo Ren	help
90c32e64e8SGuo Ren	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
91c32e64e8SGuo Ren	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
92c32e64e8SGuo Ren	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
93c32e64e8SGuo Ren	  instruction exception.
94c32e64e8SGuo Ren	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
95c32e64e8SGuo Ren
96c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY
97c32e64e8SGuo Ren	def_bool y
98c32e64e8SGuo Ren
99c32e64e8SGuo Renconfig GENERIC_CSUM
100c32e64e8SGuo Ren	def_bool y
101c32e64e8SGuo Ren
102c32e64e8SGuo Renconfig GENERIC_HWEIGHT
103c32e64e8SGuo Ren	def_bool y
104c32e64e8SGuo Ren
105c32e64e8SGuo Renconfig MMU
106c32e64e8SGuo Ren	def_bool y
107c32e64e8SGuo Ren
1080ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT
1090ea2dc7cSGuo Ren	def_bool y
1100ea2dc7cSGuo Ren
111c32e64e8SGuo Renconfig TIME_LOW_RES
112c32e64e8SGuo Ren	def_bool y
113c32e64e8SGuo Ren
114c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT
115c32e64e8SGuo Ren	def_bool y
116c32e64e8SGuo Ren
117c32e64e8SGuo Renconfig CPU_TLB_SIZE
118c32e64e8SGuo Ren	int
119c32e64e8SGuo Ren	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
120c32e64e8SGuo Ren	default "1024"	if (CPU_CK860)
121c32e64e8SGuo Ren
122c32e64e8SGuo Renconfig CPU_ASID_BITS
123c32e64e8SGuo Ren	int
124c32e64e8SGuo Ren	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
125c32e64e8SGuo Ren	default "12"	if (CPU_CK860)
126c32e64e8SGuo Ren
127c32e64e8SGuo Renconfig L1_CACHE_SHIFT
128c32e64e8SGuo Ren	int
129c32e64e8SGuo Ren	default "4"	if (CPU_CK610)
130c32e64e8SGuo Ren	default "5"	if (CPU_CK807 || CPU_CK810)
131c32e64e8SGuo Ren	default "6"	if (CPU_CK860)
132c32e64e8SGuo Ren
133c32e64e8SGuo Renmenu "Processor type and features"
134c32e64e8SGuo Ren
135c32e64e8SGuo Renchoice
136c32e64e8SGuo Ren	prompt "CPU MODEL"
137c32e64e8SGuo Ren	default CPU_CK807
138c32e64e8SGuo Ren
139c32e64e8SGuo Renconfig CPU_CK610
140c32e64e8SGuo Ren	bool "CSKY CPU ck610"
141c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
142c32e64e8SGuo Ren	select CPU_NEED_SOFTALIGN
143c32e64e8SGuo Ren	select CPU_NO_USER_BKPT
144c32e64e8SGuo Ren
145c32e64e8SGuo Renconfig CPU_CK810
146c32e64e8SGuo Ren	bool "CSKY CPU ck810"
147c32e64e8SGuo Ren	select CPU_HAS_HILO
148c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
149c32e64e8SGuo Ren
150c32e64e8SGuo Renconfig CPU_CK807
151c32e64e8SGuo Ren	bool "CSKY CPU ck807"
152c32e64e8SGuo Ren	select CPU_HAS_HILO
153c32e64e8SGuo Ren
154c32e64e8SGuo Renconfig CPU_CK860
155c32e64e8SGuo Ren	bool "CSKY CPU ck860"
156c32e64e8SGuo Ren	select CPU_HAS_TLBI
157c32e64e8SGuo Ren	select CPU_HAS_CACHEV2
158c32e64e8SGuo Ren	select CPU_HAS_LDSTEX
159c32e64e8SGuo Ren	select CPU_HAS_FPUV2
160c32e64e8SGuo Renendchoice
161c32e64e8SGuo Ren
162c32e64e8SGuo Renchoice
163f50fd2d8SGuo Ren	prompt "C-SKY PMU type"
164f50fd2d8SGuo Ren	depends on PERF_EVENTS
165f50fd2d8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
166f50fd2d8SGuo Ren
167f50fd2d8SGuo Renconfig CPU_PMU_NONE
168f50fd2d8SGuo Ren	bool "None"
169f50fd2d8SGuo Ren
170f50fd2d8SGuo Renconfig CSKY_PMU_V1
171f50fd2d8SGuo Ren	bool "Performance Monitoring Unit Ver.1"
172f50fd2d8SGuo Ren
173f50fd2d8SGuo Renendchoice
174f50fd2d8SGuo Ren
175f50fd2d8SGuo Renchoice
176c32e64e8SGuo Ren	prompt "Power Manager Instruction (wait/doze/stop)"
177c32e64e8SGuo Ren	default CPU_PM_NONE
178c32e64e8SGuo Ren
179c32e64e8SGuo Renconfig CPU_PM_NONE
180c32e64e8SGuo Ren	bool "None"
181c32e64e8SGuo Ren
182c32e64e8SGuo Renconfig CPU_PM_WAIT
183c32e64e8SGuo Ren	bool "wait"
184c32e64e8SGuo Ren
185c32e64e8SGuo Renconfig CPU_PM_DOZE
186c32e64e8SGuo Ren	bool "doze"
187c32e64e8SGuo Ren
188c32e64e8SGuo Renconfig CPU_PM_STOP
189c32e64e8SGuo Ren	bool "stop"
190c32e64e8SGuo Renendchoice
191c32e64e8SGuo Ren
192f525bb2cSGuo Renmenuconfig HAVE_TCM
193f525bb2cSGuo Ren	bool "Tightly-Coupled/Sram Memory"
194f525bb2cSGuo Ren	select GENERIC_ALLOCATOR
195f525bb2cSGuo Ren	help
196f525bb2cSGuo Ren	  The implementation are not only used by TCM (Tightly-Coupled Meory)
197f525bb2cSGuo Ren	  but also used by sram on SOC bus. It follow existed linux tcm
198f525bb2cSGuo Ren	  software interface, so that old tcm application codes could be
199f525bb2cSGuo Ren	  re-used directly.
200f525bb2cSGuo Ren
201f525bb2cSGuo Renif HAVE_TCM
202f525bb2cSGuo Renconfig ITCM_RAM_BASE
203f525bb2cSGuo Ren	hex "ITCM ram base"
204f525bb2cSGuo Ren	default 0xffffffff
205f525bb2cSGuo Ren
206f525bb2cSGuo Renconfig ITCM_NR_PAGES
207f525bb2cSGuo Ren	int "Page count of ITCM size: NR*4KB"
208f525bb2cSGuo Ren	range 1 256
209f525bb2cSGuo Ren	default 32
210f525bb2cSGuo Ren
211f525bb2cSGuo Renconfig HAVE_DTCM
212f525bb2cSGuo Ren	bool "DTCM Support"
213f525bb2cSGuo Ren
214f525bb2cSGuo Renconfig DTCM_RAM_BASE
215f525bb2cSGuo Ren	hex "DTCM ram base"
216f525bb2cSGuo Ren	depends on HAVE_DTCM
217f525bb2cSGuo Ren	default 0xffffffff
218f525bb2cSGuo Ren
219f525bb2cSGuo Renconfig DTCM_NR_PAGES
220f525bb2cSGuo Ren	int "Page count of DTCM size: NR*4KB"
221f525bb2cSGuo Ren	depends on HAVE_DTCM
222f525bb2cSGuo Ren	range 1 256
223f525bb2cSGuo Ren	default 32
224f525bb2cSGuo Renendif
225f525bb2cSGuo Ren
226c32e64e8SGuo Renconfig CPU_HAS_VDSP
227c32e64e8SGuo Ren	bool "CPU has VDSP coprocessor"
228c32e64e8SGuo Ren	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
229c32e64e8SGuo Ren
230c32e64e8SGuo Renconfig CPU_HAS_FPU
231c32e64e8SGuo Ren	bool "CPU has FPU coprocessor"
232c32e64e8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
233c32e64e8SGuo Ren
234*761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS
235*761b4f69SGuo Ren	bool "CPU has Icache invalidate instructions"
236*761b4f69SGuo Ren	depends on CPU_HAS_CACHEV2
237*761b4f69SGuo Ren
238c32e64e8SGuo Renconfig CPU_HAS_TEE
239c32e64e8SGuo Ren	bool "CPU has Trusted Execution Environment"
240c32e64e8SGuo Ren	depends on CPU_CK810
241c32e64e8SGuo Ren
242c32e64e8SGuo Renconfig SMP
243c32e64e8SGuo Ren	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
244c32e64e8SGuo Ren	depends on CPU_CK860
245c32e64e8SGuo Ren	default n
246c32e64e8SGuo Ren
247c32e64e8SGuo Renconfig NR_CPUS
248c32e64e8SGuo Ren	int "Maximum number of CPUs (2-32)"
249c32e64e8SGuo Ren	range 2 32
250c32e64e8SGuo Ren	depends on SMP
251c32e64e8SGuo Ren	default "2"
252c32e64e8SGuo Ren
253c32e64e8SGuo Renconfig HIGHMEM
254c32e64e8SGuo Ren	bool "High Memory Support"
255c32e64e8SGuo Ren	depends on !CPU_CK610
256c32e64e8SGuo Ren	default y
257c32e64e8SGuo Ren
258c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER
259c32e64e8SGuo Ren	int "Maximum zone order"
260c32e64e8SGuo Ren	default "11"
261c32e64e8SGuo Ren
262c32e64e8SGuo Renconfig RAM_BASE
263c32e64e8SGuo Ren	hex "DRAM start addr (the same with memory-section in dts)"
264c32e64e8SGuo Ren	default 0x0
265c32e64e8SGuo Ren
266859e5f45SGuo Renconfig HOTPLUG_CPU
267859e5f45SGuo Ren	bool "Support for hot-pluggable CPUs"
268859e5f45SGuo Ren	select GENERIC_IRQ_MIGRATION
269859e5f45SGuo Ren	depends on SMP
270859e5f45SGuo Ren	help
271859e5f45SGuo Ren	  Say Y here to allow turning CPUs off and on. CPUs can be
272859e5f45SGuo Ren	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
273859e5f45SGuo Ren
274859e5f45SGuo Ren	  Say N if you want to disable CPU hotplug.
275c32e64e8SGuo Renendmenu
276c32e64e8SGuo Ren
277a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms"
278a736fa1eSGuo Ren
279c32e64e8SGuo Rensource "kernel/Kconfig.hz"
280