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