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