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
11 select ARCH_WANT_FRAME_POINTERS if !CPU_CK610
14 select CSKY_MPINTC if CPU_CK860
15 select CSKY_MP_TIMER if CPU_CK860
17 select DMA_DIRECT_REMAP
19 select HANDLE_DOMAIN_IRQ
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_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
38 select GX6605S_TIMER if CPU_CK610
39 select HAVE_ARCH_TRACEHOOK
40 select HAVE_ARCH_AUDITSYSCALL
41 select HAVE_ARCH_SECCOMP_FILTER
42 select HAVE_COPY_THREAD_TLS
43 select HAVE_DEBUG_BUGVERBOSE
44 select HAVE_DYNAMIC_FTRACE
45 select HAVE_DYNAMIC_FTRACE_WITH_REGS
46 select HAVE_FUNCTION_TRACER
47 select HAVE_FUNCTION_GRAPH_TRACER
48 select HAVE_FUNCTION_ERROR_INJECTION
49 select HAVE_FTRACE_MCOUNT_RECORD
50 select HAVE_KERNEL_GZIP
51 select HAVE_KERNEL_LZO
52 select HAVE_KERNEL_LZMA
53 select HAVE_KPROBES if !CPU_CK610
54 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
55 select HAVE_KRETPROBES if !CPU_CK610
56 select HAVE_PERF_EVENTS
58 select HAVE_PERF_USER_STACK_DUMP
59 select HAVE_DMA_CONTIGUOUS
60 select HAVE_REGS_AND_STACK_ACCESS_API
62 select HAVE_STACKPROTECTOR
63 select HAVE_SYSCALL_TRACEPOINTS
64 select MAY_HAVE_SPARSE_IRQ
65 select MODULES_USE_ELF_RELA if MODULES
67 select OF_EARLY_FLATTREE
68 select PERF_USE_VMALLOC if CPU_CK610
71 select USB_ARCH_HAS_EHCI
72 select USB_ARCH_HAS_OHCI
73 select GENERIC_PCI_IOMAP
75 select PCI_DOMAINS_GENERIC if PCI
76 select PCI_SYSCALL if PCI
79 config LOCKDEP_SUPPORT
82 config ARCH_SUPPORTS_UPROBES
83 def_bool y if !CPU_CK610
85 config CPU_HAS_CACHEV2
100 For SMP, CPU needs "ldex&stex" instructions for atomic operations.
102 config CPU_NEED_TLBSYNC
105 config CPU_NEED_SOFTALIGN
108 config CPU_NO_USER_BKPT
111 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
112 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
113 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
114 instruction exception.
115 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
117 config GENERIC_CALIBRATE_DELAY
123 config GENERIC_HWEIGHT
129 config STACKTRACE_SUPPORT
135 config TRACE_IRQFLAGS_SUPPORT
140 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
141 default "1024" if (CPU_CK860)
145 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
146 default "12" if (CPU_CK860)
148 config L1_CACHE_SHIFT
150 default "4" if (CPU_CK610)
151 default "5" if (CPU_CK807 || CPU_CK810)
152 default "6" if (CPU_CK860)
154 menu "Processor type and features"
161 bool "CSKY CPU ck610"
162 select CPU_NEED_TLBSYNC
163 select CPU_NEED_SOFTALIGN
164 select CPU_NO_USER_BKPT
167 bool "CSKY CPU ck810"
169 select CPU_NEED_TLBSYNC
172 bool "CSKY CPU ck807"
176 bool "CSKY CPU ck860"
178 select CPU_HAS_CACHEV2
179 select CPU_HAS_LDSTEX
184 prompt "C-SKY PMU type"
185 depends on PERF_EVENTS
186 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
192 bool "Performance Monitoring Unit Ver.1"
197 prompt "Power Manager Instruction (wait/doze/stop)"
214 bool "Tightly-Coupled/Sram Memory"
215 select GENERIC_ALLOCATOR
217 The implementation are not only used by TCM (Tightly-Coupled Meory)
218 but also used by sram on SOC bus. It follow existed linux tcm
219 software interface, so that old tcm application codes could be
228 int "Page count of ITCM size: NR*4KB"
241 int "Page count of DTCM size: NR*4KB"
248 bool "CPU has VDSP coprocessor"
249 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
252 bool "CPU has FPU coprocessor"
253 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
255 config CPU_HAS_ICACHE_INS
256 bool "CPU has Icache invalidate instructions"
257 depends on CPU_HAS_CACHEV2
260 bool "CPU has Trusted Execution Environment"
264 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
269 int "Maximum number of CPUs (2-32)"
275 bool "High Memory Support"
276 depends on !CPU_CK610
279 config FORCE_MAX_ZONEORDER
280 int "Maximum zone order"
284 hex "DRAM start addr (the same with memory-section in dts)"
288 bool "Support for hot-pluggable CPUs"
289 select GENERIC_IRQ_MIGRATION
292 Say Y here to allow turning CPUs off and on. CPUs can be
293 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
295 Say N if you want to disable CPU hotplug.
298 source "arch/csky/Kconfig.platforms"
300 source "kernel/Kconfig.hz"
303 bool "Enable seccomp to safely compute untrusted bytecode"
305 This kernel feature is useful for number crunching applications
306 that may need to compute untrusted bytecode during their
307 execution. By using pipes or other transports made available to
308 the process as file descriptors supporting the read/write
309 syscalls, it's possible to isolate those applications in
310 their own address space using seccomp. Once seccomp is
311 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
312 and the task is only allowed to execute a few safe syscalls
313 defined by each seccomp mode.