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 192*f525bb2cSGuo Renmenuconfig HAVE_TCM 193*f525bb2cSGuo Ren bool "Tightly-Coupled/Sram Memory" 194*f525bb2cSGuo Ren depends on HIGHMEM 195*f525bb2cSGuo Ren select GENERIC_ALLOCATOR 196*f525bb2cSGuo Ren help 197*f525bb2cSGuo Ren The implementation are not only used by TCM (Tightly-Coupled Meory) 198*f525bb2cSGuo Ren but also used by sram on SOC bus. It follow existed linux tcm 199*f525bb2cSGuo Ren software interface, so that old tcm application codes could be 200*f525bb2cSGuo Ren re-used directly. 201*f525bb2cSGuo Ren 202*f525bb2cSGuo Renif HAVE_TCM 203*f525bb2cSGuo Renconfig ITCM_RAM_BASE 204*f525bb2cSGuo Ren hex "ITCM ram base" 205*f525bb2cSGuo Ren default 0xffffffff 206*f525bb2cSGuo Ren 207*f525bb2cSGuo Renconfig ITCM_NR_PAGES 208*f525bb2cSGuo Ren int "Page count of ITCM size: NR*4KB" 209*f525bb2cSGuo Ren range 1 256 210*f525bb2cSGuo Ren default 32 211*f525bb2cSGuo Ren 212*f525bb2cSGuo Renconfig HAVE_DTCM 213*f525bb2cSGuo Ren bool "DTCM Support" 214*f525bb2cSGuo Ren 215*f525bb2cSGuo Renconfig DTCM_RAM_BASE 216*f525bb2cSGuo Ren hex "DTCM ram base" 217*f525bb2cSGuo Ren depends on HAVE_DTCM 218*f525bb2cSGuo Ren default 0xffffffff 219*f525bb2cSGuo Ren 220*f525bb2cSGuo Renconfig DTCM_NR_PAGES 221*f525bb2cSGuo Ren int "Page count of DTCM size: NR*4KB" 222*f525bb2cSGuo Ren depends on HAVE_DTCM 223*f525bb2cSGuo Ren range 1 256 224*f525bb2cSGuo Ren default 32 225*f525bb2cSGuo Renendif 226*f525bb2cSGuo Ren 227c32e64e8SGuo Renconfig CPU_HAS_VDSP 228c32e64e8SGuo Ren bool "CPU has VDSP coprocessor" 229c32e64e8SGuo Ren depends on CPU_HAS_FPU && CPU_HAS_FPUV2 230c32e64e8SGuo Ren 231c32e64e8SGuo Renconfig CPU_HAS_FPU 232c32e64e8SGuo Ren bool "CPU has FPU coprocessor" 233c32e64e8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 234c32e64e8SGuo Ren 235c32e64e8SGuo Renconfig CPU_HAS_TEE 236c32e64e8SGuo Ren bool "CPU has Trusted Execution Environment" 237c32e64e8SGuo Ren depends on CPU_CK810 238c32e64e8SGuo Ren 239c32e64e8SGuo Renconfig SMP 240c32e64e8SGuo Ren bool "Symmetric Multi-Processing (SMP) support for C-SKY" 241c32e64e8SGuo Ren depends on CPU_CK860 242c32e64e8SGuo Ren default n 243c32e64e8SGuo Ren 244c32e64e8SGuo Renconfig NR_CPUS 245c32e64e8SGuo Ren int "Maximum number of CPUs (2-32)" 246c32e64e8SGuo Ren range 2 32 247c32e64e8SGuo Ren depends on SMP 248c32e64e8SGuo Ren default "2" 249c32e64e8SGuo Ren 250c32e64e8SGuo Renconfig HIGHMEM 251c32e64e8SGuo Ren bool "High Memory Support" 252c32e64e8SGuo Ren depends on !CPU_CK610 253c32e64e8SGuo Ren default y 254c32e64e8SGuo Ren 255c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER 256c32e64e8SGuo Ren int "Maximum zone order" 257c32e64e8SGuo Ren default "11" 258c32e64e8SGuo Ren 259c32e64e8SGuo Renconfig RAM_BASE 260c32e64e8SGuo Ren hex "DRAM start addr (the same with memory-section in dts)" 261c32e64e8SGuo Ren default 0x0 262c32e64e8SGuo Ren 263859e5f45SGuo Renconfig HOTPLUG_CPU 264859e5f45SGuo Ren bool "Support for hot-pluggable CPUs" 265859e5f45SGuo Ren select GENERIC_IRQ_MIGRATION 266859e5f45SGuo Ren depends on SMP 267859e5f45SGuo Ren help 268859e5f45SGuo Ren Say Y here to allow turning CPUs off and on. CPUs can be 269859e5f45SGuo Ren controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 270859e5f45SGuo Ren 271859e5f45SGuo Ren Say N if you want to disable CPU hotplug. 272c32e64e8SGuo Renendmenu 273c32e64e8SGuo Ren 274c32e64e8SGuo Rensource "kernel/Kconfig.hz" 275