xref: /linux/arch/csky/Kconfig (revision 8f6bb793b2be82f1f73bfb416486f156f70b4314)
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
6de863678SMa Jun	select ARCH_HAS_GCOV_PROFILE_ALL
7c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_CPU
8c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
9c32e64e8SGuo Ren	select ARCH_USE_BUILTIN_BSWAP
10c32e64e8SGuo Ren	select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
11c32e64e8SGuo Ren	select COMMON_CLK
12c32e64e8SGuo Ren	select CLKSRC_MMIO
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
400b9f386cSGuo Ren	select HAVE_COPY_THREAD_TLS
4128bb030fSGuo Ren	select HAVE_DYNAMIC_FTRACE
4289a3927aSGuo Ren	select HAVE_DYNAMIC_FTRACE_WITH_REGS
43230c77a5SGuo Ren	select HAVE_FUNCTION_TRACER
44d7950be1SGuo Ren	select HAVE_FUNCTION_GRAPH_TRACER
4528bb030fSGuo Ren	select HAVE_FTRACE_MCOUNT_RECORD
46c32e64e8SGuo Ren	select HAVE_KERNEL_GZIP
47c32e64e8SGuo Ren	select HAVE_KERNEL_LZO
48c32e64e8SGuo Ren	select HAVE_KERNEL_LZMA
4933e53ae1SGuo Ren	select HAVE_KPROBES if !CPU_CK610
5033e53ae1SGuo Ren	select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
5133e53ae1SGuo Ren	select HAVE_KRETPROBES if !CPU_CK610
52f50fd2d8SGuo Ren	select HAVE_PERF_EVENTS
53daac95e7SMao Han	select HAVE_PERF_REGS
54daac95e7SMao Han	select HAVE_PERF_USER_STACK_DUMP
55c32e64e8SGuo Ren	select HAVE_DMA_CONTIGUOUS
56bfe47f35SGuo Ren	select HAVE_REGS_AND_STACK_ACCESS_API
579866d141SGuo Ren	select HAVE_RSEQ
582f78c73fSMao Han	select HAVE_STACKPROTECTOR
592f7932b0SGuo Ren	select HAVE_SYSCALL_TRACEPOINTS
60c32e64e8SGuo Ren	select MAY_HAVE_SPARSE_IRQ
61c32e64e8SGuo Ren	select MODULES_USE_ELF_RELA if MODULES
62c32e64e8SGuo Ren	select OF
63c32e64e8SGuo Ren	select OF_EARLY_FLATTREE
64f50fd2d8SGuo Ren	select PERF_USE_VMALLOC if CPU_CK610
65c32e64e8SGuo Ren	select RTC_LIB
66c32e64e8SGuo Ren	select TIMER_OF
67c32e64e8SGuo Ren	select USB_ARCH_HAS_EHCI
68c32e64e8SGuo Ren	select USB_ARCH_HAS_OHCI
695b49c82dSMaJun	select GENERIC_PCI_IOMAP
705b49c82dSMaJun	select HAVE_PCI
715b49c82dSMaJun	select PCI_DOMAINS_GENERIC if PCI
725b49c82dSMaJun	select PCI_SYSCALL if PCI
735b49c82dSMaJun	select PCI_MSI if PCI
74c32e64e8SGuo Ren
75000591f1SGuo Renconfig LOCKDEP_SUPPORT
76000591f1SGuo Ren	def_bool y
77000591f1SGuo Ren
78*8f6bb793SGuo Renconfig ARCH_SUPPORTS_UPROBES
79*8f6bb793SGuo Ren	def_bool y if !CPU_CK610
80*8f6bb793SGuo Ren
81c32e64e8SGuo Renconfig CPU_HAS_CACHEV2
82c32e64e8SGuo Ren	bool
83c32e64e8SGuo Ren
84c32e64e8SGuo Renconfig CPU_HAS_FPUV2
85c32e64e8SGuo Ren	bool
86c32e64e8SGuo Ren
87c32e64e8SGuo Renconfig CPU_HAS_HILO
88c32e64e8SGuo Ren	bool
89c32e64e8SGuo Ren
90c32e64e8SGuo Renconfig CPU_HAS_TLBI
91c32e64e8SGuo Ren	bool
92c32e64e8SGuo Ren
93c32e64e8SGuo Renconfig CPU_HAS_LDSTEX
94c32e64e8SGuo Ren	bool
95c32e64e8SGuo Ren	help
96bebd26abSRandy Dunlap	  For SMP, CPU needs "ldex&stex" instructions for atomic operations.
97c32e64e8SGuo Ren
98c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC
99c32e64e8SGuo Ren	bool
100c32e64e8SGuo Ren
101c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN
102c32e64e8SGuo Ren	bool
103c32e64e8SGuo Ren
104c32e64e8SGuo Renconfig CPU_NO_USER_BKPT
105c32e64e8SGuo Ren	bool
106c32e64e8SGuo Ren	help
107c32e64e8SGuo Ren	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
108c32e64e8SGuo Ren	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
109c32e64e8SGuo Ren	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
110c32e64e8SGuo Ren	  instruction exception.
111c32e64e8SGuo Ren	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
112c32e64e8SGuo Ren
113c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY
114c32e64e8SGuo Ren	def_bool y
115c32e64e8SGuo Ren
116c32e64e8SGuo Renconfig GENERIC_CSUM
117c32e64e8SGuo Ren	def_bool y
118c32e64e8SGuo Ren
119c32e64e8SGuo Renconfig GENERIC_HWEIGHT
120c32e64e8SGuo Ren	def_bool y
121c32e64e8SGuo Ren
122c32e64e8SGuo Renconfig MMU
123c32e64e8SGuo Ren	def_bool y
124c32e64e8SGuo Ren
1250ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT
1260ea2dc7cSGuo Ren	def_bool y
1270ea2dc7cSGuo Ren
128c32e64e8SGuo Renconfig TIME_LOW_RES
129c32e64e8SGuo Ren	def_bool y
130c32e64e8SGuo Ren
131c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT
132c32e64e8SGuo Ren	def_bool y
133c32e64e8SGuo Ren
134c32e64e8SGuo Renconfig CPU_TLB_SIZE
135c32e64e8SGuo Ren	int
136c32e64e8SGuo Ren	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
137c32e64e8SGuo Ren	default "1024"	if (CPU_CK860)
138c32e64e8SGuo Ren
139c32e64e8SGuo Renconfig CPU_ASID_BITS
140c32e64e8SGuo Ren	int
141c32e64e8SGuo Ren	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
142c32e64e8SGuo Ren	default "12"	if (CPU_CK860)
143c32e64e8SGuo Ren
144c32e64e8SGuo Renconfig L1_CACHE_SHIFT
145c32e64e8SGuo Ren	int
146c32e64e8SGuo Ren	default "4"	if (CPU_CK610)
147c32e64e8SGuo Ren	default "5"	if (CPU_CK807 || CPU_CK810)
148c32e64e8SGuo Ren	default "6"	if (CPU_CK860)
149c32e64e8SGuo Ren
150c32e64e8SGuo Renmenu "Processor type and features"
151c32e64e8SGuo Ren
152c32e64e8SGuo Renchoice
153c32e64e8SGuo Ren	prompt "CPU MODEL"
154c32e64e8SGuo Ren	default CPU_CK807
155c32e64e8SGuo Ren
156c32e64e8SGuo Renconfig CPU_CK610
157c32e64e8SGuo Ren	bool "CSKY CPU ck610"
158c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
159c32e64e8SGuo Ren	select CPU_NEED_SOFTALIGN
160c32e64e8SGuo Ren	select CPU_NO_USER_BKPT
161c32e64e8SGuo Ren
162c32e64e8SGuo Renconfig CPU_CK810
163c32e64e8SGuo Ren	bool "CSKY CPU ck810"
164c32e64e8SGuo Ren	select CPU_HAS_HILO
165c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
166c32e64e8SGuo Ren
167c32e64e8SGuo Renconfig CPU_CK807
168c32e64e8SGuo Ren	bool "CSKY CPU ck807"
169c32e64e8SGuo Ren	select CPU_HAS_HILO
170c32e64e8SGuo Ren
171c32e64e8SGuo Renconfig CPU_CK860
172c32e64e8SGuo Ren	bool "CSKY CPU ck860"
173c32e64e8SGuo Ren	select CPU_HAS_TLBI
174c32e64e8SGuo Ren	select CPU_HAS_CACHEV2
175c32e64e8SGuo Ren	select CPU_HAS_LDSTEX
176c32e64e8SGuo Ren	select CPU_HAS_FPUV2
177c32e64e8SGuo Renendchoice
178c32e64e8SGuo Ren
179c32e64e8SGuo Renchoice
180f50fd2d8SGuo Ren	prompt "C-SKY PMU type"
181f50fd2d8SGuo Ren	depends on PERF_EVENTS
182f50fd2d8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
183f50fd2d8SGuo Ren
184f50fd2d8SGuo Renconfig CPU_PMU_NONE
185f50fd2d8SGuo Ren	bool "None"
186f50fd2d8SGuo Ren
187f50fd2d8SGuo Renconfig CSKY_PMU_V1
188f50fd2d8SGuo Ren	bool "Performance Monitoring Unit Ver.1"
189f50fd2d8SGuo Ren
190f50fd2d8SGuo Renendchoice
191f50fd2d8SGuo Ren
192f50fd2d8SGuo Renchoice
193c32e64e8SGuo Ren	prompt "Power Manager Instruction (wait/doze/stop)"
194c32e64e8SGuo Ren	default CPU_PM_NONE
195c32e64e8SGuo Ren
196c32e64e8SGuo Renconfig CPU_PM_NONE
197c32e64e8SGuo Ren	bool "None"
198c32e64e8SGuo Ren
199c32e64e8SGuo Renconfig CPU_PM_WAIT
200c32e64e8SGuo Ren	bool "wait"
201c32e64e8SGuo Ren
202c32e64e8SGuo Renconfig CPU_PM_DOZE
203c32e64e8SGuo Ren	bool "doze"
204c32e64e8SGuo Ren
205c32e64e8SGuo Renconfig CPU_PM_STOP
206c32e64e8SGuo Ren	bool "stop"
207c32e64e8SGuo Renendchoice
208c32e64e8SGuo Ren
209f525bb2cSGuo Renmenuconfig HAVE_TCM
210f525bb2cSGuo Ren	bool "Tightly-Coupled/Sram Memory"
211f525bb2cSGuo Ren	select GENERIC_ALLOCATOR
212f525bb2cSGuo Ren	help
213f525bb2cSGuo Ren	  The implementation are not only used by TCM (Tightly-Coupled Meory)
214f525bb2cSGuo Ren	  but also used by sram on SOC bus. It follow existed linux tcm
215f525bb2cSGuo Ren	  software interface, so that old tcm application codes could be
216f525bb2cSGuo Ren	  re-used directly.
217f525bb2cSGuo Ren
218f525bb2cSGuo Renif HAVE_TCM
219f525bb2cSGuo Renconfig ITCM_RAM_BASE
220f525bb2cSGuo Ren	hex "ITCM ram base"
221f525bb2cSGuo Ren	default 0xffffffff
222f525bb2cSGuo Ren
223f525bb2cSGuo Renconfig ITCM_NR_PAGES
224f525bb2cSGuo Ren	int "Page count of ITCM size: NR*4KB"
225f525bb2cSGuo Ren	range 1 256
226f525bb2cSGuo Ren	default 32
227f525bb2cSGuo Ren
228f525bb2cSGuo Renconfig HAVE_DTCM
229f525bb2cSGuo Ren	bool "DTCM Support"
230f525bb2cSGuo Ren
231f525bb2cSGuo Renconfig DTCM_RAM_BASE
232f525bb2cSGuo Ren	hex "DTCM ram base"
233f525bb2cSGuo Ren	depends on HAVE_DTCM
234f525bb2cSGuo Ren	default 0xffffffff
235f525bb2cSGuo Ren
236f525bb2cSGuo Renconfig DTCM_NR_PAGES
237f525bb2cSGuo Ren	int "Page count of DTCM size: NR*4KB"
238f525bb2cSGuo Ren	depends on HAVE_DTCM
239f525bb2cSGuo Ren	range 1 256
240f525bb2cSGuo Ren	default 32
241f525bb2cSGuo Renendif
242f525bb2cSGuo Ren
243c32e64e8SGuo Renconfig CPU_HAS_VDSP
244c32e64e8SGuo Ren	bool "CPU has VDSP coprocessor"
245c32e64e8SGuo Ren	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
246c32e64e8SGuo Ren
247c32e64e8SGuo Renconfig CPU_HAS_FPU
248c32e64e8SGuo Ren	bool "CPU has FPU coprocessor"
249c32e64e8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
250c32e64e8SGuo Ren
251761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS
252761b4f69SGuo Ren	bool "CPU has Icache invalidate instructions"
253761b4f69SGuo Ren	depends on CPU_HAS_CACHEV2
254761b4f69SGuo Ren
255c32e64e8SGuo Renconfig CPU_HAS_TEE
256c32e64e8SGuo Ren	bool "CPU has Trusted Execution Environment"
257c32e64e8SGuo Ren	depends on CPU_CK810
258c32e64e8SGuo Ren
259c32e64e8SGuo Renconfig SMP
260c32e64e8SGuo Ren	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
261c32e64e8SGuo Ren	depends on CPU_CK860
262c32e64e8SGuo Ren	default n
263c32e64e8SGuo Ren
264c32e64e8SGuo Renconfig NR_CPUS
265c32e64e8SGuo Ren	int "Maximum number of CPUs (2-32)"
266c32e64e8SGuo Ren	range 2 32
267c32e64e8SGuo Ren	depends on SMP
268c32e64e8SGuo Ren	default "2"
269c32e64e8SGuo Ren
270c32e64e8SGuo Renconfig HIGHMEM
271c32e64e8SGuo Ren	bool "High Memory Support"
272c32e64e8SGuo Ren	depends on !CPU_CK610
273c32e64e8SGuo Ren	default y
274c32e64e8SGuo Ren
275c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER
276c32e64e8SGuo Ren	int "Maximum zone order"
277c32e64e8SGuo Ren	default "11"
278c32e64e8SGuo Ren
279c32e64e8SGuo Renconfig RAM_BASE
280c32e64e8SGuo Ren	hex "DRAM start addr (the same with memory-section in dts)"
281c32e64e8SGuo Ren	default 0x0
282c32e64e8SGuo Ren
283859e5f45SGuo Renconfig HOTPLUG_CPU
284859e5f45SGuo Ren	bool "Support for hot-pluggable CPUs"
285859e5f45SGuo Ren	select GENERIC_IRQ_MIGRATION
286859e5f45SGuo Ren	depends on SMP
287859e5f45SGuo Ren	help
288859e5f45SGuo Ren	  Say Y here to allow turning CPUs off and on. CPUs can be
289859e5f45SGuo Ren	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
290859e5f45SGuo Ren
291859e5f45SGuo Ren	  Say N if you want to disable CPU hotplug.
292c32e64e8SGuo Renendmenu
293c32e64e8SGuo Ren
294a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms"
295a736fa1eSGuo Ren
296c32e64e8SGuo Rensource "kernel/Kconfig.hz"
297