]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/csky/Kconfig
treewide: Add SPDX license identifier - Makefile/Kconfig
[mirror_ubuntu-focal-kernel.git] / arch / csky / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config CSKY
3 def_bool y
4 select ARCH_32BIT_OFF_T
5 select ARCH_HAS_DMA_PREP_COHERENT
6 select ARCH_HAS_SYNC_DMA_FOR_CPU
7 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
8 select ARCH_USE_BUILTIN_BSWAP
9 select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
10 select COMMON_CLK
11 select CLKSRC_MMIO
12 select CLKSRC_OF
13 select DMA_DIRECT_REMAP
14 select IRQ_DOMAIN
15 select HANDLE_DOMAIN_IRQ
16 select DW_APB_TIMER_OF
17 select GENERIC_LIB_ASHLDI3
18 select GENERIC_LIB_ASHRDI3
19 select GENERIC_LIB_LSHRDI3
20 select GENERIC_LIB_MULDI3
21 select GENERIC_LIB_CMPDI2
22 select GENERIC_LIB_UCMPDI2
23 select GENERIC_ALLOCATOR
24 select GENERIC_ATOMIC64
25 select GENERIC_CLOCKEVENTS
26 select GENERIC_CPU_DEVICES
27 select GENERIC_IRQ_CHIP
28 select GENERIC_IRQ_PROBE
29 select GENERIC_IRQ_SHOW
30 select GENERIC_IRQ_MULTI_HANDLER
31 select GENERIC_SCHED_CLOCK
32 select GENERIC_SMP_IDLE_THREAD
33 select HAVE_ARCH_TRACEHOOK
34 select HAVE_ARCH_AUDITSYSCALL
35 select HAVE_DYNAMIC_FTRACE
36 select HAVE_FUNCTION_TRACER
37 select HAVE_FUNCTION_GRAPH_TRACER
38 select HAVE_FTRACE_MCOUNT_RECORD
39 select HAVE_KERNEL_GZIP
40 select HAVE_KERNEL_LZO
41 select HAVE_KERNEL_LZMA
42 select HAVE_PERF_EVENTS
43 select HAVE_PERF_REGS
44 select HAVE_PERF_USER_STACK_DUMP
45 select HAVE_DMA_API_DEBUG
46 select HAVE_DMA_CONTIGUOUS
47 select HAVE_SYSCALL_TRACEPOINTS
48 select MAY_HAVE_SPARSE_IRQ
49 select MODULES_USE_ELF_RELA if MODULES
50 select OF
51 select OF_EARLY_FLATTREE
52 select PERF_USE_VMALLOC if CPU_CK610
53 select RTC_LIB
54 select TIMER_OF
55 select USB_ARCH_HAS_EHCI
56 select USB_ARCH_HAS_OHCI
57
58 config CPU_HAS_CACHEV2
59 bool
60
61 config CPU_HAS_FPUV2
62 bool
63
64 config CPU_HAS_HILO
65 bool
66
67 config CPU_HAS_TLBI
68 bool
69
70 config CPU_HAS_LDSTEX
71 bool
72 help
73 For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
74
75 config CPU_NEED_TLBSYNC
76 bool
77
78 config CPU_NEED_SOFTALIGN
79 bool
80
81 config CPU_NO_USER_BKPT
82 bool
83 help
84 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
85 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
86 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
87 instruction exception.
88 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
89
90 config GENERIC_CALIBRATE_DELAY
91 def_bool y
92
93 config GENERIC_CSUM
94 def_bool y
95
96 config GENERIC_HWEIGHT
97 def_bool y
98
99 config MMU
100 def_bool y
101
102 config STACKTRACE_SUPPORT
103 def_bool y
104
105 config TIME_LOW_RES
106 def_bool y
107
108 config TRACE_IRQFLAGS_SUPPORT
109 def_bool y
110
111 config CPU_TLB_SIZE
112 int
113 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
114 default "1024" if (CPU_CK860)
115
116 config CPU_ASID_BITS
117 int
118 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
119 default "12" if (CPU_CK860)
120
121 config L1_CACHE_SHIFT
122 int
123 default "4" if (CPU_CK610)
124 default "5" if (CPU_CK807 || CPU_CK810)
125 default "6" if (CPU_CK860)
126
127 menu "Processor type and features"
128
129 choice
130 prompt "CPU MODEL"
131 default CPU_CK807
132
133 config CPU_CK610
134 bool "CSKY CPU ck610"
135 select CPU_NEED_TLBSYNC
136 select CPU_NEED_SOFTALIGN
137 select CPU_NO_USER_BKPT
138
139 config CPU_CK810
140 bool "CSKY CPU ck810"
141 select CPU_HAS_HILO
142 select CPU_NEED_TLBSYNC
143
144 config CPU_CK807
145 bool "CSKY CPU ck807"
146 select CPU_HAS_HILO
147
148 config CPU_CK860
149 bool "CSKY CPU ck860"
150 select CPU_HAS_TLBI
151 select CPU_HAS_CACHEV2
152 select CPU_HAS_LDSTEX
153 select CPU_HAS_FPUV2
154 endchoice
155
156 choice
157 prompt "C-SKY PMU type"
158 depends on PERF_EVENTS
159 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
160
161 config CPU_PMU_NONE
162 bool "None"
163
164 config CSKY_PMU_V1
165 bool "Performance Monitoring Unit Ver.1"
166
167 endchoice
168
169 choice
170 prompt "Power Manager Instruction (wait/doze/stop)"
171 default CPU_PM_NONE
172
173 config CPU_PM_NONE
174 bool "None"
175
176 config CPU_PM_WAIT
177 bool "wait"
178
179 config CPU_PM_DOZE
180 bool "doze"
181
182 config CPU_PM_STOP
183 bool "stop"
184 endchoice
185
186 config CPU_HAS_VDSP
187 bool "CPU has VDSP coprocessor"
188 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
189
190 config CPU_HAS_FPU
191 bool "CPU has FPU coprocessor"
192 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
193
194 config CPU_HAS_TEE
195 bool "CPU has Trusted Execution Environment"
196 depends on CPU_CK810
197
198 config SMP
199 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
200 depends on CPU_CK860
201 default n
202
203 config NR_CPUS
204 int "Maximum number of CPUs (2-32)"
205 range 2 32
206 depends on SMP
207 default "2"
208
209 config HIGHMEM
210 bool "High Memory Support"
211 depends on !CPU_CK610
212 default y
213
214 config FORCE_MAX_ZONEORDER
215 int "Maximum zone order"
216 default "11"
217
218 config RAM_BASE
219 hex "DRAM start addr (the same with memory-section in dts)"
220 default 0x0
221
222 config HOTPLUG_CPU
223 bool "Support for hot-pluggable CPUs"
224 select GENERIC_IRQ_MIGRATION
225 depends on SMP
226 help
227 Say Y here to allow turning CPUs off and on. CPUs can be
228 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
229
230 Say N if you want to disable CPU hotplug.
231 endmenu
232
233 source "kernel/Kconfig.hz"