treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 113
[sfrench/cifs-2.6.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"