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 10c32e64e8SGuo Ren select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2 11*18c07d23SGuo Ren select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 12c32e64e8SGuo Ren select COMMON_CLK 13c32e64e8SGuo Ren select CLKSRC_MMIO 141994cc49SGuo Ren select CSKY_MPINTC if CPU_CK860 151994cc49SGuo Ren select CSKY_MP_TIMER if CPU_CK860 161994cc49SGuo Ren select CSKY_APB_INTC 17f04b951fSChristoph Hellwig select DMA_DIRECT_REMAP 18c32e64e8SGuo Ren select IRQ_DOMAIN 19c32e64e8SGuo Ren select HANDLE_DOMAIN_IRQ 20c32e64e8SGuo Ren select DW_APB_TIMER_OF 210055f67bSChristoph Hellwig select GENERIC_IOREMAP 22c32e64e8SGuo Ren select GENERIC_LIB_ASHLDI3 23c32e64e8SGuo Ren select GENERIC_LIB_ASHRDI3 24c32e64e8SGuo Ren select GENERIC_LIB_LSHRDI3 25c32e64e8SGuo Ren select GENERIC_LIB_MULDI3 26c32e64e8SGuo Ren select GENERIC_LIB_CMPDI2 27c32e64e8SGuo Ren select GENERIC_LIB_UCMPDI2 28c32e64e8SGuo Ren select GENERIC_ALLOCATOR 29c32e64e8SGuo Ren select GENERIC_ATOMIC64 30c32e64e8SGuo Ren select GENERIC_CLOCKEVENTS 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 381994cc49SGuo Ren select GX6605S_TIMER if CPU_CK610 39c32e64e8SGuo Ren select HAVE_ARCH_TRACEHOOK 402f7932b0SGuo Ren select HAVE_ARCH_AUDITSYSCALL 410b9f386cSGuo Ren select HAVE_COPY_THREAD_TLS 42*18c07d23SGuo Ren select HAVE_DEBUG_BUGVERBOSE 4328bb030fSGuo Ren select HAVE_DYNAMIC_FTRACE 4489a3927aSGuo Ren select HAVE_DYNAMIC_FTRACE_WITH_REGS 45230c77a5SGuo Ren select HAVE_FUNCTION_TRACER 46d7950be1SGuo Ren select HAVE_FUNCTION_GRAPH_TRACER 4728bb030fSGuo Ren select HAVE_FTRACE_MCOUNT_RECORD 48c32e64e8SGuo Ren select HAVE_KERNEL_GZIP 49c32e64e8SGuo Ren select HAVE_KERNEL_LZO 50c32e64e8SGuo Ren select HAVE_KERNEL_LZMA 5133e53ae1SGuo Ren select HAVE_KPROBES if !CPU_CK610 5233e53ae1SGuo Ren select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 5333e53ae1SGuo Ren select HAVE_KRETPROBES if !CPU_CK610 54f50fd2d8SGuo Ren select HAVE_PERF_EVENTS 55daac95e7SMao Han select HAVE_PERF_REGS 56daac95e7SMao Han select HAVE_PERF_USER_STACK_DUMP 57c32e64e8SGuo Ren select HAVE_DMA_CONTIGUOUS 58bfe47f35SGuo Ren select HAVE_REGS_AND_STACK_ACCESS_API 599866d141SGuo Ren select HAVE_RSEQ 602f78c73fSMao Han select HAVE_STACKPROTECTOR 612f7932b0SGuo Ren select HAVE_SYSCALL_TRACEPOINTS 62c32e64e8SGuo Ren select MAY_HAVE_SPARSE_IRQ 63c32e64e8SGuo Ren select MODULES_USE_ELF_RELA if MODULES 64c32e64e8SGuo Ren select OF 65c32e64e8SGuo Ren select OF_EARLY_FLATTREE 66f50fd2d8SGuo Ren select PERF_USE_VMALLOC if CPU_CK610 67c32e64e8SGuo Ren select RTC_LIB 68c32e64e8SGuo Ren select TIMER_OF 69c32e64e8SGuo Ren select USB_ARCH_HAS_EHCI 70c32e64e8SGuo Ren select USB_ARCH_HAS_OHCI 715b49c82dSMaJun select GENERIC_PCI_IOMAP 725b49c82dSMaJun select HAVE_PCI 735b49c82dSMaJun select PCI_DOMAINS_GENERIC if PCI 745b49c82dSMaJun select PCI_SYSCALL if PCI 755b49c82dSMaJun select PCI_MSI if PCI 76c32e64e8SGuo Ren 77000591f1SGuo Renconfig LOCKDEP_SUPPORT 78000591f1SGuo Ren def_bool y 79000591f1SGuo Ren 808f6bb793SGuo Renconfig ARCH_SUPPORTS_UPROBES 818f6bb793SGuo Ren def_bool y if !CPU_CK610 828f6bb793SGuo Ren 83c32e64e8SGuo Renconfig CPU_HAS_CACHEV2 84c32e64e8SGuo Ren bool 85c32e64e8SGuo Ren 86c32e64e8SGuo Renconfig CPU_HAS_FPUV2 87c32e64e8SGuo Ren bool 88c32e64e8SGuo Ren 89c32e64e8SGuo Renconfig CPU_HAS_HILO 90c32e64e8SGuo Ren bool 91c32e64e8SGuo Ren 92c32e64e8SGuo Renconfig CPU_HAS_TLBI 93c32e64e8SGuo Ren bool 94c32e64e8SGuo Ren 95c32e64e8SGuo Renconfig CPU_HAS_LDSTEX 96c32e64e8SGuo Ren bool 97c32e64e8SGuo Ren help 98bebd26abSRandy Dunlap For SMP, CPU needs "ldex&stex" instructions for atomic operations. 99c32e64e8SGuo Ren 100c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC 101c32e64e8SGuo Ren bool 102c32e64e8SGuo Ren 103c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN 104c32e64e8SGuo Ren bool 105c32e64e8SGuo Ren 106c32e64e8SGuo Renconfig CPU_NO_USER_BKPT 107c32e64e8SGuo Ren bool 108c32e64e8SGuo Ren help 109c32e64e8SGuo Ren For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because 110c32e64e8SGuo Ren abiv2 is 16/32bit instruction set and "trap 1" is 32bit. 111c32e64e8SGuo Ren So we need a 16bit instruction as user space bkpt, and it will cause an illegal 112c32e64e8SGuo Ren instruction exception. 113c32e64e8SGuo Ren In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not. 114c32e64e8SGuo Ren 115c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY 116c32e64e8SGuo Ren def_bool y 117c32e64e8SGuo Ren 118c32e64e8SGuo Renconfig GENERIC_CSUM 119c32e64e8SGuo Ren def_bool y 120c32e64e8SGuo Ren 121c32e64e8SGuo Renconfig GENERIC_HWEIGHT 122c32e64e8SGuo Ren def_bool y 123c32e64e8SGuo Ren 124c32e64e8SGuo Renconfig MMU 125c32e64e8SGuo Ren def_bool y 126c32e64e8SGuo Ren 1270ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT 1280ea2dc7cSGuo Ren def_bool y 1290ea2dc7cSGuo Ren 130c32e64e8SGuo Renconfig TIME_LOW_RES 131c32e64e8SGuo Ren def_bool y 132c32e64e8SGuo Ren 133c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT 134c32e64e8SGuo Ren def_bool y 135c32e64e8SGuo Ren 136c32e64e8SGuo Renconfig CPU_TLB_SIZE 137c32e64e8SGuo Ren int 138c32e64e8SGuo Ren default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 139c32e64e8SGuo Ren default "1024" if (CPU_CK860) 140c32e64e8SGuo Ren 141c32e64e8SGuo Renconfig CPU_ASID_BITS 142c32e64e8SGuo Ren int 143c32e64e8SGuo Ren default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 144c32e64e8SGuo Ren default "12" if (CPU_CK860) 145c32e64e8SGuo Ren 146c32e64e8SGuo Renconfig L1_CACHE_SHIFT 147c32e64e8SGuo Ren int 148c32e64e8SGuo Ren default "4" if (CPU_CK610) 149c32e64e8SGuo Ren default "5" if (CPU_CK807 || CPU_CK810) 150c32e64e8SGuo Ren default "6" if (CPU_CK860) 151c32e64e8SGuo Ren 152c32e64e8SGuo Renmenu "Processor type and features" 153c32e64e8SGuo Ren 154c32e64e8SGuo Renchoice 155c32e64e8SGuo Ren prompt "CPU MODEL" 156c32e64e8SGuo Ren default CPU_CK807 157c32e64e8SGuo Ren 158c32e64e8SGuo Renconfig CPU_CK610 159c32e64e8SGuo Ren bool "CSKY CPU ck610" 160c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 161c32e64e8SGuo Ren select CPU_NEED_SOFTALIGN 162c32e64e8SGuo Ren select CPU_NO_USER_BKPT 163c32e64e8SGuo Ren 164c32e64e8SGuo Renconfig CPU_CK810 165c32e64e8SGuo Ren bool "CSKY CPU ck810" 166c32e64e8SGuo Ren select CPU_HAS_HILO 167c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 168c32e64e8SGuo Ren 169c32e64e8SGuo Renconfig CPU_CK807 170c32e64e8SGuo Ren bool "CSKY CPU ck807" 171c32e64e8SGuo Ren select CPU_HAS_HILO 172c32e64e8SGuo Ren 173c32e64e8SGuo Renconfig CPU_CK860 174c32e64e8SGuo Ren bool "CSKY CPU ck860" 175c32e64e8SGuo Ren select CPU_HAS_TLBI 176c32e64e8SGuo Ren select CPU_HAS_CACHEV2 177c32e64e8SGuo Ren select CPU_HAS_LDSTEX 178c32e64e8SGuo Ren select CPU_HAS_FPUV2 179c32e64e8SGuo Renendchoice 180c32e64e8SGuo Ren 181c32e64e8SGuo Renchoice 182f50fd2d8SGuo Ren prompt "C-SKY PMU type" 183f50fd2d8SGuo Ren depends on PERF_EVENTS 184f50fd2d8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 185f50fd2d8SGuo Ren 186f50fd2d8SGuo Renconfig CPU_PMU_NONE 187f50fd2d8SGuo Ren bool "None" 188f50fd2d8SGuo Ren 189f50fd2d8SGuo Renconfig CSKY_PMU_V1 190f50fd2d8SGuo Ren bool "Performance Monitoring Unit Ver.1" 191f50fd2d8SGuo Ren 192f50fd2d8SGuo Renendchoice 193f50fd2d8SGuo Ren 194f50fd2d8SGuo Renchoice 195c32e64e8SGuo Ren prompt "Power Manager Instruction (wait/doze/stop)" 196c32e64e8SGuo Ren default CPU_PM_NONE 197c32e64e8SGuo Ren 198c32e64e8SGuo Renconfig CPU_PM_NONE 199c32e64e8SGuo Ren bool "None" 200c32e64e8SGuo Ren 201c32e64e8SGuo Renconfig CPU_PM_WAIT 202c32e64e8SGuo Ren bool "wait" 203c32e64e8SGuo Ren 204c32e64e8SGuo Renconfig CPU_PM_DOZE 205c32e64e8SGuo Ren bool "doze" 206c32e64e8SGuo Ren 207c32e64e8SGuo Renconfig CPU_PM_STOP 208c32e64e8SGuo Ren bool "stop" 209c32e64e8SGuo Renendchoice 210c32e64e8SGuo Ren 211f525bb2cSGuo Renmenuconfig HAVE_TCM 212f525bb2cSGuo Ren bool "Tightly-Coupled/Sram Memory" 213f525bb2cSGuo Ren select GENERIC_ALLOCATOR 214f525bb2cSGuo Ren help 215f525bb2cSGuo Ren The implementation are not only used by TCM (Tightly-Coupled Meory) 216f525bb2cSGuo Ren but also used by sram on SOC bus. It follow existed linux tcm 217f525bb2cSGuo Ren software interface, so that old tcm application codes could be 218f525bb2cSGuo Ren re-used directly. 219f525bb2cSGuo Ren 220f525bb2cSGuo Renif HAVE_TCM 221f525bb2cSGuo Renconfig ITCM_RAM_BASE 222f525bb2cSGuo Ren hex "ITCM ram base" 223f525bb2cSGuo Ren default 0xffffffff 224f525bb2cSGuo Ren 225f525bb2cSGuo Renconfig ITCM_NR_PAGES 226f525bb2cSGuo Ren int "Page count of ITCM size: NR*4KB" 227f525bb2cSGuo Ren range 1 256 228f525bb2cSGuo Ren default 32 229f525bb2cSGuo Ren 230f525bb2cSGuo Renconfig HAVE_DTCM 231f525bb2cSGuo Ren bool "DTCM Support" 232f525bb2cSGuo Ren 233f525bb2cSGuo Renconfig DTCM_RAM_BASE 234f525bb2cSGuo Ren hex "DTCM ram base" 235f525bb2cSGuo Ren depends on HAVE_DTCM 236f525bb2cSGuo Ren default 0xffffffff 237f525bb2cSGuo Ren 238f525bb2cSGuo Renconfig DTCM_NR_PAGES 239f525bb2cSGuo Ren int "Page count of DTCM size: NR*4KB" 240f525bb2cSGuo Ren depends on HAVE_DTCM 241f525bb2cSGuo Ren range 1 256 242f525bb2cSGuo Ren default 32 243f525bb2cSGuo Renendif 244f525bb2cSGuo Ren 245c32e64e8SGuo Renconfig CPU_HAS_VDSP 246c32e64e8SGuo Ren bool "CPU has VDSP coprocessor" 247c32e64e8SGuo Ren depends on CPU_HAS_FPU && CPU_HAS_FPUV2 248c32e64e8SGuo Ren 249c32e64e8SGuo Renconfig CPU_HAS_FPU 250c32e64e8SGuo Ren bool "CPU has FPU coprocessor" 251c32e64e8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 252c32e64e8SGuo Ren 253761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS 254761b4f69SGuo Ren bool "CPU has Icache invalidate instructions" 255761b4f69SGuo Ren depends on CPU_HAS_CACHEV2 256761b4f69SGuo Ren 257c32e64e8SGuo Renconfig CPU_HAS_TEE 258c32e64e8SGuo Ren bool "CPU has Trusted Execution Environment" 259c32e64e8SGuo Ren depends on CPU_CK810 260c32e64e8SGuo Ren 261c32e64e8SGuo Renconfig SMP 262c32e64e8SGuo Ren bool "Symmetric Multi-Processing (SMP) support for C-SKY" 263c32e64e8SGuo Ren depends on CPU_CK860 264c32e64e8SGuo Ren default n 265c32e64e8SGuo Ren 266c32e64e8SGuo Renconfig NR_CPUS 267c32e64e8SGuo Ren int "Maximum number of CPUs (2-32)" 268c32e64e8SGuo Ren range 2 32 269c32e64e8SGuo Ren depends on SMP 270c32e64e8SGuo Ren default "2" 271c32e64e8SGuo Ren 272c32e64e8SGuo Renconfig HIGHMEM 273c32e64e8SGuo Ren bool "High Memory Support" 274c32e64e8SGuo Ren depends on !CPU_CK610 275c32e64e8SGuo Ren default y 276c32e64e8SGuo Ren 277c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER 278c32e64e8SGuo Ren int "Maximum zone order" 279c32e64e8SGuo Ren default "11" 280c32e64e8SGuo Ren 281c32e64e8SGuo Renconfig RAM_BASE 282c32e64e8SGuo Ren hex "DRAM start addr (the same with memory-section in dts)" 283c32e64e8SGuo Ren default 0x0 284c32e64e8SGuo Ren 285859e5f45SGuo Renconfig HOTPLUG_CPU 286859e5f45SGuo Ren bool "Support for hot-pluggable CPUs" 287859e5f45SGuo Ren select GENERIC_IRQ_MIGRATION 288859e5f45SGuo Ren depends on SMP 289859e5f45SGuo Ren help 290859e5f45SGuo Ren Say Y here to allow turning CPUs off and on. CPUs can be 291859e5f45SGuo Ren controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 292859e5f45SGuo Ren 293859e5f45SGuo Ren Say N if you want to disable CPU hotplug. 294c32e64e8SGuo Renendmenu 295c32e64e8SGuo Ren 296a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms" 297a736fa1eSGuo Ren 298c32e64e8SGuo Rensource "kernel/Kconfig.hz" 299