1# SPDX-License-Identifier: GPL-2.0-only 2config CSKY 3 def_bool y 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 13 select COMMON_CLK 14 select CLKSRC_MMIO 15 select CSKY_MPINTC if CPU_CK860 16 select CSKY_MP_TIMER if CPU_CK860 17 select CSKY_APB_INTC 18 select DMA_DIRECT_REMAP 19 select IRQ_DOMAIN 20 select HANDLE_DOMAIN_IRQ 21 select DW_APB_TIMER_OF 22 select GENERIC_IOREMAP 23 select GENERIC_LIB_ASHLDI3 24 select GENERIC_LIB_ASHRDI3 25 select GENERIC_LIB_LSHRDI3 26 select GENERIC_LIB_MULDI3 27 select GENERIC_LIB_CMPDI2 28 select GENERIC_LIB_UCMPDI2 29 select GENERIC_ALLOCATOR 30 select GENERIC_ATOMIC64 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 GENERIC_TIME_VSYSCALL 39 select GENERIC_VDSO_32 40 select GENERIC_GETTIMEOFDAY 41 select GX6605S_TIMER if CPU_CK610 42 select HAVE_ARCH_TRACEHOOK 43 select HAVE_ARCH_AUDITSYSCALL 44 select HAVE_ARCH_MMAP_RND_BITS 45 select HAVE_ARCH_SECCOMP_FILTER 46 select HAVE_CONTEXT_TRACKING 47 select HAVE_VIRT_CPU_ACCOUNTING_GEN 48 select HAVE_DEBUG_BUGVERBOSE 49 select HAVE_DEBUG_KMEMLEAK 50 select HAVE_DYNAMIC_FTRACE 51 select HAVE_DYNAMIC_FTRACE_WITH_REGS 52 select HAVE_GENERIC_VDSO 53 select HAVE_FUNCTION_TRACER 54 select HAVE_FUNCTION_GRAPH_TRACER 55 select HAVE_FUNCTION_ERROR_INJECTION 56 select HAVE_FUTEX_CMPXCHG if FUTEX && SMP 57 select HAVE_FTRACE_MCOUNT_RECORD 58 select HAVE_KERNEL_GZIP 59 select HAVE_KERNEL_LZO 60 select HAVE_KERNEL_LZMA 61 select HAVE_KPROBES if !CPU_CK610 62 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 63 select HAVE_KRETPROBES if !CPU_CK610 64 select HAVE_PERF_EVENTS 65 select HAVE_PERF_REGS 66 select HAVE_PERF_USER_STACK_DUMP 67 select HAVE_DMA_CONTIGUOUS 68 select HAVE_REGS_AND_STACK_ACCESS_API 69 select HAVE_RSEQ 70 select HAVE_STACKPROTECTOR 71 select HAVE_SYSCALL_TRACEPOINTS 72 select MAY_HAVE_SPARSE_IRQ 73 select MODULES_USE_ELF_RELA if MODULES 74 select OF 75 select OF_EARLY_FLATTREE 76 select PERF_USE_VMALLOC if CPU_CK610 77 select RTC_LIB 78 select TIMER_OF 79 select GENERIC_PCI_IOMAP 80 select HAVE_PCI 81 select PCI_DOMAINS_GENERIC if PCI 82 select PCI_SYSCALL if PCI 83 select PCI_MSI if PCI 84 select SET_FS 85 select TRACE_IRQFLAGS_SUPPORT 86 87config LOCKDEP_SUPPORT 88 def_bool y 89 90config ARCH_SUPPORTS_UPROBES 91 def_bool y if !CPU_CK610 92 93config CPU_HAS_CACHEV2 94 bool 95 96config CPU_HAS_FPUV2 97 bool 98 99config CPU_HAS_HILO 100 bool 101 102config CPU_HAS_TLBI 103 bool 104 105config CPU_HAS_LDSTEX 106 bool 107 help 108 For SMP, CPU needs "ldex&stex" instructions for atomic operations. 109 110config CPU_NEED_TLBSYNC 111 bool 112 113config CPU_NEED_SOFTALIGN 114 bool 115 116config CPU_NO_USER_BKPT 117 bool 118 help 119 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because 120 abiv2 is 16/32bit instruction set and "trap 1" is 32bit. 121 So we need a 16bit instruction as user space bkpt, and it will cause an illegal 122 instruction exception. 123 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not. 124 125config GENERIC_CALIBRATE_DELAY 126 def_bool y 127 128config GENERIC_CSUM 129 def_bool y 130 131config GENERIC_HWEIGHT 132 def_bool y 133 134config MMU 135 def_bool y 136 137config STACKTRACE_SUPPORT 138 def_bool y 139 140config TIME_LOW_RES 141 def_bool y 142 143config CPU_TLB_SIZE 144 int 145 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 146 default "1024" if (CPU_CK860) 147 148config CPU_ASID_BITS 149 int 150 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 151 default "12" if (CPU_CK860) 152 153config L1_CACHE_SHIFT 154 int 155 default "4" if (CPU_CK610) 156 default "5" if (CPU_CK807 || CPU_CK810) 157 default "6" if (CPU_CK860) 158 159config ARCH_MMAP_RND_BITS_MIN 160 default 8 161 162# max bits determined by the following formula: 163# VA_BITS - PAGE_SHIFT - 3 164config ARCH_MMAP_RND_BITS_MAX 165 default 17 166 167menu "Processor type and features" 168 169choice 170 prompt "CPU MODEL" 171 default CPU_CK807 172 173config CPU_CK610 174 bool "CSKY CPU ck610" 175 select CPU_NEED_TLBSYNC 176 select CPU_NEED_SOFTALIGN 177 select CPU_NO_USER_BKPT 178 179config CPU_CK810 180 bool "CSKY CPU ck810" 181 select CPU_HAS_HILO 182 select CPU_NEED_TLBSYNC 183 184config CPU_CK807 185 bool "CSKY CPU ck807" 186 select CPU_HAS_HILO 187 188config CPU_CK860 189 bool "CSKY CPU ck860" 190 select CPU_HAS_TLBI 191 select CPU_HAS_CACHEV2 192 select CPU_HAS_LDSTEX 193 select CPU_HAS_FPUV2 194endchoice 195 196choice 197 prompt "PAGE OFFSET" 198 default PAGE_OFFSET_80000000 199 200config PAGE_OFFSET_80000000 201 bool "PAGE OFFSET 2G (user:kernel = 2:2)" 202 203config PAGE_OFFSET_A0000000 204 bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)" 205endchoice 206 207config PAGE_OFFSET 208 hex 209 default 0x80000000 if PAGE_OFFSET_80000000 210 default 0xa0000000 if PAGE_OFFSET_A0000000 211choice 212 213 prompt "C-SKY PMU type" 214 depends on PERF_EVENTS 215 depends on CPU_CK807 || CPU_CK810 || CPU_CK860 216 217config CPU_PMU_NONE 218 bool "None" 219 220config CSKY_PMU_V1 221 bool "Performance Monitoring Unit Ver.1" 222 223endchoice 224 225choice 226 prompt "Power Manager Instruction (wait/doze/stop)" 227 default CPU_PM_NONE 228 229config CPU_PM_NONE 230 bool "None" 231 232config CPU_PM_WAIT 233 bool "wait" 234 235config CPU_PM_DOZE 236 bool "doze" 237 238config CPU_PM_STOP 239 bool "stop" 240endchoice 241 242menuconfig HAVE_TCM 243 bool "Tightly-Coupled/Sram Memory" 244 depends on !COMPILE_TEST 245 help 246 The implementation are not only used by TCM (Tightly-Coupled Meory) 247 but also used by sram on SOC bus. It follow existed linux tcm 248 software interface, so that old tcm application codes could be 249 re-used directly. 250 251if HAVE_TCM 252config ITCM_RAM_BASE 253 hex "ITCM ram base" 254 default 0xffffffff 255 256config ITCM_NR_PAGES 257 int "Page count of ITCM size: NR*4KB" 258 range 1 256 259 default 32 260 261config HAVE_DTCM 262 bool "DTCM Support" 263 264config DTCM_RAM_BASE 265 hex "DTCM ram base" 266 depends on HAVE_DTCM 267 default 0xffffffff 268 269config DTCM_NR_PAGES 270 int "Page count of DTCM size: NR*4KB" 271 depends on HAVE_DTCM 272 range 1 256 273 default 32 274endif 275 276config CPU_HAS_VDSP 277 bool "CPU has VDSP coprocessor" 278 depends on CPU_HAS_FPU && CPU_HAS_FPUV2 279 280config CPU_HAS_FPU 281 bool "CPU has FPU coprocessor" 282 depends on CPU_CK807 || CPU_CK810 || CPU_CK860 283 284config CPU_HAS_ICACHE_INS 285 bool "CPU has Icache invalidate instructions" 286 depends on CPU_HAS_CACHEV2 287 288config CPU_HAS_TEE 289 bool "CPU has Trusted Execution Environment" 290 depends on CPU_CK810 291 292config SMP 293 bool "Symmetric Multi-Processing (SMP) support for C-SKY" 294 depends on CPU_CK860 295 default n 296 297config NR_CPUS 298 int "Maximum number of CPUs (2-32)" 299 range 2 32 300 depends on SMP 301 default "4" 302 303config HIGHMEM 304 bool "High Memory Support" 305 depends on !CPU_CK610 306 select KMAP_LOCAL 307 default y 308 309config FORCE_MAX_ZONEORDER 310 int "Maximum zone order" 311 default "11" 312 313config DRAM_BASE 314 hex "DRAM start addr (the same with memory-section in dts)" 315 default 0x0 316 317config HOTPLUG_CPU 318 bool "Support for hot-pluggable CPUs" 319 select GENERIC_IRQ_MIGRATION 320 depends on SMP 321 help 322 Say Y here to allow turning CPUs off and on. CPUs can be 323 controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 324 325 Say N if you want to disable CPU hotplug. 326endmenu 327 328source "arch/csky/Kconfig.platforms" 329 330source "kernel/Kconfig.hz" 331