1 # SPDX-License-Identifier: GPL-2.0-only
4 select ARCH_32BIT_OFF_T
5 select ARCH_HAS_CPU_CACHE_ALIASING
6 select ARCH_HAS_DMA_PREP_COHERENT
7 select ARCH_HAS_GCOV_PROFILE_ALL
8 select ARCH_HAS_SYNC_DMA_FOR_CPU
9 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
10 select ARCH_USE_BUILTIN_BSWAP
11 select ARCH_USE_QUEUED_RWLOCKS
12 select ARCH_USE_QUEUED_SPINLOCKS
13 select ARCH_HAS_CURRENT_STACK_POINTER
14 select ARCH_INLINE_READ_LOCK if !PREEMPTION
15 select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
16 select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
17 select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION
18 select ARCH_INLINE_READ_UNLOCK if !PREEMPTION
19 select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION
20 select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION
21 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION
22 select ARCH_INLINE_WRITE_LOCK if !PREEMPTION
23 select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION
24 select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION
25 select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION
26 select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION
27 select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION
28 select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION
29 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION
30 select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION
31 select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION
32 select ARCH_INLINE_SPIN_LOCK if !PREEMPTION
33 select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION
34 select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION
35 select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION
36 select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION
37 select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION
38 select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION
39 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION
40 select ARCH_NEED_CMPXCHG_1_EMU
41 select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace)
42 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
45 select CSKY_MPINTC if CPU_CK860
46 select CSKY_MP_TIMER if CPU_CK860
48 select DMA_DIRECT_REMAP
50 select DW_APB_TIMER_OF
51 select GENERIC_IOREMAP
52 select GENERIC_LIB_ASHLDI3
53 select GENERIC_LIB_ASHRDI3
54 select GENERIC_LIB_LSHRDI3
55 select GENERIC_LIB_MULDI3
56 select GENERIC_LIB_CMPDI2
57 select GENERIC_LIB_UCMPDI2
58 select GENERIC_ALLOCATOR
59 select GENERIC_ATOMIC64
60 select GENERIC_CPU_DEVICES
61 select GENERIC_IRQ_CHIP
62 select GENERIC_IRQ_PROBE
63 select GENERIC_IRQ_SHOW
64 select GENERIC_IRQ_MULTI_HANDLER
65 select GENERIC_SCHED_CLOCK
66 select GENERIC_SMP_IDLE_THREAD
67 select GENERIC_TIME_VSYSCALL
68 select GENERIC_VDSO_32
69 select GENERIC_GETTIMEOFDAY
70 select GX6605S_TIMER if CPU_CK610
71 select HAVE_ARCH_TRACEHOOK
72 select HAVE_ARCH_AUDITSYSCALL
73 select HAVE_ARCH_JUMP_LABEL if !CPU_CK610
74 select HAVE_ARCH_JUMP_LABEL_RELATIVE
75 select HAVE_ARCH_MMAP_RND_BITS
76 select HAVE_ARCH_SECCOMP_FILTER
77 select HAVE_CONTEXT_TRACKING_USER
78 select HAVE_VIRT_CPU_ACCOUNTING_GEN
79 select HAVE_DEBUG_BUGVERBOSE
80 select HAVE_DEBUG_KMEMLEAK
81 select HAVE_DYNAMIC_FTRACE
82 select HAVE_DYNAMIC_FTRACE_WITH_REGS
83 select HAVE_GENERIC_VDSO
84 select HAVE_FUNCTION_TRACER
85 select HAVE_FUNCTION_GRAPH_TRACER
86 select HAVE_FUNCTION_ERROR_INJECTION
87 select HAVE_FTRACE_MCOUNT_RECORD
88 select HAVE_KERNEL_GZIP
89 select HAVE_KERNEL_LZO
90 select HAVE_KERNEL_LZMA
91 select HAVE_KPROBES if !CPU_CK610
92 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
93 select HAVE_KRETPROBES if !CPU_CK610
94 select HAVE_PAGE_SIZE_4KB
95 select HAVE_PERF_EVENTS
97 select HAVE_PERF_USER_STACK_DUMP
98 select HAVE_DMA_CONTIGUOUS
99 select HAVE_REGS_AND_STACK_ACCESS_API
100 select HAVE_STACKPROTECTOR
101 select HAVE_SYSCALL_TRACEPOINTS
102 select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU
103 select LOCK_MM_AND_FIND_VMA
104 select MAY_HAVE_SPARSE_IRQ
105 select MODULES_USE_ELF_RELA if MODULES
107 select OF_EARLY_FLATTREE
108 select PERF_USE_VMALLOC if CPU_CK610
111 select GENERIC_PCI_IOMAP
113 select PCI_DOMAINS_GENERIC if PCI
114 select PCI_SYSCALL if PCI
115 select PCI_MSI if PCI
116 select TRACE_IRQFLAGS_SUPPORT
118 config LOCKDEP_SUPPORT
121 config ARCH_SUPPORTS_UPROBES
122 def_bool y if !CPU_CK610
124 config CPU_HAS_CACHEV2
136 config CPU_HAS_LDSTEX
139 For SMP, CPU needs "ldex&stex" instructions for atomic operations.
141 config CPU_NEED_TLBSYNC
144 config CPU_NEED_SOFTALIGN
147 config CPU_NO_USER_BKPT
150 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
151 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
152 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
153 instruction exception.
154 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
156 config GENERIC_CALIBRATE_DELAY
162 config GENERIC_HWEIGHT
168 config STACKTRACE_SUPPORT
176 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
177 default "12" if (CPU_CK860)
179 config L1_CACHE_SHIFT
181 default "4" if (CPU_CK610)
182 default "5" if (CPU_CK807 || CPU_CK810)
183 default "6" if (CPU_CK860)
185 config ARCH_MMAP_RND_BITS_MIN
188 # max bits determined by the following formula:
189 # VA_BITS - PAGE_SHIFT - 3
190 config ARCH_MMAP_RND_BITS_MAX
193 menu "Processor type and features"
200 bool "CSKY CPU ck610"
201 select CPU_NEED_TLBSYNC
202 select CPU_NEED_SOFTALIGN
203 select CPU_NO_USER_BKPT
206 bool "CSKY CPU ck810"
208 select CPU_NEED_TLBSYNC
211 bool "CSKY CPU ck807"
215 bool "CSKY CPU ck860"
217 select CPU_HAS_CACHEV2
218 select CPU_HAS_LDSTEX
224 default PAGE_OFFSET_80000000
226 config PAGE_OFFSET_80000000
227 bool "PAGE OFFSET 2G (user:kernel = 2:2)"
229 config PAGE_OFFSET_A0000000
230 bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)"
235 default 0x80000000 if PAGE_OFFSET_80000000
236 default 0xa0000000 if PAGE_OFFSET_A0000000
239 prompt "C-SKY PMU type"
240 depends on PERF_EVENTS
241 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
247 bool "Performance Monitoring Unit Ver.1"
252 prompt "Power Manager Instruction (wait/doze/stop)"
269 bool "Tightly-Coupled/Sram Memory"
270 depends on !COMPILE_TEST
272 The implementation are not only used by TCM (Tightly-Coupled Memory)
273 but also used by sram on SOC bus. It follow existed linux tcm
274 software interface, so that old tcm application codes could be
283 int "Page count of ITCM size: NR*4KB"
296 int "Page count of DTCM size: NR*4KB"
303 bool "CPU has VDSP coprocessor"
304 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
307 bool "CPU has FPU coprocessor"
308 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
310 config CPU_HAS_ICACHE_INS
311 bool "CPU has Icache invalidate instructions"
312 depends on CPU_HAS_CACHEV2
315 bool "CPU has Trusted Execution Environment"
319 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
324 int "Maximum number of CPUs (2-32)"
330 bool "High Memory Support"
331 depends on !CPU_CK610
336 hex "DRAM start addr (the same with memory-section in dts)"
340 bool "Support for hot-pluggable CPUs"
341 select GENERIC_IRQ_MIGRATION
344 Say Y here to allow turning CPUs off and on. CPUs can be
345 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
347 Say N if you want to disable CPU hotplug.
349 config HAVE_EFFICIENT_UNALIGNED_STRING_OPS
350 bool "Enable EFFICIENT_UNALIGNED_STRING_OPS for abiv2"
351 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
353 Say Y here to enable EFFICIENT_UNALIGNED_STRING_OPS. Some CPU models could
354 deal with unaligned access by hardware.
358 source "arch/csky/Kconfig.platforms"
360 source "kernel/Kconfig.hz"