]>
Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
c32e64e8 GR |
2 | config 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 |
77 | config LOCKDEP_SUPPORT |
78 | def_bool y | |
79 | ||
8f6bb793 GR |
80 | config ARCH_SUPPORTS_UPROBES |
81 | def_bool y if !CPU_CK610 | |
82 | ||
c32e64e8 GR |
83 | config CPU_HAS_CACHEV2 |
84 | bool | |
85 | ||
86 | config CPU_HAS_FPUV2 | |
87 | bool | |
88 | ||
89 | config CPU_HAS_HILO | |
90 | bool | |
91 | ||
92 | config CPU_HAS_TLBI | |
93 | bool | |
94 | ||
95 | config CPU_HAS_LDSTEX | |
96 | bool | |
97 | help | |
bebd26ab | 98 | For SMP, CPU needs "ldex&stex" instructions for atomic operations. |
c32e64e8 GR |
99 | |
100 | config CPU_NEED_TLBSYNC | |
101 | bool | |
102 | ||
103 | config CPU_NEED_SOFTALIGN | |
104 | bool | |
105 | ||
106 | config 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 | ||
115 | config GENERIC_CALIBRATE_DELAY | |
116 | def_bool y | |
117 | ||
118 | config GENERIC_CSUM | |
119 | def_bool y | |
120 | ||
121 | config GENERIC_HWEIGHT | |
122 | def_bool y | |
123 | ||
124 | config MMU | |
125 | def_bool y | |
126 | ||
0ea2dc7c GR |
127 | config STACKTRACE_SUPPORT |
128 | def_bool y | |
129 | ||
c32e64e8 GR |
130 | config TIME_LOW_RES |
131 | def_bool y | |
132 | ||
133 | config TRACE_IRQFLAGS_SUPPORT | |
134 | def_bool y | |
135 | ||
136 | config CPU_TLB_SIZE | |
137 | int | |
138 | default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) | |
139 | default "1024" if (CPU_CK860) | |
140 | ||
141 | config CPU_ASID_BITS | |
142 | int | |
143 | default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) | |
144 | default "12" if (CPU_CK860) | |
145 | ||
146 | config 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 | ||
152 | menu "Processor type and features" | |
153 | ||
154 | choice | |
155 | prompt "CPU MODEL" | |
156 | default CPU_CK807 | |
157 | ||
158 | config CPU_CK610 | |
159 | bool "CSKY CPU ck610" | |
160 | select CPU_NEED_TLBSYNC | |
161 | select CPU_NEED_SOFTALIGN | |
162 | select CPU_NO_USER_BKPT | |
163 | ||
164 | config CPU_CK810 | |
165 | bool "CSKY CPU ck810" | |
166 | select CPU_HAS_HILO | |
167 | select CPU_NEED_TLBSYNC | |
168 | ||
169 | config CPU_CK807 | |
170 | bool "CSKY CPU ck807" | |
171 | select CPU_HAS_HILO | |
172 | ||
173 | config 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 | |
179 | endchoice | |
180 | ||
f50fd2d8 GR |
181 | choice |
182 | prompt "C-SKY PMU type" | |
183 | depends on PERF_EVENTS | |
184 | depends on CPU_CK807 || CPU_CK810 || CPU_CK860 | |
185 | ||
186 | config CPU_PMU_NONE | |
187 | bool "None" | |
188 | ||
189 | config CSKY_PMU_V1 | |
190 | bool "Performance Monitoring Unit Ver.1" | |
191 | ||
192 | endchoice | |
193 | ||
c32e64e8 GR |
194 | choice |
195 | prompt "Power Manager Instruction (wait/doze/stop)" | |
196 | default CPU_PM_NONE | |
197 | ||
198 | config CPU_PM_NONE | |
199 | bool "None" | |
200 | ||
201 | config CPU_PM_WAIT | |
202 | bool "wait" | |
203 | ||
204 | config CPU_PM_DOZE | |
205 | bool "doze" | |
206 | ||
207 | config CPU_PM_STOP | |
208 | bool "stop" | |
209 | endchoice | |
210 | ||
f525bb2c GR |
211 | menuconfig 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 | ||
220 | if HAVE_TCM | |
221 | config ITCM_RAM_BASE | |
222 | hex "ITCM ram base" | |
223 | default 0xffffffff | |
224 | ||
225 | config ITCM_NR_PAGES | |
226 | int "Page count of ITCM size: NR*4KB" | |
227 | range 1 256 | |
228 | default 32 | |
229 | ||
230 | config HAVE_DTCM | |
231 | bool "DTCM Support" | |
232 | ||
233 | config DTCM_RAM_BASE | |
234 | hex "DTCM ram base" | |
235 | depends on HAVE_DTCM | |
236 | default 0xffffffff | |
237 | ||
238 | config DTCM_NR_PAGES | |
239 | int "Page count of DTCM size: NR*4KB" | |
240 | depends on HAVE_DTCM | |
241 | range 1 256 | |
242 | default 32 | |
243 | endif | |
244 | ||
c32e64e8 GR |
245 | config CPU_HAS_VDSP |
246 | bool "CPU has VDSP coprocessor" | |
247 | depends on CPU_HAS_FPU && CPU_HAS_FPUV2 | |
248 | ||
249 | config CPU_HAS_FPU | |
250 | bool "CPU has FPU coprocessor" | |
251 | depends on CPU_CK807 || CPU_CK810 || CPU_CK860 | |
252 | ||
761b4f69 GR |
253 | config CPU_HAS_ICACHE_INS |
254 | bool "CPU has Icache invalidate instructions" | |
255 | depends on CPU_HAS_CACHEV2 | |
256 | ||
c32e64e8 GR |
257 | config CPU_HAS_TEE |
258 | bool "CPU has Trusted Execution Environment" | |
259 | depends on CPU_CK810 | |
260 | ||
261 | config SMP | |
262 | bool "Symmetric Multi-Processing (SMP) support for C-SKY" | |
263 | depends on CPU_CK860 | |
264 | default n | |
265 | ||
266 | config NR_CPUS | |
267 | int "Maximum number of CPUs (2-32)" | |
268 | range 2 32 | |
269 | depends on SMP | |
270 | default "2" | |
271 | ||
272 | config HIGHMEM | |
273 | bool "High Memory Support" | |
274 | depends on !CPU_CK610 | |
275 | default y | |
276 | ||
277 | config FORCE_MAX_ZONEORDER | |
278 | int "Maximum zone order" | |
279 | default "11" | |
280 | ||
281 | config RAM_BASE | |
282 | hex "DRAM start addr (the same with memory-section in dts)" | |
283 | default 0x0 | |
284 | ||
859e5f45 GR |
285 | config 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 |
294 | endmenu |
295 | ||
a736fa1e GR |
296 | source "arch/csky/Kconfig.platforms" |
297 | ||
c32e64e8 | 298 | source "kernel/Kconfig.hz" |