xref: /linux/arch/csky/Kconfig (revision 18c07d23da5a48525b2955aa269b8bb108c19300)
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
11*18c07d23SGuo Ren	select ARCH_WANT_FRAME_POINTERS if !CPU_CK610
12c32e64e8SGuo Ren	select COMMON_CLK
13c32e64e8SGuo Ren	select CLKSRC_MMIO
141994cc49SGuo Ren	select CSKY_MPINTC if CPU_CK860
151994cc49SGuo Ren	select CSKY_MP_TIMER if CPU_CK860
161994cc49SGuo Ren	select CSKY_APB_INTC
17f04b951fSChristoph Hellwig	select DMA_DIRECT_REMAP
18c32e64e8SGuo Ren	select IRQ_DOMAIN
19c32e64e8SGuo Ren	select HANDLE_DOMAIN_IRQ
20c32e64e8SGuo Ren	select DW_APB_TIMER_OF
210055f67bSChristoph Hellwig	select GENERIC_IOREMAP
22c32e64e8SGuo Ren	select GENERIC_LIB_ASHLDI3
23c32e64e8SGuo Ren	select GENERIC_LIB_ASHRDI3
24c32e64e8SGuo Ren	select GENERIC_LIB_LSHRDI3
25c32e64e8SGuo Ren	select GENERIC_LIB_MULDI3
26c32e64e8SGuo Ren	select GENERIC_LIB_CMPDI2
27c32e64e8SGuo Ren	select GENERIC_LIB_UCMPDI2
28c32e64e8SGuo Ren	select GENERIC_ALLOCATOR
29c32e64e8SGuo Ren	select GENERIC_ATOMIC64
30c32e64e8SGuo Ren	select GENERIC_CLOCKEVENTS
31c32e64e8SGuo Ren	select GENERIC_CPU_DEVICES
32c32e64e8SGuo Ren	select GENERIC_IRQ_CHIP
33c32e64e8SGuo Ren	select GENERIC_IRQ_PROBE
34c32e64e8SGuo Ren	select GENERIC_IRQ_SHOW
35c32e64e8SGuo Ren	select GENERIC_IRQ_MULTI_HANDLER
36c32e64e8SGuo Ren	select GENERIC_SCHED_CLOCK
37c32e64e8SGuo Ren	select GENERIC_SMP_IDLE_THREAD
381994cc49SGuo Ren	select GX6605S_TIMER if CPU_CK610
39c32e64e8SGuo Ren	select HAVE_ARCH_TRACEHOOK
402f7932b0SGuo Ren	select HAVE_ARCH_AUDITSYSCALL
410b9f386cSGuo Ren	select HAVE_COPY_THREAD_TLS
42*18c07d23SGuo Ren	select HAVE_DEBUG_BUGVERBOSE
4328bb030fSGuo Ren	select HAVE_DYNAMIC_FTRACE
4489a3927aSGuo Ren	select HAVE_DYNAMIC_FTRACE_WITH_REGS
45230c77a5SGuo Ren	select HAVE_FUNCTION_TRACER
46d7950be1SGuo Ren	select HAVE_FUNCTION_GRAPH_TRACER
4728bb030fSGuo Ren	select HAVE_FTRACE_MCOUNT_RECORD
48c32e64e8SGuo Ren	select HAVE_KERNEL_GZIP
49c32e64e8SGuo Ren	select HAVE_KERNEL_LZO
50c32e64e8SGuo Ren	select HAVE_KERNEL_LZMA
5133e53ae1SGuo Ren	select HAVE_KPROBES if !CPU_CK610
5233e53ae1SGuo Ren	select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
5333e53ae1SGuo Ren	select HAVE_KRETPROBES if !CPU_CK610
54f50fd2d8SGuo Ren	select HAVE_PERF_EVENTS
55daac95e7SMao Han	select HAVE_PERF_REGS
56daac95e7SMao Han	select HAVE_PERF_USER_STACK_DUMP
57c32e64e8SGuo Ren	select HAVE_DMA_CONTIGUOUS
58bfe47f35SGuo Ren	select HAVE_REGS_AND_STACK_ACCESS_API
599866d141SGuo Ren	select HAVE_RSEQ
602f78c73fSMao Han	select HAVE_STACKPROTECTOR
612f7932b0SGuo Ren	select HAVE_SYSCALL_TRACEPOINTS
62c32e64e8SGuo Ren	select MAY_HAVE_SPARSE_IRQ
63c32e64e8SGuo Ren	select MODULES_USE_ELF_RELA if MODULES
64c32e64e8SGuo Ren	select OF
65c32e64e8SGuo Ren	select OF_EARLY_FLATTREE
66f50fd2d8SGuo Ren	select PERF_USE_VMALLOC if CPU_CK610
67c32e64e8SGuo Ren	select RTC_LIB
68c32e64e8SGuo Ren	select TIMER_OF
69c32e64e8SGuo Ren	select USB_ARCH_HAS_EHCI
70c32e64e8SGuo Ren	select USB_ARCH_HAS_OHCI
715b49c82dSMaJun	select GENERIC_PCI_IOMAP
725b49c82dSMaJun	select HAVE_PCI
735b49c82dSMaJun	select PCI_DOMAINS_GENERIC if PCI
745b49c82dSMaJun	select PCI_SYSCALL if PCI
755b49c82dSMaJun	select PCI_MSI if PCI
76c32e64e8SGuo Ren
77000591f1SGuo Renconfig LOCKDEP_SUPPORT
78000591f1SGuo Ren	def_bool y
79000591f1SGuo Ren
808f6bb793SGuo Renconfig ARCH_SUPPORTS_UPROBES
818f6bb793SGuo Ren	def_bool y if !CPU_CK610
828f6bb793SGuo Ren
83c32e64e8SGuo Renconfig CPU_HAS_CACHEV2
84c32e64e8SGuo Ren	bool
85c32e64e8SGuo Ren
86c32e64e8SGuo Renconfig CPU_HAS_FPUV2
87c32e64e8SGuo Ren	bool
88c32e64e8SGuo Ren
89c32e64e8SGuo Renconfig CPU_HAS_HILO
90c32e64e8SGuo Ren	bool
91c32e64e8SGuo Ren
92c32e64e8SGuo Renconfig CPU_HAS_TLBI
93c32e64e8SGuo Ren	bool
94c32e64e8SGuo Ren
95c32e64e8SGuo Renconfig CPU_HAS_LDSTEX
96c32e64e8SGuo Ren	bool
97c32e64e8SGuo Ren	help
98bebd26abSRandy Dunlap	  For SMP, CPU needs "ldex&stex" instructions for atomic operations.
99c32e64e8SGuo Ren
100c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC
101c32e64e8SGuo Ren	bool
102c32e64e8SGuo Ren
103c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN
104c32e64e8SGuo Ren	bool
105c32e64e8SGuo Ren
106c32e64e8SGuo Renconfig CPU_NO_USER_BKPT
107c32e64e8SGuo Ren	bool
108c32e64e8SGuo Ren	help
109c32e64e8SGuo Ren	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
110c32e64e8SGuo Ren	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
111c32e64e8SGuo Ren	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
112c32e64e8SGuo Ren	  instruction exception.
113c32e64e8SGuo Ren	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
114c32e64e8SGuo Ren
115c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY
116c32e64e8SGuo Ren	def_bool y
117c32e64e8SGuo Ren
118c32e64e8SGuo Renconfig GENERIC_CSUM
119c32e64e8SGuo Ren	def_bool y
120c32e64e8SGuo Ren
121c32e64e8SGuo Renconfig GENERIC_HWEIGHT
122c32e64e8SGuo Ren	def_bool y
123c32e64e8SGuo Ren
124c32e64e8SGuo Renconfig MMU
125c32e64e8SGuo Ren	def_bool y
126c32e64e8SGuo Ren
1270ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT
1280ea2dc7cSGuo Ren	def_bool y
1290ea2dc7cSGuo Ren
130c32e64e8SGuo Renconfig TIME_LOW_RES
131c32e64e8SGuo Ren	def_bool y
132c32e64e8SGuo Ren
133c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT
134c32e64e8SGuo Ren	def_bool y
135c32e64e8SGuo Ren
136c32e64e8SGuo Renconfig CPU_TLB_SIZE
137c32e64e8SGuo Ren	int
138c32e64e8SGuo Ren	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
139c32e64e8SGuo Ren	default "1024"	if (CPU_CK860)
140c32e64e8SGuo Ren
141c32e64e8SGuo Renconfig CPU_ASID_BITS
142c32e64e8SGuo Ren	int
143c32e64e8SGuo Ren	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
144c32e64e8SGuo Ren	default "12"	if (CPU_CK860)
145c32e64e8SGuo Ren
146c32e64e8SGuo Renconfig L1_CACHE_SHIFT
147c32e64e8SGuo Ren	int
148c32e64e8SGuo Ren	default "4"	if (CPU_CK610)
149c32e64e8SGuo Ren	default "5"	if (CPU_CK807 || CPU_CK810)
150c32e64e8SGuo Ren	default "6"	if (CPU_CK860)
151c32e64e8SGuo Ren
152c32e64e8SGuo Renmenu "Processor type and features"
153c32e64e8SGuo Ren
154c32e64e8SGuo Renchoice
155c32e64e8SGuo Ren	prompt "CPU MODEL"
156c32e64e8SGuo Ren	default CPU_CK807
157c32e64e8SGuo Ren
158c32e64e8SGuo Renconfig CPU_CK610
159c32e64e8SGuo Ren	bool "CSKY CPU ck610"
160c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
161c32e64e8SGuo Ren	select CPU_NEED_SOFTALIGN
162c32e64e8SGuo Ren	select CPU_NO_USER_BKPT
163c32e64e8SGuo Ren
164c32e64e8SGuo Renconfig CPU_CK810
165c32e64e8SGuo Ren	bool "CSKY CPU ck810"
166c32e64e8SGuo Ren	select CPU_HAS_HILO
167c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
168c32e64e8SGuo Ren
169c32e64e8SGuo Renconfig CPU_CK807
170c32e64e8SGuo Ren	bool "CSKY CPU ck807"
171c32e64e8SGuo Ren	select CPU_HAS_HILO
172c32e64e8SGuo Ren
173c32e64e8SGuo Renconfig CPU_CK860
174c32e64e8SGuo Ren	bool "CSKY CPU ck860"
175c32e64e8SGuo Ren	select CPU_HAS_TLBI
176c32e64e8SGuo Ren	select CPU_HAS_CACHEV2
177c32e64e8SGuo Ren	select CPU_HAS_LDSTEX
178c32e64e8SGuo Ren	select CPU_HAS_FPUV2
179c32e64e8SGuo Renendchoice
180c32e64e8SGuo Ren
181c32e64e8SGuo Renchoice
182f50fd2d8SGuo Ren	prompt "C-SKY PMU type"
183f50fd2d8SGuo Ren	depends on PERF_EVENTS
184f50fd2d8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
185f50fd2d8SGuo Ren
186f50fd2d8SGuo Renconfig CPU_PMU_NONE
187f50fd2d8SGuo Ren	bool "None"
188f50fd2d8SGuo Ren
189f50fd2d8SGuo Renconfig CSKY_PMU_V1
190f50fd2d8SGuo Ren	bool "Performance Monitoring Unit Ver.1"
191f50fd2d8SGuo Ren
192f50fd2d8SGuo Renendchoice
193f50fd2d8SGuo Ren
194f50fd2d8SGuo Renchoice
195c32e64e8SGuo Ren	prompt "Power Manager Instruction (wait/doze/stop)"
196c32e64e8SGuo Ren	default CPU_PM_NONE
197c32e64e8SGuo Ren
198c32e64e8SGuo Renconfig CPU_PM_NONE
199c32e64e8SGuo Ren	bool "None"
200c32e64e8SGuo Ren
201c32e64e8SGuo Renconfig CPU_PM_WAIT
202c32e64e8SGuo Ren	bool "wait"
203c32e64e8SGuo Ren
204c32e64e8SGuo Renconfig CPU_PM_DOZE
205c32e64e8SGuo Ren	bool "doze"
206c32e64e8SGuo Ren
207c32e64e8SGuo Renconfig CPU_PM_STOP
208c32e64e8SGuo Ren	bool "stop"
209c32e64e8SGuo Renendchoice
210c32e64e8SGuo Ren
211f525bb2cSGuo Renmenuconfig HAVE_TCM
212f525bb2cSGuo Ren	bool "Tightly-Coupled/Sram Memory"
213f525bb2cSGuo Ren	select GENERIC_ALLOCATOR
214f525bb2cSGuo Ren	help
215f525bb2cSGuo Ren	  The implementation are not only used by TCM (Tightly-Coupled Meory)
216f525bb2cSGuo Ren	  but also used by sram on SOC bus. It follow existed linux tcm
217f525bb2cSGuo Ren	  software interface, so that old tcm application codes could be
218f525bb2cSGuo Ren	  re-used directly.
219f525bb2cSGuo Ren
220f525bb2cSGuo Renif HAVE_TCM
221f525bb2cSGuo Renconfig ITCM_RAM_BASE
222f525bb2cSGuo Ren	hex "ITCM ram base"
223f525bb2cSGuo Ren	default 0xffffffff
224f525bb2cSGuo Ren
225f525bb2cSGuo Renconfig ITCM_NR_PAGES
226f525bb2cSGuo Ren	int "Page count of ITCM size: NR*4KB"
227f525bb2cSGuo Ren	range 1 256
228f525bb2cSGuo Ren	default 32
229f525bb2cSGuo Ren
230f525bb2cSGuo Renconfig HAVE_DTCM
231f525bb2cSGuo Ren	bool "DTCM Support"
232f525bb2cSGuo Ren
233f525bb2cSGuo Renconfig DTCM_RAM_BASE
234f525bb2cSGuo Ren	hex "DTCM ram base"
235f525bb2cSGuo Ren	depends on HAVE_DTCM
236f525bb2cSGuo Ren	default 0xffffffff
237f525bb2cSGuo Ren
238f525bb2cSGuo Renconfig DTCM_NR_PAGES
239f525bb2cSGuo Ren	int "Page count of DTCM size: NR*4KB"
240f525bb2cSGuo Ren	depends on HAVE_DTCM
241f525bb2cSGuo Ren	range 1 256
242f525bb2cSGuo Ren	default 32
243f525bb2cSGuo Renendif
244f525bb2cSGuo Ren
245c32e64e8SGuo Renconfig CPU_HAS_VDSP
246c32e64e8SGuo Ren	bool "CPU has VDSP coprocessor"
247c32e64e8SGuo Ren	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
248c32e64e8SGuo Ren
249c32e64e8SGuo Renconfig CPU_HAS_FPU
250c32e64e8SGuo Ren	bool "CPU has FPU coprocessor"
251c32e64e8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
252c32e64e8SGuo Ren
253761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS
254761b4f69SGuo Ren	bool "CPU has Icache invalidate instructions"
255761b4f69SGuo Ren	depends on CPU_HAS_CACHEV2
256761b4f69SGuo Ren
257c32e64e8SGuo Renconfig CPU_HAS_TEE
258c32e64e8SGuo Ren	bool "CPU has Trusted Execution Environment"
259c32e64e8SGuo Ren	depends on CPU_CK810
260c32e64e8SGuo Ren
261c32e64e8SGuo Renconfig SMP
262c32e64e8SGuo Ren	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
263c32e64e8SGuo Ren	depends on CPU_CK860
264c32e64e8SGuo Ren	default n
265c32e64e8SGuo Ren
266c32e64e8SGuo Renconfig NR_CPUS
267c32e64e8SGuo Ren	int "Maximum number of CPUs (2-32)"
268c32e64e8SGuo Ren	range 2 32
269c32e64e8SGuo Ren	depends on SMP
270c32e64e8SGuo Ren	default "2"
271c32e64e8SGuo Ren
272c32e64e8SGuo Renconfig HIGHMEM
273c32e64e8SGuo Ren	bool "High Memory Support"
274c32e64e8SGuo Ren	depends on !CPU_CK610
275c32e64e8SGuo Ren	default y
276c32e64e8SGuo Ren
277c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER
278c32e64e8SGuo Ren	int "Maximum zone order"
279c32e64e8SGuo Ren	default "11"
280c32e64e8SGuo Ren
281c32e64e8SGuo Renconfig RAM_BASE
282c32e64e8SGuo Ren	hex "DRAM start addr (the same with memory-section in dts)"
283c32e64e8SGuo Ren	default 0x0
284c32e64e8SGuo Ren
285859e5f45SGuo Renconfig HOTPLUG_CPU
286859e5f45SGuo Ren	bool "Support for hot-pluggable CPUs"
287859e5f45SGuo Ren	select GENERIC_IRQ_MIGRATION
288859e5f45SGuo Ren	depends on SMP
289859e5f45SGuo Ren	help
290859e5f45SGuo Ren	  Say Y here to allow turning CPUs off and on. CPUs can be
291859e5f45SGuo Ren	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
292859e5f45SGuo Ren
293859e5f45SGuo Ren	  Say N if you want to disable CPU hotplug.
294c32e64e8SGuo Renendmenu
295c32e64e8SGuo Ren
296a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms"
297a736fa1eSGuo Ren
298c32e64e8SGuo Rensource "kernel/Kconfig.hz"
299