]> git.ipfire.org Git - thirdparty/linux.git/blame - arch/csky/Kconfig
Merge tag 'io_uring-5.7-2020-05-22' of git://git.kernel.dk/linux-block
[thirdparty/linux.git] / arch / csky / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
c32e64e8
GR
2config CSKY
3 def_bool y
942fa985 4 select ARCH_32BIT_OFF_T
13bf5ced 5 select ARCH_HAS_DMA_PREP_COHERENT
de863678 6 select ARCH_HAS_GCOV_PROFILE_ALL
c32e64e8
GR
7 select ARCH_HAS_SYNC_DMA_FOR_CPU
8 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
9 select ARCH_USE_BUILTIN_BSWAP
10 select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
18c07d23 11 select ARCH_WANT_FRAME_POINTERS if !CPU_CK610
c32e64e8
GR
12 select COMMON_CLK
13 select CLKSRC_MMIO
1994cc49
GR
14 select CSKY_MPINTC if CPU_CK860
15 select CSKY_MP_TIMER if CPU_CK860
16 select CSKY_APB_INTC
f04b951f 17 select DMA_DIRECT_REMAP
c32e64e8
GR
18 select IRQ_DOMAIN
19 select HANDLE_DOMAIN_IRQ
20 select DW_APB_TIMER_OF
0055f67b 21 select GENERIC_IOREMAP
c32e64e8
GR
22 select GENERIC_LIB_ASHLDI3
23 select GENERIC_LIB_ASHRDI3
24 select GENERIC_LIB_LSHRDI3
25 select GENERIC_LIB_MULDI3
26 select GENERIC_LIB_CMPDI2
27 select GENERIC_LIB_UCMPDI2
28 select GENERIC_ALLOCATOR
29 select GENERIC_ATOMIC64
30 select GENERIC_CLOCKEVENTS
31 select GENERIC_CPU_DEVICES
32 select GENERIC_IRQ_CHIP
33 select GENERIC_IRQ_PROBE
34 select GENERIC_IRQ_SHOW
35 select GENERIC_IRQ_MULTI_HANDLER
36 select GENERIC_SCHED_CLOCK
37 select GENERIC_SMP_IDLE_THREAD
1994cc49 38 select GX6605S_TIMER if CPU_CK610
c32e64e8 39 select HAVE_ARCH_TRACEHOOK
2f7932b0 40 select HAVE_ARCH_AUDITSYSCALL
0b9f386c 41 select HAVE_COPY_THREAD_TLS
18c07d23 42 select HAVE_DEBUG_BUGVERBOSE
28bb030f 43 select HAVE_DYNAMIC_FTRACE
89a3927a 44 select HAVE_DYNAMIC_FTRACE_WITH_REGS
230c77a5 45 select HAVE_FUNCTION_TRACER
d7950be1 46 select HAVE_FUNCTION_GRAPH_TRACER
28bb030f 47 select HAVE_FTRACE_MCOUNT_RECORD
c32e64e8
GR
48 select HAVE_KERNEL_GZIP
49 select HAVE_KERNEL_LZO
50 select HAVE_KERNEL_LZMA
33e53ae1
GR
51 select HAVE_KPROBES if !CPU_CK610
52 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
53 select HAVE_KRETPROBES if !CPU_CK610
f50fd2d8 54 select HAVE_PERF_EVENTS
daac95e7
MH
55 select HAVE_PERF_REGS
56 select HAVE_PERF_USER_STACK_DUMP
c32e64e8 57 select HAVE_DMA_CONTIGUOUS
bfe47f35 58 select HAVE_REGS_AND_STACK_ACCESS_API
9866d141 59 select HAVE_RSEQ
2f78c73f 60 select HAVE_STACKPROTECTOR
2f7932b0 61 select HAVE_SYSCALL_TRACEPOINTS
c32e64e8
GR
62 select MAY_HAVE_SPARSE_IRQ
63 select MODULES_USE_ELF_RELA if MODULES
c32e64e8
GR
64 select OF
65 select OF_EARLY_FLATTREE
f50fd2d8 66 select PERF_USE_VMALLOC if CPU_CK610
c32e64e8
GR
67 select RTC_LIB
68 select TIMER_OF
69 select USB_ARCH_HAS_EHCI
70 select USB_ARCH_HAS_OHCI
5b49c82d
M
71 select GENERIC_PCI_IOMAP
72 select HAVE_PCI
73 select PCI_DOMAINS_GENERIC if PCI
74 select PCI_SYSCALL if PCI
75 select PCI_MSI if PCI
c32e64e8 76
000591f1
GR
77config LOCKDEP_SUPPORT
78 def_bool y
79
8f6bb793
GR
80config ARCH_SUPPORTS_UPROBES
81 def_bool y if !CPU_CK610
82
c32e64e8
GR
83config CPU_HAS_CACHEV2
84 bool
85
86config CPU_HAS_FPUV2
87 bool
88
89config CPU_HAS_HILO
90 bool
91
92config CPU_HAS_TLBI
93 bool
94
95config CPU_HAS_LDSTEX
96 bool
97 help
bebd26ab 98 For SMP, CPU needs "ldex&stex" instructions for atomic operations.
c32e64e8
GR
99
100config CPU_NEED_TLBSYNC
101 bool
102
103config CPU_NEED_SOFTALIGN
104 bool
105
106config CPU_NO_USER_BKPT
107 bool
108 help
109 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
110 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
111 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
112 instruction exception.
113 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
114
115config GENERIC_CALIBRATE_DELAY
116 def_bool y
117
118config GENERIC_CSUM
119 def_bool y
120
121config GENERIC_HWEIGHT
122 def_bool y
123
124config MMU
125 def_bool y
126
0ea2dc7c
GR
127config STACKTRACE_SUPPORT
128 def_bool y
129
c32e64e8
GR
130config TIME_LOW_RES
131 def_bool y
132
133config TRACE_IRQFLAGS_SUPPORT
134 def_bool y
135
136config CPU_TLB_SIZE
137 int
138 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
139 default "1024" if (CPU_CK860)
140
141config CPU_ASID_BITS
142 int
143 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
144 default "12" if (CPU_CK860)
145
146config L1_CACHE_SHIFT
147 int
148 default "4" if (CPU_CK610)
149 default "5" if (CPU_CK807 || CPU_CK810)
150 default "6" if (CPU_CK860)
151
152menu "Processor type and features"
153
154choice
155 prompt "CPU MODEL"
156 default CPU_CK807
157
158config CPU_CK610
159 bool "CSKY CPU ck610"
160 select CPU_NEED_TLBSYNC
161 select CPU_NEED_SOFTALIGN
162 select CPU_NO_USER_BKPT
163
164config CPU_CK810
165 bool "CSKY CPU ck810"
166 select CPU_HAS_HILO
167 select CPU_NEED_TLBSYNC
168
169config CPU_CK807
170 bool "CSKY CPU ck807"
171 select CPU_HAS_HILO
172
173config CPU_CK860
174 bool "CSKY CPU ck860"
175 select CPU_HAS_TLBI
176 select CPU_HAS_CACHEV2
177 select CPU_HAS_LDSTEX
178 select CPU_HAS_FPUV2
179endchoice
180
f50fd2d8
GR
181choice
182 prompt "C-SKY PMU type"
183 depends on PERF_EVENTS
184 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
185
186config CPU_PMU_NONE
187 bool "None"
188
189config CSKY_PMU_V1
190 bool "Performance Monitoring Unit Ver.1"
191
192endchoice
193
c32e64e8
GR
194choice
195 prompt "Power Manager Instruction (wait/doze/stop)"
196 default CPU_PM_NONE
197
198config CPU_PM_NONE
199 bool "None"
200
201config CPU_PM_WAIT
202 bool "wait"
203
204config CPU_PM_DOZE
205 bool "doze"
206
207config CPU_PM_STOP
208 bool "stop"
209endchoice
210
f525bb2c
GR
211menuconfig HAVE_TCM
212 bool "Tightly-Coupled/Sram Memory"
f525bb2c
GR
213 select GENERIC_ALLOCATOR
214 help
215 The implementation are not only used by TCM (Tightly-Coupled Meory)
216 but also used by sram on SOC bus. It follow existed linux tcm
217 software interface, so that old tcm application codes could be
218 re-used directly.
219
220if HAVE_TCM
221config ITCM_RAM_BASE
222 hex "ITCM ram base"
223 default 0xffffffff
224
225config ITCM_NR_PAGES
226 int "Page count of ITCM size: NR*4KB"
227 range 1 256
228 default 32
229
230config HAVE_DTCM
231 bool "DTCM Support"
232
233config DTCM_RAM_BASE
234 hex "DTCM ram base"
235 depends on HAVE_DTCM
236 default 0xffffffff
237
238config DTCM_NR_PAGES
239 int "Page count of DTCM size: NR*4KB"
240 depends on HAVE_DTCM
241 range 1 256
242 default 32
243endif
244
c32e64e8
GR
245config CPU_HAS_VDSP
246 bool "CPU has VDSP coprocessor"
247 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
248
249config CPU_HAS_FPU
250 bool "CPU has FPU coprocessor"
251 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
252
761b4f69
GR
253config CPU_HAS_ICACHE_INS
254 bool "CPU has Icache invalidate instructions"
255 depends on CPU_HAS_CACHEV2
256
c32e64e8
GR
257config CPU_HAS_TEE
258 bool "CPU has Trusted Execution Environment"
259 depends on CPU_CK810
260
261config SMP
262 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
263 depends on CPU_CK860
264 default n
265
266config NR_CPUS
267 int "Maximum number of CPUs (2-32)"
268 range 2 32
269 depends on SMP
270 default "2"
271
272config HIGHMEM
273 bool "High Memory Support"
274 depends on !CPU_CK610
275 default y
276
277config FORCE_MAX_ZONEORDER
278 int "Maximum zone order"
279 default "11"
280
281config RAM_BASE
282 hex "DRAM start addr (the same with memory-section in dts)"
283 default 0x0
284
859e5f45
GR
285config HOTPLUG_CPU
286 bool "Support for hot-pluggable CPUs"
287 select GENERIC_IRQ_MIGRATION
288 depends on SMP
289 help
290 Say Y here to allow turning CPUs off and on. CPUs can be
291 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
292
293 Say N if you want to disable CPU hotplug.
c32e64e8
GR
294endmenu
295
a736fa1e
GR
296source "arch/csky/Kconfig.platforms"
297
c32e64e8 298source "kernel/Kconfig.hz"