1 # SPDX-License-Identifier: GPL-2.0-only
4 select ARCH_32BIT_OFF_T
5 select ARCH_HAS_DMA_PREP_COHERENT
6 select ARCH_HAS_GCOV_PROFILE_ALL
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
13 select CSKY_MPINTC if CPU_CK860
14 select CSKY_MP_TIMER if CPU_CK860
16 select DMA_DIRECT_REMAP
18 select HANDLE_DOMAIN_IRQ
19 select DW_APB_TIMER_OF
20 select GENERIC_IOREMAP
21 select GENERIC_LIB_ASHLDI3
22 select GENERIC_LIB_ASHRDI3
23 select GENERIC_LIB_LSHRDI3
24 select GENERIC_LIB_MULDI3
25 select GENERIC_LIB_CMPDI2
26 select GENERIC_LIB_UCMPDI2
27 select GENERIC_ALLOCATOR
28 select GENERIC_ATOMIC64
29 select GENERIC_CLOCKEVENTS
30 select GENERIC_CPU_DEVICES
31 select GENERIC_IRQ_CHIP
32 select GENERIC_IRQ_PROBE
33 select GENERIC_IRQ_SHOW
34 select GENERIC_IRQ_MULTI_HANDLER
35 select GENERIC_SCHED_CLOCK
36 select GENERIC_SMP_IDLE_THREAD
37 select GX6605S_TIMER if CPU_CK610
38 select HAVE_ARCH_TRACEHOOK
39 select HAVE_ARCH_AUDITSYSCALL
40 select HAVE_COPY_THREAD_TLS
41 select HAVE_DYNAMIC_FTRACE
42 select HAVE_DYNAMIC_FTRACE_WITH_REGS
43 select HAVE_FUNCTION_TRACER
44 select HAVE_FUNCTION_GRAPH_TRACER
45 select HAVE_FTRACE_MCOUNT_RECORD
46 select HAVE_KERNEL_GZIP
47 select HAVE_KERNEL_LZO
48 select HAVE_KERNEL_LZMA
49 select HAVE_KPROBES if !CPU_CK610
50 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
51 select HAVE_KRETPROBES if !CPU_CK610
52 select HAVE_PERF_EVENTS
54 select HAVE_PERF_USER_STACK_DUMP
55 select HAVE_DMA_CONTIGUOUS
56 select HAVE_REGS_AND_STACK_ACCESS_API
58 select HAVE_STACKPROTECTOR
59 select HAVE_SYSCALL_TRACEPOINTS
60 select MAY_HAVE_SPARSE_IRQ
61 select MODULES_USE_ELF_RELA if MODULES
63 select OF_EARLY_FLATTREE
64 select PERF_USE_VMALLOC if CPU_CK610
67 select USB_ARCH_HAS_EHCI
68 select USB_ARCH_HAS_OHCI
69 select GENERIC_PCI_IOMAP
71 select PCI_DOMAINS_GENERIC if PCI
72 select PCI_SYSCALL if PCI
75 config LOCKDEP_SUPPORT
78 config ARCH_SUPPORTS_UPROBES
79 def_bool y if !CPU_CK610
81 config CPU_HAS_CACHEV2
96 For SMP, CPU needs "ldex&stex" instructions for atomic operations.
98 config CPU_NEED_TLBSYNC
101 config CPU_NEED_SOFTALIGN
104 config CPU_NO_USER_BKPT
107 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
108 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
109 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
110 instruction exception.
111 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
113 config GENERIC_CALIBRATE_DELAY
119 config GENERIC_HWEIGHT
125 config STACKTRACE_SUPPORT
131 config TRACE_IRQFLAGS_SUPPORT
136 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
137 default "1024" if (CPU_CK860)
141 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
142 default "12" if (CPU_CK860)
144 config L1_CACHE_SHIFT
146 default "4" if (CPU_CK610)
147 default "5" if (CPU_CK807 || CPU_CK810)
148 default "6" if (CPU_CK860)
150 menu "Processor type and features"
157 bool "CSKY CPU ck610"
158 select CPU_NEED_TLBSYNC
159 select CPU_NEED_SOFTALIGN
160 select CPU_NO_USER_BKPT
163 bool "CSKY CPU ck810"
165 select CPU_NEED_TLBSYNC
168 bool "CSKY CPU ck807"
172 bool "CSKY CPU ck860"
174 select CPU_HAS_CACHEV2
175 select CPU_HAS_LDSTEX
180 prompt "C-SKY PMU type"
181 depends on PERF_EVENTS
182 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
188 bool "Performance Monitoring Unit Ver.1"
193 prompt "Power Manager Instruction (wait/doze/stop)"
210 bool "Tightly-Coupled/Sram Memory"
211 select GENERIC_ALLOCATOR
213 The implementation are not only used by TCM (Tightly-Coupled Meory)
214 but also used by sram on SOC bus. It follow existed linux tcm
215 software interface, so that old tcm application codes could be
224 int "Page count of ITCM size: NR*4KB"
237 int "Page count of DTCM size: NR*4KB"
244 bool "CPU has VDSP coprocessor"
245 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
248 bool "CPU has FPU coprocessor"
249 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
251 config CPU_HAS_ICACHE_INS
252 bool "CPU has Icache invalidate instructions"
253 depends on CPU_HAS_CACHEV2
256 bool "CPU has Trusted Execution Environment"
260 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
265 int "Maximum number of CPUs (2-32)"
271 bool "High Memory Support"
272 depends on !CPU_CK610
275 config FORCE_MAX_ZONEORDER
276 int "Maximum zone order"
280 hex "DRAM start addr (the same with memory-section in dts)"
284 bool "Support for hot-pluggable CPUs"
285 select GENERIC_IRQ_MIGRATION
288 Say Y here to allow turning CPUs off and on. CPUs can be
289 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
291 Say N if you want to disable CPU hotplug.
294 source "arch/csky/Kconfig.platforms"
296 source "kernel/Kconfig.hz"