xref: /linux/arch/csky/Kconfig (revision f525bb2c9e7cf1e3c43ab57704c9e1c836d30b34)
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
192*f525bb2cSGuo Renmenuconfig HAVE_TCM
193*f525bb2cSGuo Ren	bool "Tightly-Coupled/Sram Memory"
194*f525bb2cSGuo Ren	depends on HIGHMEM
195*f525bb2cSGuo Ren	select GENERIC_ALLOCATOR
196*f525bb2cSGuo Ren	help
197*f525bb2cSGuo Ren	  The implementation are not only used by TCM (Tightly-Coupled Meory)
198*f525bb2cSGuo Ren	  but also used by sram on SOC bus. It follow existed linux tcm
199*f525bb2cSGuo Ren	  software interface, so that old tcm application codes could be
200*f525bb2cSGuo Ren	  re-used directly.
201*f525bb2cSGuo Ren
202*f525bb2cSGuo Renif HAVE_TCM
203*f525bb2cSGuo Renconfig ITCM_RAM_BASE
204*f525bb2cSGuo Ren	hex "ITCM ram base"
205*f525bb2cSGuo Ren	default 0xffffffff
206*f525bb2cSGuo Ren
207*f525bb2cSGuo Renconfig ITCM_NR_PAGES
208*f525bb2cSGuo Ren	int "Page count of ITCM size: NR*4KB"
209*f525bb2cSGuo Ren	range 1 256
210*f525bb2cSGuo Ren	default 32
211*f525bb2cSGuo Ren
212*f525bb2cSGuo Renconfig HAVE_DTCM
213*f525bb2cSGuo Ren	bool "DTCM Support"
214*f525bb2cSGuo Ren
215*f525bb2cSGuo Renconfig DTCM_RAM_BASE
216*f525bb2cSGuo Ren	hex "DTCM ram base"
217*f525bb2cSGuo Ren	depends on HAVE_DTCM
218*f525bb2cSGuo Ren	default 0xffffffff
219*f525bb2cSGuo Ren
220*f525bb2cSGuo Renconfig DTCM_NR_PAGES
221*f525bb2cSGuo Ren	int "Page count of DTCM size: NR*4KB"
222*f525bb2cSGuo Ren	depends on HAVE_DTCM
223*f525bb2cSGuo Ren	range 1 256
224*f525bb2cSGuo Ren	default 32
225*f525bb2cSGuo Renendif
226*f525bb2cSGuo Ren
227c32e64e8SGuo Renconfig CPU_HAS_VDSP
228c32e64e8SGuo Ren	bool "CPU has VDSP coprocessor"
229c32e64e8SGuo Ren	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
230c32e64e8SGuo Ren
231c32e64e8SGuo Renconfig CPU_HAS_FPU
232c32e64e8SGuo Ren	bool "CPU has FPU coprocessor"
233c32e64e8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
234c32e64e8SGuo Ren
235c32e64e8SGuo Renconfig CPU_HAS_TEE
236c32e64e8SGuo Ren	bool "CPU has Trusted Execution Environment"
237c32e64e8SGuo Ren	depends on CPU_CK810
238c32e64e8SGuo Ren
239c32e64e8SGuo Renconfig SMP
240c32e64e8SGuo Ren	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
241c32e64e8SGuo Ren	depends on CPU_CK860
242c32e64e8SGuo Ren	default n
243c32e64e8SGuo Ren
244c32e64e8SGuo Renconfig NR_CPUS
245c32e64e8SGuo Ren	int "Maximum number of CPUs (2-32)"
246c32e64e8SGuo Ren	range 2 32
247c32e64e8SGuo Ren	depends on SMP
248c32e64e8SGuo Ren	default "2"
249c32e64e8SGuo Ren
250c32e64e8SGuo Renconfig HIGHMEM
251c32e64e8SGuo Ren	bool "High Memory Support"
252c32e64e8SGuo Ren	depends on !CPU_CK610
253c32e64e8SGuo Ren	default y
254c32e64e8SGuo Ren
255c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER
256c32e64e8SGuo Ren	int "Maximum zone order"
257c32e64e8SGuo Ren	default "11"
258c32e64e8SGuo Ren
259c32e64e8SGuo Renconfig RAM_BASE
260c32e64e8SGuo Ren	hex "DRAM start addr (the same with memory-section in dts)"
261c32e64e8SGuo Ren	default 0x0
262c32e64e8SGuo Ren
263859e5f45SGuo Renconfig HOTPLUG_CPU
264859e5f45SGuo Ren	bool "Support for hot-pluggable CPUs"
265859e5f45SGuo Ren	select GENERIC_IRQ_MIGRATION
266859e5f45SGuo Ren	depends on SMP
267859e5f45SGuo Ren	help
268859e5f45SGuo Ren	  Say Y here to allow turning CPUs off and on. CPUs can be
269859e5f45SGuo Ren	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
270859e5f45SGuo Ren
271859e5f45SGuo Ren	  Say N if you want to disable CPU hotplug.
272c32e64e8SGuo Renendmenu
273c32e64e8SGuo Ren
274c32e64e8SGuo Rensource "kernel/Kconfig.hz"
275