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
11 select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace)
12 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
15 select CSKY_MPINTC if CPU_CK860
16 select CSKY_MP_TIMER if CPU_CK860
18 select DMA_DIRECT_REMAP
20 select DW_APB_TIMER_OF
21 select GENERIC_IOREMAP
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_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 GENERIC_TIME_VSYSCALL
38 select GENERIC_VDSO_32
39 select GENERIC_GETTIMEOFDAY
40 select GX6605S_TIMER if CPU_CK610
41 select HAVE_ARCH_TRACEHOOK
42 select HAVE_ARCH_AUDITSYSCALL
43 select HAVE_ARCH_MMAP_RND_BITS
44 select HAVE_ARCH_SECCOMP_FILTER
45 select HAVE_CONTEXT_TRACKING_USER
46 select HAVE_VIRT_CPU_ACCOUNTING_GEN
47 select HAVE_DEBUG_BUGVERBOSE
48 select HAVE_DEBUG_KMEMLEAK
49 select HAVE_DYNAMIC_FTRACE
50 select HAVE_DYNAMIC_FTRACE_WITH_REGS
51 select HAVE_GENERIC_VDSO
52 select HAVE_FUNCTION_TRACER
53 select HAVE_FUNCTION_GRAPH_TRACER
54 select HAVE_FUNCTION_ERROR_INJECTION
55 select HAVE_FTRACE_MCOUNT_RECORD
56 select HAVE_KERNEL_GZIP
57 select HAVE_KERNEL_LZO
58 select HAVE_KERNEL_LZMA
59 select HAVE_KPROBES if !CPU_CK610
60 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
61 select HAVE_KRETPROBES if !CPU_CK610
62 select HAVE_PERF_EVENTS
64 select HAVE_PERF_USER_STACK_DUMP
65 select HAVE_DMA_CONTIGUOUS
66 select HAVE_REGS_AND_STACK_ACCESS_API
68 select HAVE_STACKPROTECTOR
69 select HAVE_SYSCALL_TRACEPOINTS
70 select MAY_HAVE_SPARSE_IRQ
71 select MODULES_USE_ELF_RELA if MODULES
73 select OF_EARLY_FLATTREE
74 select PERF_USE_VMALLOC if CPU_CK610
77 select GENERIC_PCI_IOMAP
79 select PCI_DOMAINS_GENERIC if PCI
80 select PCI_SYSCALL if PCI
82 select TRACE_IRQFLAGS_SUPPORT
84 config LOCKDEP_SUPPORT
87 config ARCH_SUPPORTS_UPROBES
88 def_bool y if !CPU_CK610
90 config CPU_HAS_CACHEV2
102 config CPU_HAS_LDSTEX
105 For SMP, CPU needs "ldex&stex" instructions for atomic operations.
107 config CPU_NEED_TLBSYNC
110 config CPU_NEED_SOFTALIGN
113 config CPU_NO_USER_BKPT
116 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
117 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
118 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
119 instruction exception.
120 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
122 config GENERIC_CALIBRATE_DELAY
128 config GENERIC_HWEIGHT
134 config STACKTRACE_SUPPORT
142 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
143 default "1024" if (CPU_CK860)
147 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
148 default "12" if (CPU_CK860)
150 config L1_CACHE_SHIFT
152 default "4" if (CPU_CK610)
153 default "5" if (CPU_CK807 || CPU_CK810)
154 default "6" if (CPU_CK860)
156 config ARCH_MMAP_RND_BITS_MIN
159 # max bits determined by the following formula:
160 # VA_BITS - PAGE_SHIFT - 3
161 config ARCH_MMAP_RND_BITS_MAX
164 menu "Processor type and features"
171 bool "CSKY CPU ck610"
172 select CPU_NEED_TLBSYNC
173 select CPU_NEED_SOFTALIGN
174 select CPU_NO_USER_BKPT
177 bool "CSKY CPU ck810"
179 select CPU_NEED_TLBSYNC
182 bool "CSKY CPU ck807"
186 bool "CSKY CPU ck860"
188 select CPU_HAS_CACHEV2
189 select CPU_HAS_LDSTEX
195 default PAGE_OFFSET_80000000
197 config PAGE_OFFSET_80000000
198 bool "PAGE OFFSET 2G (user:kernel = 2:2)"
200 config PAGE_OFFSET_A0000000
201 bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)"
206 default 0x80000000 if PAGE_OFFSET_80000000
207 default 0xa0000000 if PAGE_OFFSET_A0000000
210 prompt "C-SKY PMU type"
211 depends on PERF_EVENTS
212 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
218 bool "Performance Monitoring Unit Ver.1"
223 prompt "Power Manager Instruction (wait/doze/stop)"
240 bool "Tightly-Coupled/Sram Memory"
241 depends on !COMPILE_TEST
243 The implementation are not only used by TCM (Tightly-Coupled Meory)
244 but also used by sram on SOC bus. It follow existed linux tcm
245 software interface, so that old tcm application codes could be
254 int "Page count of ITCM size: NR*4KB"
267 int "Page count of DTCM size: NR*4KB"
274 bool "CPU has VDSP coprocessor"
275 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
278 bool "CPU has FPU coprocessor"
279 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
281 config CPU_HAS_ICACHE_INS
282 bool "CPU has Icache invalidate instructions"
283 depends on CPU_HAS_CACHEV2
286 bool "CPU has Trusted Execution Environment"
290 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
295 int "Maximum number of CPUs (2-32)"
301 bool "High Memory Support"
302 depends on !CPU_CK610
306 config FORCE_MAX_ZONEORDER
307 int "Maximum zone order"
311 hex "DRAM start addr (the same with memory-section in dts)"
315 bool "Support for hot-pluggable CPUs"
316 select GENERIC_IRQ_MIGRATION
319 Say Y here to allow turning CPUs off and on. CPUs can be
320 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
322 Say N if you want to disable CPU hotplug.
324 config HAVE_EFFICIENT_UNALIGNED_STRING_OPS
325 bool "Enable EFFICIENT_UNALIGNED_STRING_OPS for abiv2"
326 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
328 Say Y here to enable EFFICIENT_UNALIGNED_STRING_OPS. Some CPU models could
329 deal with unaligned access by hardware.
333 source "arch/csky/Kconfig.platforms"
335 source "kernel/Kconfig.hz"