1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2c32e64e8SGuo Renconfig CSKY 3c32e64e8SGuo Ren def_bool y 4942fa985SYury Norov select ARCH_32BIT_OFF_T 513bf5cedSChristoph Hellwig select ARCH_HAS_DMA_PREP_COHERENT 6c32e64e8SGuo Ren select ARCH_HAS_SYNC_DMA_FOR_CPU 7c32e64e8SGuo Ren select ARCH_HAS_SYNC_DMA_FOR_DEVICE 8c32e64e8SGuo Ren select ARCH_USE_BUILTIN_BSWAP 9c32e64e8SGuo Ren select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2 10c32e64e8SGuo Ren select COMMON_CLK 11c32e64e8SGuo Ren select CLKSRC_MMIO 12c32e64e8SGuo Ren select CLKSRC_OF 131994cc49SGuo Ren select CSKY_MPINTC if CPU_CK860 141994cc49SGuo Ren select CSKY_MP_TIMER if CPU_CK860 151994cc49SGuo Ren select CSKY_APB_INTC 16f04b951fSChristoph Hellwig select DMA_DIRECT_REMAP 17c32e64e8SGuo Ren select IRQ_DOMAIN 18c32e64e8SGuo Ren select HANDLE_DOMAIN_IRQ 19c32e64e8SGuo Ren select DW_APB_TIMER_OF 200055f67bSChristoph Hellwig select GENERIC_IOREMAP 21c32e64e8SGuo Ren select GENERIC_LIB_ASHLDI3 22c32e64e8SGuo Ren select GENERIC_LIB_ASHRDI3 23c32e64e8SGuo Ren select GENERIC_LIB_LSHRDI3 24c32e64e8SGuo Ren select GENERIC_LIB_MULDI3 25c32e64e8SGuo Ren select GENERIC_LIB_CMPDI2 26c32e64e8SGuo Ren select GENERIC_LIB_UCMPDI2 27c32e64e8SGuo Ren select GENERIC_ALLOCATOR 28c32e64e8SGuo Ren select GENERIC_ATOMIC64 29c32e64e8SGuo Ren select GENERIC_CLOCKEVENTS 30c32e64e8SGuo Ren select GENERIC_CPU_DEVICES 31c32e64e8SGuo Ren select GENERIC_IRQ_CHIP 32c32e64e8SGuo Ren select GENERIC_IRQ_PROBE 33c32e64e8SGuo Ren select GENERIC_IRQ_SHOW 34c32e64e8SGuo Ren select GENERIC_IRQ_MULTI_HANDLER 35c32e64e8SGuo Ren select GENERIC_SCHED_CLOCK 36c32e64e8SGuo Ren select GENERIC_SMP_IDLE_THREAD 371994cc49SGuo Ren select GX6605S_TIMER if CPU_CK610 38c32e64e8SGuo Ren select HAVE_ARCH_TRACEHOOK 392f7932b0SGuo Ren select HAVE_ARCH_AUDITSYSCALL 4028bb030fSGuo Ren select HAVE_DYNAMIC_FTRACE 41230c77a5SGuo Ren select HAVE_FUNCTION_TRACER 42d7950be1SGuo Ren select HAVE_FUNCTION_GRAPH_TRACER 4328bb030fSGuo Ren select HAVE_FTRACE_MCOUNT_RECORD 44c32e64e8SGuo Ren select HAVE_KERNEL_GZIP 45c32e64e8SGuo Ren select HAVE_KERNEL_LZO 46c32e64e8SGuo Ren select HAVE_KERNEL_LZMA 47f50fd2d8SGuo Ren select HAVE_PERF_EVENTS 48daac95e7SMao Han select HAVE_PERF_REGS 49daac95e7SMao Han select HAVE_PERF_USER_STACK_DUMP 50c32e64e8SGuo Ren select HAVE_DMA_API_DEBUG 51c32e64e8SGuo Ren select HAVE_DMA_CONTIGUOUS 522f78c73fSMao Han select HAVE_STACKPROTECTOR 532f7932b0SGuo Ren select HAVE_SYSCALL_TRACEPOINTS 54c32e64e8SGuo Ren select MAY_HAVE_SPARSE_IRQ 55c32e64e8SGuo Ren select MODULES_USE_ELF_RELA if MODULES 56c32e64e8SGuo Ren select OF 57c32e64e8SGuo Ren select OF_EARLY_FLATTREE 58f50fd2d8SGuo Ren select PERF_USE_VMALLOC if CPU_CK610 59c32e64e8SGuo Ren select RTC_LIB 60c32e64e8SGuo Ren select TIMER_OF 61c32e64e8SGuo Ren select USB_ARCH_HAS_EHCI 62c32e64e8SGuo Ren select USB_ARCH_HAS_OHCI 63c32e64e8SGuo Ren 64c32e64e8SGuo Renconfig CPU_HAS_CACHEV2 65c32e64e8SGuo Ren bool 66c32e64e8SGuo Ren 67c32e64e8SGuo Renconfig CPU_HAS_FPUV2 68c32e64e8SGuo Ren bool 69c32e64e8SGuo Ren 70c32e64e8SGuo Renconfig CPU_HAS_HILO 71c32e64e8SGuo Ren bool 72c32e64e8SGuo Ren 73c32e64e8SGuo Renconfig CPU_HAS_TLBI 74c32e64e8SGuo Ren bool 75c32e64e8SGuo Ren 76c32e64e8SGuo Renconfig CPU_HAS_LDSTEX 77c32e64e8SGuo Ren bool 78c32e64e8SGuo Ren help 79c32e64e8SGuo Ren For SMP, CPU needs "ldex&stex" instrcutions to atomic operations. 80c32e64e8SGuo Ren 81c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC 82c32e64e8SGuo Ren bool 83c32e64e8SGuo Ren 84c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN 85c32e64e8SGuo Ren bool 86c32e64e8SGuo Ren 87c32e64e8SGuo Renconfig CPU_NO_USER_BKPT 88c32e64e8SGuo Ren bool 89c32e64e8SGuo Ren help 90c32e64e8SGuo Ren For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because 91c32e64e8SGuo Ren abiv2 is 16/32bit instruction set and "trap 1" is 32bit. 92c32e64e8SGuo Ren So we need a 16bit instruction as user space bkpt, and it will cause an illegal 93c32e64e8SGuo Ren instruction exception. 94c32e64e8SGuo Ren In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not. 95c32e64e8SGuo Ren 96c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY 97c32e64e8SGuo Ren def_bool y 98c32e64e8SGuo Ren 99c32e64e8SGuo Renconfig GENERIC_CSUM 100c32e64e8SGuo Ren def_bool y 101c32e64e8SGuo Ren 102c32e64e8SGuo Renconfig GENERIC_HWEIGHT 103c32e64e8SGuo Ren def_bool y 104c32e64e8SGuo Ren 105c32e64e8SGuo Renconfig MMU 106c32e64e8SGuo Ren def_bool y 107c32e64e8SGuo Ren 1080ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT 1090ea2dc7cSGuo Ren def_bool y 1100ea2dc7cSGuo Ren 111c32e64e8SGuo Renconfig TIME_LOW_RES 112c32e64e8SGuo Ren def_bool y 113c32e64e8SGuo Ren 114c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT 115c32e64e8SGuo Ren def_bool y 116c32e64e8SGuo Ren 117c32e64e8SGuo Renconfig CPU_TLB_SIZE 118c32e64e8SGuo Ren int 119c32e64e8SGuo Ren default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 120c32e64e8SGuo Ren default "1024" if (CPU_CK860) 121c32e64e8SGuo Ren 122c32e64e8SGuo Renconfig CPU_ASID_BITS 123c32e64e8SGuo Ren int 124c32e64e8SGuo Ren default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 125c32e64e8SGuo Ren default "12" if (CPU_CK860) 126c32e64e8SGuo Ren 127c32e64e8SGuo Renconfig L1_CACHE_SHIFT 128c32e64e8SGuo Ren int 129c32e64e8SGuo Ren default "4" if (CPU_CK610) 130c32e64e8SGuo Ren default "5" if (CPU_CK807 || CPU_CK810) 131c32e64e8SGuo Ren default "6" if (CPU_CK860) 132c32e64e8SGuo Ren 133c32e64e8SGuo Renmenu "Processor type and features" 134c32e64e8SGuo Ren 135c32e64e8SGuo Renchoice 136c32e64e8SGuo Ren prompt "CPU MODEL" 137c32e64e8SGuo Ren default CPU_CK807 138c32e64e8SGuo Ren 139c32e64e8SGuo Renconfig CPU_CK610 140c32e64e8SGuo Ren bool "CSKY CPU ck610" 141c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 142c32e64e8SGuo Ren select CPU_NEED_SOFTALIGN 143c32e64e8SGuo Ren select CPU_NO_USER_BKPT 144c32e64e8SGuo Ren 145c32e64e8SGuo Renconfig CPU_CK810 146c32e64e8SGuo Ren bool "CSKY CPU ck810" 147c32e64e8SGuo Ren select CPU_HAS_HILO 148c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 149c32e64e8SGuo Ren 150c32e64e8SGuo Renconfig CPU_CK807 151c32e64e8SGuo Ren bool "CSKY CPU ck807" 152c32e64e8SGuo Ren select CPU_HAS_HILO 153c32e64e8SGuo Ren 154c32e64e8SGuo Renconfig CPU_CK860 155c32e64e8SGuo Ren bool "CSKY CPU ck860" 156c32e64e8SGuo Ren select CPU_HAS_TLBI 157c32e64e8SGuo Ren select CPU_HAS_CACHEV2 158c32e64e8SGuo Ren select CPU_HAS_LDSTEX 159c32e64e8SGuo Ren select CPU_HAS_FPUV2 160c32e64e8SGuo Renendchoice 161c32e64e8SGuo Ren 162c32e64e8SGuo Renchoice 163f50fd2d8SGuo Ren prompt "C-SKY PMU type" 164f50fd2d8SGuo Ren depends on PERF_EVENTS 165f50fd2d8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 166f50fd2d8SGuo Ren 167f50fd2d8SGuo Renconfig CPU_PMU_NONE 168f50fd2d8SGuo Ren bool "None" 169f50fd2d8SGuo Ren 170f50fd2d8SGuo Renconfig CSKY_PMU_V1 171f50fd2d8SGuo Ren bool "Performance Monitoring Unit Ver.1" 172f50fd2d8SGuo Ren 173f50fd2d8SGuo Renendchoice 174f50fd2d8SGuo Ren 175f50fd2d8SGuo Renchoice 176c32e64e8SGuo Ren prompt "Power Manager Instruction (wait/doze/stop)" 177c32e64e8SGuo Ren default CPU_PM_NONE 178c32e64e8SGuo Ren 179c32e64e8SGuo Renconfig CPU_PM_NONE 180c32e64e8SGuo Ren bool "None" 181c32e64e8SGuo Ren 182c32e64e8SGuo Renconfig CPU_PM_WAIT 183c32e64e8SGuo Ren bool "wait" 184c32e64e8SGuo Ren 185c32e64e8SGuo Renconfig CPU_PM_DOZE 186c32e64e8SGuo Ren bool "doze" 187c32e64e8SGuo Ren 188c32e64e8SGuo Renconfig CPU_PM_STOP 189c32e64e8SGuo Ren bool "stop" 190c32e64e8SGuo Renendchoice 191c32e64e8SGuo Ren 192f525bb2cSGuo Renmenuconfig HAVE_TCM 193f525bb2cSGuo Ren bool "Tightly-Coupled/Sram Memory" 194f525bb2cSGuo Ren select GENERIC_ALLOCATOR 195f525bb2cSGuo Ren help 196f525bb2cSGuo Ren The implementation are not only used by TCM (Tightly-Coupled Meory) 197f525bb2cSGuo Ren but also used by sram on SOC bus. It follow existed linux tcm 198f525bb2cSGuo Ren software interface, so that old tcm application codes could be 199f525bb2cSGuo Ren re-used directly. 200f525bb2cSGuo Ren 201f525bb2cSGuo Renif HAVE_TCM 202f525bb2cSGuo Renconfig ITCM_RAM_BASE 203f525bb2cSGuo Ren hex "ITCM ram base" 204f525bb2cSGuo Ren default 0xffffffff 205f525bb2cSGuo Ren 206f525bb2cSGuo Renconfig ITCM_NR_PAGES 207f525bb2cSGuo Ren int "Page count of ITCM size: NR*4KB" 208f525bb2cSGuo Ren range 1 256 209f525bb2cSGuo Ren default 32 210f525bb2cSGuo Ren 211f525bb2cSGuo Renconfig HAVE_DTCM 212f525bb2cSGuo Ren bool "DTCM Support" 213f525bb2cSGuo Ren 214f525bb2cSGuo Renconfig DTCM_RAM_BASE 215f525bb2cSGuo Ren hex "DTCM ram base" 216f525bb2cSGuo Ren depends on HAVE_DTCM 217f525bb2cSGuo Ren default 0xffffffff 218f525bb2cSGuo Ren 219f525bb2cSGuo Renconfig DTCM_NR_PAGES 220f525bb2cSGuo Ren int "Page count of DTCM size: NR*4KB" 221f525bb2cSGuo Ren depends on HAVE_DTCM 222f525bb2cSGuo Ren range 1 256 223f525bb2cSGuo Ren default 32 224f525bb2cSGuo Renendif 225f525bb2cSGuo Ren 226c32e64e8SGuo Renconfig CPU_HAS_VDSP 227c32e64e8SGuo Ren bool "CPU has VDSP coprocessor" 228c32e64e8SGuo Ren depends on CPU_HAS_FPU && CPU_HAS_FPUV2 229c32e64e8SGuo Ren 230c32e64e8SGuo Renconfig CPU_HAS_FPU 231c32e64e8SGuo Ren bool "CPU has FPU coprocessor" 232c32e64e8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 233c32e64e8SGuo Ren 234*761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS 235*761b4f69SGuo Ren bool "CPU has Icache invalidate instructions" 236*761b4f69SGuo Ren depends on CPU_HAS_CACHEV2 237*761b4f69SGuo Ren 238c32e64e8SGuo Renconfig CPU_HAS_TEE 239c32e64e8SGuo Ren bool "CPU has Trusted Execution Environment" 240c32e64e8SGuo Ren depends on CPU_CK810 241c32e64e8SGuo Ren 242c32e64e8SGuo Renconfig SMP 243c32e64e8SGuo Ren bool "Symmetric Multi-Processing (SMP) support for C-SKY" 244c32e64e8SGuo Ren depends on CPU_CK860 245c32e64e8SGuo Ren default n 246c32e64e8SGuo Ren 247c32e64e8SGuo Renconfig NR_CPUS 248c32e64e8SGuo Ren int "Maximum number of CPUs (2-32)" 249c32e64e8SGuo Ren range 2 32 250c32e64e8SGuo Ren depends on SMP 251c32e64e8SGuo Ren default "2" 252c32e64e8SGuo Ren 253c32e64e8SGuo Renconfig HIGHMEM 254c32e64e8SGuo Ren bool "High Memory Support" 255c32e64e8SGuo Ren depends on !CPU_CK610 256c32e64e8SGuo Ren default y 257c32e64e8SGuo Ren 258c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER 259c32e64e8SGuo Ren int "Maximum zone order" 260c32e64e8SGuo Ren default "11" 261c32e64e8SGuo Ren 262c32e64e8SGuo Renconfig RAM_BASE 263c32e64e8SGuo Ren hex "DRAM start addr (the same with memory-section in dts)" 264c32e64e8SGuo Ren default 0x0 265c32e64e8SGuo Ren 266859e5f45SGuo Renconfig HOTPLUG_CPU 267859e5f45SGuo Ren bool "Support for hot-pluggable CPUs" 268859e5f45SGuo Ren select GENERIC_IRQ_MIGRATION 269859e5f45SGuo Ren depends on SMP 270859e5f45SGuo Ren help 271859e5f45SGuo Ren Say Y here to allow turning CPUs off and on. CPUs can be 272859e5f45SGuo Ren controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 273859e5f45SGuo Ren 274859e5f45SGuo Ren Say N if you want to disable CPU hotplug. 275c32e64e8SGuo Renendmenu 276c32e64e8SGuo Ren 277a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms" 278a736fa1eSGuo Ren 279c32e64e8SGuo Rensource "kernel/Kconfig.hz" 280