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 6de863678SMa Jun select ARCH_HAS_GCOV_PROFILE_ALL 7c32e64e8SGuo Ren select ARCH_HAS_SYNC_DMA_FOR_CPU 8c32e64e8SGuo Ren select ARCH_HAS_SYNC_DMA_FOR_DEVICE 9c32e64e8SGuo Ren select ARCH_USE_BUILTIN_BSWAP 108e35ac73SGuo Ren select ARCH_USE_QUEUED_RWLOCKS 1118c07d23SGuo Ren select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 12953131e5SGuo Ren select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 13c32e64e8SGuo Ren select COMMON_CLK 14c32e64e8SGuo Ren select CLKSRC_MMIO 151994cc49SGuo Ren select CSKY_MPINTC if CPU_CK860 161994cc49SGuo Ren select CSKY_MP_TIMER if CPU_CK860 171994cc49SGuo Ren select CSKY_APB_INTC 18f04b951fSChristoph Hellwig select DMA_DIRECT_REMAP 19c32e64e8SGuo Ren select IRQ_DOMAIN 20c32e64e8SGuo Ren select HANDLE_DOMAIN_IRQ 21c32e64e8SGuo Ren select DW_APB_TIMER_OF 220055f67bSChristoph Hellwig select GENERIC_IOREMAP 23c32e64e8SGuo Ren select GENERIC_LIB_ASHLDI3 24c32e64e8SGuo Ren select GENERIC_LIB_ASHRDI3 25c32e64e8SGuo Ren select GENERIC_LIB_LSHRDI3 26c32e64e8SGuo Ren select GENERIC_LIB_MULDI3 27c32e64e8SGuo Ren select GENERIC_LIB_CMPDI2 28c32e64e8SGuo Ren select GENERIC_LIB_UCMPDI2 29c32e64e8SGuo Ren select GENERIC_ALLOCATOR 30c32e64e8SGuo Ren select GENERIC_ATOMIC64 31c32e64e8SGuo Ren select GENERIC_CPU_DEVICES 32c32e64e8SGuo Ren select GENERIC_IRQ_CHIP 33c32e64e8SGuo Ren select GENERIC_IRQ_PROBE 34c32e64e8SGuo Ren select GENERIC_IRQ_SHOW 35c32e64e8SGuo Ren select GENERIC_IRQ_MULTI_HANDLER 36c32e64e8SGuo Ren select GENERIC_SCHED_CLOCK 37c32e64e8SGuo Ren select GENERIC_SMP_IDLE_THREAD 380d3b051aSGuo Ren select GENERIC_TIME_VSYSCALL 390d3b051aSGuo Ren select GENERIC_VDSO_32 400d3b051aSGuo Ren select GENERIC_GETTIMEOFDAY 411994cc49SGuo Ren select GX6605S_TIMER if CPU_CK610 42c32e64e8SGuo Ren select HAVE_ARCH_TRACEHOOK 432f7932b0SGuo Ren select HAVE_ARCH_AUDITSYSCALL 44953131e5SGuo Ren select HAVE_ARCH_MMAP_RND_BITS 45e95a4f8cSGuo Ren select HAVE_ARCH_SECCOMP_FILTER 46bdcd93efSGuo Ren select HAVE_CONTEXT_TRACKING 47bdcd93efSGuo Ren select HAVE_VIRT_CPU_ACCOUNTING_GEN 4818c07d23SGuo Ren select HAVE_DEBUG_BUGVERBOSE 49c109f424SGuo Ren select HAVE_DEBUG_KMEMLEAK 5028bb030fSGuo Ren select HAVE_DYNAMIC_FTRACE 5189a3927aSGuo Ren select HAVE_DYNAMIC_FTRACE_WITH_REGS 520d3b051aSGuo Ren select HAVE_GENERIC_VDSO 53230c77a5SGuo Ren select HAVE_FUNCTION_TRACER 54d7950be1SGuo Ren select HAVE_FUNCTION_GRAPH_TRACER 5571e193d7SGuo Ren select HAVE_FUNCTION_ERROR_INJECTION 56d6c5cb9fSGuo Ren select HAVE_FUTEX_CMPXCHG if FUTEX && SMP 5728bb030fSGuo Ren select HAVE_FTRACE_MCOUNT_RECORD 58c32e64e8SGuo Ren select HAVE_KERNEL_GZIP 59c32e64e8SGuo Ren select HAVE_KERNEL_LZO 60c32e64e8SGuo Ren select HAVE_KERNEL_LZMA 6133e53ae1SGuo Ren select HAVE_KPROBES if !CPU_CK610 6233e53ae1SGuo Ren select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 6333e53ae1SGuo Ren select HAVE_KRETPROBES if !CPU_CK610 64f50fd2d8SGuo Ren select HAVE_PERF_EVENTS 65daac95e7SMao Han select HAVE_PERF_REGS 66daac95e7SMao Han select HAVE_PERF_USER_STACK_DUMP 67c32e64e8SGuo Ren select HAVE_DMA_CONTIGUOUS 68bfe47f35SGuo Ren select HAVE_REGS_AND_STACK_ACCESS_API 699866d141SGuo Ren select HAVE_RSEQ 702f78c73fSMao Han select HAVE_STACKPROTECTOR 712f7932b0SGuo Ren select HAVE_SYSCALL_TRACEPOINTS 72c32e64e8SGuo Ren select MAY_HAVE_SPARSE_IRQ 73c32e64e8SGuo Ren select MODULES_USE_ELF_RELA if MODULES 74c32e64e8SGuo Ren select OF 75c32e64e8SGuo Ren select OF_EARLY_FLATTREE 76f50fd2d8SGuo Ren select PERF_USE_VMALLOC if CPU_CK610 77c32e64e8SGuo Ren select RTC_LIB 78c32e64e8SGuo Ren select TIMER_OF 79c32e64e8SGuo Ren select USB_ARCH_HAS_EHCI 80c32e64e8SGuo Ren select USB_ARCH_HAS_OHCI 815b49c82dSMaJun select GENERIC_PCI_IOMAP 825b49c82dSMaJun select HAVE_PCI 835b49c82dSMaJun select PCI_DOMAINS_GENERIC if PCI 845b49c82dSMaJun select PCI_SYSCALL if PCI 855b49c82dSMaJun select PCI_MSI if PCI 865e6e9852SChristoph Hellwig select SET_FS 87c32e64e8SGuo Ren 88000591f1SGuo Renconfig LOCKDEP_SUPPORT 89000591f1SGuo Ren def_bool y 90000591f1SGuo Ren 918f6bb793SGuo Renconfig ARCH_SUPPORTS_UPROBES 928f6bb793SGuo Ren def_bool y if !CPU_CK610 938f6bb793SGuo Ren 94c32e64e8SGuo Renconfig CPU_HAS_CACHEV2 95c32e64e8SGuo Ren bool 96c32e64e8SGuo Ren 97c32e64e8SGuo Renconfig CPU_HAS_FPUV2 98c32e64e8SGuo Ren bool 99c32e64e8SGuo Ren 100c32e64e8SGuo Renconfig CPU_HAS_HILO 101c32e64e8SGuo Ren bool 102c32e64e8SGuo Ren 103c32e64e8SGuo Renconfig CPU_HAS_TLBI 104c32e64e8SGuo Ren bool 105c32e64e8SGuo Ren 106c32e64e8SGuo Renconfig CPU_HAS_LDSTEX 107c32e64e8SGuo Ren bool 108c32e64e8SGuo Ren help 109bebd26abSRandy Dunlap For SMP, CPU needs "ldex&stex" instructions for atomic operations. 110c32e64e8SGuo Ren 111c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC 112c32e64e8SGuo Ren bool 113c32e64e8SGuo Ren 114c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN 115c32e64e8SGuo Ren bool 116c32e64e8SGuo Ren 117c32e64e8SGuo Renconfig CPU_NO_USER_BKPT 118c32e64e8SGuo Ren bool 119c32e64e8SGuo Ren help 120c32e64e8SGuo Ren For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because 121c32e64e8SGuo Ren abiv2 is 16/32bit instruction set and "trap 1" is 32bit. 122c32e64e8SGuo Ren So we need a 16bit instruction as user space bkpt, and it will cause an illegal 123c32e64e8SGuo Ren instruction exception. 124c32e64e8SGuo Ren In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not. 125c32e64e8SGuo Ren 126c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY 127c32e64e8SGuo Ren def_bool y 128c32e64e8SGuo Ren 129c32e64e8SGuo Renconfig GENERIC_CSUM 130c32e64e8SGuo Ren def_bool y 131c32e64e8SGuo Ren 132c32e64e8SGuo Renconfig GENERIC_HWEIGHT 133c32e64e8SGuo Ren def_bool y 134c32e64e8SGuo Ren 135c32e64e8SGuo Renconfig MMU 136c32e64e8SGuo Ren def_bool y 137c32e64e8SGuo Ren 1380ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT 1390ea2dc7cSGuo Ren def_bool y 1400ea2dc7cSGuo Ren 141c32e64e8SGuo Renconfig TIME_LOW_RES 142c32e64e8SGuo Ren def_bool y 143c32e64e8SGuo Ren 144c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT 145c32e64e8SGuo Ren def_bool y 146c32e64e8SGuo Ren 147c32e64e8SGuo Renconfig CPU_TLB_SIZE 148c32e64e8SGuo Ren int 149c32e64e8SGuo Ren default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 150c32e64e8SGuo Ren default "1024" if (CPU_CK860) 151c32e64e8SGuo Ren 152c32e64e8SGuo Renconfig CPU_ASID_BITS 153c32e64e8SGuo Ren int 154c32e64e8SGuo Ren default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 155c32e64e8SGuo Ren default "12" if (CPU_CK860) 156c32e64e8SGuo Ren 157c32e64e8SGuo Renconfig L1_CACHE_SHIFT 158c32e64e8SGuo Ren int 159c32e64e8SGuo Ren default "4" if (CPU_CK610) 160c32e64e8SGuo Ren default "5" if (CPU_CK807 || CPU_CK810) 161c32e64e8SGuo Ren default "6" if (CPU_CK860) 162c32e64e8SGuo Ren 163953131e5SGuo Renconfig ARCH_MMAP_RND_BITS_MIN 164953131e5SGuo Ren default 8 165953131e5SGuo Ren 166953131e5SGuo Ren# max bits determined by the following formula: 167953131e5SGuo Ren# VA_BITS - PAGE_SHIFT - 3 168953131e5SGuo Renconfig ARCH_MMAP_RND_BITS_MAX 169953131e5SGuo Ren default 17 170953131e5SGuo Ren 171c32e64e8SGuo Renmenu "Processor type and features" 172c32e64e8SGuo Ren 173c32e64e8SGuo Renchoice 174c32e64e8SGuo Ren prompt "CPU MODEL" 175c32e64e8SGuo Ren default CPU_CK807 176c32e64e8SGuo Ren 177c32e64e8SGuo Renconfig CPU_CK610 178c32e64e8SGuo Ren bool "CSKY CPU ck610" 179c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 180c32e64e8SGuo Ren select CPU_NEED_SOFTALIGN 181c32e64e8SGuo Ren select CPU_NO_USER_BKPT 182c32e64e8SGuo Ren 183c32e64e8SGuo Renconfig CPU_CK810 184c32e64e8SGuo Ren bool "CSKY CPU ck810" 185c32e64e8SGuo Ren select CPU_HAS_HILO 186c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 187c32e64e8SGuo Ren 188c32e64e8SGuo Renconfig CPU_CK807 189c32e64e8SGuo Ren bool "CSKY CPU ck807" 190c32e64e8SGuo Ren select CPU_HAS_HILO 191c32e64e8SGuo Ren 192c32e64e8SGuo Renconfig CPU_CK860 193c32e64e8SGuo Ren bool "CSKY CPU ck860" 194c32e64e8SGuo Ren select CPU_HAS_TLBI 195c32e64e8SGuo Ren select CPU_HAS_CACHEV2 196c32e64e8SGuo Ren select CPU_HAS_LDSTEX 197c32e64e8SGuo Ren select CPU_HAS_FPUV2 198c32e64e8SGuo Renendchoice 199c32e64e8SGuo Ren 200c32e64e8SGuo Renchoice 2010c8a32eeSGuo Ren prompt "PAGE OFFSET" 2020c8a32eeSGuo Ren default PAGE_OFFSET_80000000 2030c8a32eeSGuo Ren 2040c8a32eeSGuo Renconfig PAGE_OFFSET_80000000 2050c8a32eeSGuo Ren bool "PAGE OFFSET 2G (user:kernel = 2:2)" 2060c8a32eeSGuo Ren 2070c8a32eeSGuo Renconfig PAGE_OFFSET_A0000000 2080c8a32eeSGuo Ren bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)" 2090c8a32eeSGuo Renendchoice 2100c8a32eeSGuo Ren 2110c8a32eeSGuo Renconfig PAGE_OFFSET 2120c8a32eeSGuo Ren hex 2130c8a32eeSGuo Ren default 0x80000000 if PAGE_OFFSET_80000000 2140c8a32eeSGuo Ren default 0xa0000000 if PAGE_OFFSET_A0000000 2150c8a32eeSGuo Renchoice 2160c8a32eeSGuo Ren 217f50fd2d8SGuo Ren prompt "C-SKY PMU type" 218f50fd2d8SGuo Ren depends on PERF_EVENTS 219f50fd2d8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 220f50fd2d8SGuo Ren 221f50fd2d8SGuo Renconfig CPU_PMU_NONE 222f50fd2d8SGuo Ren bool "None" 223f50fd2d8SGuo Ren 224f50fd2d8SGuo Renconfig CSKY_PMU_V1 225f50fd2d8SGuo Ren bool "Performance Monitoring Unit Ver.1" 226f50fd2d8SGuo Ren 227f50fd2d8SGuo Renendchoice 228f50fd2d8SGuo Ren 229f50fd2d8SGuo Renchoice 230c32e64e8SGuo Ren prompt "Power Manager Instruction (wait/doze/stop)" 231c32e64e8SGuo Ren default CPU_PM_NONE 232c32e64e8SGuo Ren 233c32e64e8SGuo Renconfig CPU_PM_NONE 234c32e64e8SGuo Ren bool "None" 235c32e64e8SGuo Ren 236c32e64e8SGuo Renconfig CPU_PM_WAIT 237c32e64e8SGuo Ren bool "wait" 238c32e64e8SGuo Ren 239c32e64e8SGuo Renconfig CPU_PM_DOZE 240c32e64e8SGuo Ren bool "doze" 241c32e64e8SGuo Ren 242c32e64e8SGuo Renconfig CPU_PM_STOP 243c32e64e8SGuo Ren bool "stop" 244c32e64e8SGuo Renendchoice 245c32e64e8SGuo Ren 246f525bb2cSGuo Renmenuconfig HAVE_TCM 247f525bb2cSGuo Ren bool "Tightly-Coupled/Sram Memory" 248f525bb2cSGuo Ren select GENERIC_ALLOCATOR 249f525bb2cSGuo Ren help 250f525bb2cSGuo Ren The implementation are not only used by TCM (Tightly-Coupled Meory) 251f525bb2cSGuo Ren but also used by sram on SOC bus. It follow existed linux tcm 252f525bb2cSGuo Ren software interface, so that old tcm application codes could be 253f525bb2cSGuo Ren re-used directly. 254f525bb2cSGuo Ren 255f525bb2cSGuo Renif HAVE_TCM 256f525bb2cSGuo Renconfig ITCM_RAM_BASE 257f525bb2cSGuo Ren hex "ITCM ram base" 258f525bb2cSGuo Ren default 0xffffffff 259f525bb2cSGuo Ren 260f525bb2cSGuo Renconfig ITCM_NR_PAGES 261f525bb2cSGuo Ren int "Page count of ITCM size: NR*4KB" 262f525bb2cSGuo Ren range 1 256 263f525bb2cSGuo Ren default 32 264f525bb2cSGuo Ren 265f525bb2cSGuo Renconfig HAVE_DTCM 266f525bb2cSGuo Ren bool "DTCM Support" 267f525bb2cSGuo Ren 268f525bb2cSGuo Renconfig DTCM_RAM_BASE 269f525bb2cSGuo Ren hex "DTCM ram base" 270f525bb2cSGuo Ren depends on HAVE_DTCM 271f525bb2cSGuo Ren default 0xffffffff 272f525bb2cSGuo Ren 273f525bb2cSGuo Renconfig DTCM_NR_PAGES 274f525bb2cSGuo Ren int "Page count of DTCM size: NR*4KB" 275f525bb2cSGuo Ren depends on HAVE_DTCM 276f525bb2cSGuo Ren range 1 256 277f525bb2cSGuo Ren default 32 278f525bb2cSGuo Renendif 279f525bb2cSGuo Ren 280c32e64e8SGuo Renconfig CPU_HAS_VDSP 281c32e64e8SGuo Ren bool "CPU has VDSP coprocessor" 282c32e64e8SGuo Ren depends on CPU_HAS_FPU && CPU_HAS_FPUV2 283c32e64e8SGuo Ren 284c32e64e8SGuo Renconfig CPU_HAS_FPU 285c32e64e8SGuo Ren bool "CPU has FPU coprocessor" 286c32e64e8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 287c32e64e8SGuo Ren 288761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS 289761b4f69SGuo Ren bool "CPU has Icache invalidate instructions" 290761b4f69SGuo Ren depends on CPU_HAS_CACHEV2 291761b4f69SGuo Ren 292c32e64e8SGuo Renconfig CPU_HAS_TEE 293c32e64e8SGuo Ren bool "CPU has Trusted Execution Environment" 294c32e64e8SGuo Ren depends on CPU_CK810 295c32e64e8SGuo Ren 296c32e64e8SGuo Renconfig SMP 297c32e64e8SGuo Ren bool "Symmetric Multi-Processing (SMP) support for C-SKY" 298c32e64e8SGuo Ren depends on CPU_CK860 299c32e64e8SGuo Ren default n 300c32e64e8SGuo Ren 301c32e64e8SGuo Renconfig NR_CPUS 302c32e64e8SGuo Ren int "Maximum number of CPUs (2-32)" 303c32e64e8SGuo Ren range 2 32 304c32e64e8SGuo Ren depends on SMP 30550d23a1cSGuo Ren default "4" 306c32e64e8SGuo Ren 307c32e64e8SGuo Renconfig HIGHMEM 308c32e64e8SGuo Ren bool "High Memory Support" 309c32e64e8SGuo Ren depends on !CPU_CK610 3105af627a0SThomas Gleixner select KMAP_LOCAL 311c32e64e8SGuo Ren default y 312c32e64e8SGuo Ren 313c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER 314c32e64e8SGuo Ren int "Maximum zone order" 315c32e64e8SGuo Ren default "11" 316c32e64e8SGuo Ren 317*d1991616SRandy Dunlapconfig DRAM_BASE 318c32e64e8SGuo Ren hex "DRAM start addr (the same with memory-section in dts)" 319c32e64e8SGuo Ren default 0x0 320c32e64e8SGuo Ren 321859e5f45SGuo Renconfig HOTPLUG_CPU 322859e5f45SGuo Ren bool "Support for hot-pluggable CPUs" 323859e5f45SGuo Ren select GENERIC_IRQ_MIGRATION 324859e5f45SGuo Ren depends on SMP 325859e5f45SGuo Ren help 326859e5f45SGuo Ren Say Y here to allow turning CPUs off and on. CPUs can be 327859e5f45SGuo Ren controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 328859e5f45SGuo Ren 329859e5f45SGuo Ren Say N if you want to disable CPU hotplug. 330c32e64e8SGuo Renendmenu 331c32e64e8SGuo Ren 332a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms" 333a736fa1eSGuo Ren 334c32e64e8SGuo Rensource "kernel/Kconfig.hz" 335