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 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_CLOCKEVENTS 32c32e64e8SGuo Ren select GENERIC_CPU_DEVICES 33c32e64e8SGuo Ren select GENERIC_IRQ_CHIP 34c32e64e8SGuo Ren select GENERIC_IRQ_PROBE 35c32e64e8SGuo Ren select GENERIC_IRQ_SHOW 36c32e64e8SGuo Ren select GENERIC_IRQ_MULTI_HANDLER 37c32e64e8SGuo Ren select GENERIC_SCHED_CLOCK 38c32e64e8SGuo Ren select GENERIC_SMP_IDLE_THREAD 391994cc49SGuo Ren select GX6605S_TIMER if CPU_CK610 40c32e64e8SGuo Ren select HAVE_ARCH_TRACEHOOK 412f7932b0SGuo Ren select HAVE_ARCH_AUDITSYSCALL 42953131e5SGuo Ren select HAVE_ARCH_MMAP_RND_BITS 43e95a4f8cSGuo Ren select HAVE_ARCH_SECCOMP_FILTER 440b9f386cSGuo Ren select HAVE_COPY_THREAD_TLS 4518c07d23SGuo Ren select HAVE_DEBUG_BUGVERBOSE 4628bb030fSGuo Ren select HAVE_DYNAMIC_FTRACE 4789a3927aSGuo Ren select HAVE_DYNAMIC_FTRACE_WITH_REGS 48230c77a5SGuo Ren select HAVE_FUNCTION_TRACER 49d7950be1SGuo Ren select HAVE_FUNCTION_GRAPH_TRACER 5071e193d7SGuo Ren select HAVE_FUNCTION_ERROR_INJECTION 5128bb030fSGuo Ren select HAVE_FTRACE_MCOUNT_RECORD 52c32e64e8SGuo Ren select HAVE_KERNEL_GZIP 53c32e64e8SGuo Ren select HAVE_KERNEL_LZO 54c32e64e8SGuo Ren select HAVE_KERNEL_LZMA 5533e53ae1SGuo Ren select HAVE_KPROBES if !CPU_CK610 5633e53ae1SGuo Ren select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 5733e53ae1SGuo Ren select HAVE_KRETPROBES if !CPU_CK610 58f50fd2d8SGuo Ren select HAVE_PERF_EVENTS 59daac95e7SMao Han select HAVE_PERF_REGS 60daac95e7SMao Han select HAVE_PERF_USER_STACK_DUMP 61c32e64e8SGuo Ren select HAVE_DMA_CONTIGUOUS 62bfe47f35SGuo Ren select HAVE_REGS_AND_STACK_ACCESS_API 639866d141SGuo Ren select HAVE_RSEQ 642f78c73fSMao Han select HAVE_STACKPROTECTOR 652f7932b0SGuo Ren select HAVE_SYSCALL_TRACEPOINTS 66c32e64e8SGuo Ren select MAY_HAVE_SPARSE_IRQ 67c32e64e8SGuo Ren select MODULES_USE_ELF_RELA if MODULES 68c32e64e8SGuo Ren select OF 69c32e64e8SGuo Ren select OF_EARLY_FLATTREE 70f50fd2d8SGuo Ren select PERF_USE_VMALLOC if CPU_CK610 71c32e64e8SGuo Ren select RTC_LIB 72c32e64e8SGuo Ren select TIMER_OF 73c32e64e8SGuo Ren select USB_ARCH_HAS_EHCI 74c32e64e8SGuo Ren select USB_ARCH_HAS_OHCI 755b49c82dSMaJun select GENERIC_PCI_IOMAP 765b49c82dSMaJun select HAVE_PCI 775b49c82dSMaJun select PCI_DOMAINS_GENERIC if PCI 785b49c82dSMaJun select PCI_SYSCALL if PCI 795b49c82dSMaJun select PCI_MSI if PCI 80c32e64e8SGuo Ren 81000591f1SGuo Renconfig LOCKDEP_SUPPORT 82000591f1SGuo Ren def_bool y 83000591f1SGuo Ren 848f6bb793SGuo Renconfig ARCH_SUPPORTS_UPROBES 858f6bb793SGuo Ren def_bool y if !CPU_CK610 868f6bb793SGuo Ren 87c32e64e8SGuo Renconfig CPU_HAS_CACHEV2 88c32e64e8SGuo Ren bool 89c32e64e8SGuo Ren 90c32e64e8SGuo Renconfig CPU_HAS_FPUV2 91c32e64e8SGuo Ren bool 92c32e64e8SGuo Ren 93c32e64e8SGuo Renconfig CPU_HAS_HILO 94c32e64e8SGuo Ren bool 95c32e64e8SGuo Ren 96c32e64e8SGuo Renconfig CPU_HAS_TLBI 97c32e64e8SGuo Ren bool 98c32e64e8SGuo Ren 99c32e64e8SGuo Renconfig CPU_HAS_LDSTEX 100c32e64e8SGuo Ren bool 101c32e64e8SGuo Ren help 102bebd26abSRandy Dunlap For SMP, CPU needs "ldex&stex" instructions for atomic operations. 103c32e64e8SGuo Ren 104c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC 105c32e64e8SGuo Ren bool 106c32e64e8SGuo Ren 107c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN 108c32e64e8SGuo Ren bool 109c32e64e8SGuo Ren 110c32e64e8SGuo Renconfig CPU_NO_USER_BKPT 111c32e64e8SGuo Ren bool 112c32e64e8SGuo Ren help 113c32e64e8SGuo Ren For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because 114c32e64e8SGuo Ren abiv2 is 16/32bit instruction set and "trap 1" is 32bit. 115c32e64e8SGuo Ren So we need a 16bit instruction as user space bkpt, and it will cause an illegal 116c32e64e8SGuo Ren instruction exception. 117c32e64e8SGuo Ren In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not. 118c32e64e8SGuo Ren 119c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY 120c32e64e8SGuo Ren def_bool y 121c32e64e8SGuo Ren 122c32e64e8SGuo Renconfig GENERIC_CSUM 123c32e64e8SGuo Ren def_bool y 124c32e64e8SGuo Ren 125c32e64e8SGuo Renconfig GENERIC_HWEIGHT 126c32e64e8SGuo Ren def_bool y 127c32e64e8SGuo Ren 128c32e64e8SGuo Renconfig MMU 129c32e64e8SGuo Ren def_bool y 130c32e64e8SGuo Ren 1310ea2dc7cSGuo Renconfig STACKTRACE_SUPPORT 1320ea2dc7cSGuo Ren def_bool y 1330ea2dc7cSGuo Ren 134c32e64e8SGuo Renconfig TIME_LOW_RES 135c32e64e8SGuo Ren def_bool y 136c32e64e8SGuo Ren 137c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT 138c32e64e8SGuo Ren def_bool y 139c32e64e8SGuo Ren 140c32e64e8SGuo Renconfig CPU_TLB_SIZE 141c32e64e8SGuo Ren int 142c32e64e8SGuo Ren default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 143c32e64e8SGuo Ren default "1024" if (CPU_CK860) 144c32e64e8SGuo Ren 145c32e64e8SGuo Renconfig CPU_ASID_BITS 146c32e64e8SGuo Ren int 147c32e64e8SGuo Ren default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810) 148c32e64e8SGuo Ren default "12" if (CPU_CK860) 149c32e64e8SGuo Ren 150c32e64e8SGuo Renconfig L1_CACHE_SHIFT 151c32e64e8SGuo Ren int 152c32e64e8SGuo Ren default "4" if (CPU_CK610) 153c32e64e8SGuo Ren default "5" if (CPU_CK807 || CPU_CK810) 154c32e64e8SGuo Ren default "6" if (CPU_CK860) 155c32e64e8SGuo Ren 156953131e5SGuo Renconfig ARCH_MMAP_RND_BITS_MIN 157953131e5SGuo Ren default 8 158953131e5SGuo Ren 159953131e5SGuo Ren# max bits determined by the following formula: 160953131e5SGuo Ren# VA_BITS - PAGE_SHIFT - 3 161953131e5SGuo Renconfig ARCH_MMAP_RND_BITS_MAX 162953131e5SGuo Ren default 17 163953131e5SGuo Ren 164c32e64e8SGuo Renmenu "Processor type and features" 165c32e64e8SGuo Ren 166c32e64e8SGuo Renchoice 167c32e64e8SGuo Ren prompt "CPU MODEL" 168c32e64e8SGuo Ren default CPU_CK807 169c32e64e8SGuo Ren 170c32e64e8SGuo Renconfig CPU_CK610 171c32e64e8SGuo Ren bool "CSKY CPU ck610" 172c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 173c32e64e8SGuo Ren select CPU_NEED_SOFTALIGN 174c32e64e8SGuo Ren select CPU_NO_USER_BKPT 175c32e64e8SGuo Ren 176c32e64e8SGuo Renconfig CPU_CK810 177c32e64e8SGuo Ren bool "CSKY CPU ck810" 178c32e64e8SGuo Ren select CPU_HAS_HILO 179c32e64e8SGuo Ren select CPU_NEED_TLBSYNC 180c32e64e8SGuo Ren 181c32e64e8SGuo Renconfig CPU_CK807 182c32e64e8SGuo Ren bool "CSKY CPU ck807" 183c32e64e8SGuo Ren select CPU_HAS_HILO 184c32e64e8SGuo Ren 185c32e64e8SGuo Renconfig CPU_CK860 186c32e64e8SGuo Ren bool "CSKY CPU ck860" 187c32e64e8SGuo Ren select CPU_HAS_TLBI 188c32e64e8SGuo Ren select CPU_HAS_CACHEV2 189c32e64e8SGuo Ren select CPU_HAS_LDSTEX 190c32e64e8SGuo Ren select CPU_HAS_FPUV2 191c32e64e8SGuo Renendchoice 192c32e64e8SGuo Ren 193c32e64e8SGuo Renchoice 194f50fd2d8SGuo Ren prompt "C-SKY PMU type" 195f50fd2d8SGuo Ren depends on PERF_EVENTS 196f50fd2d8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 197f50fd2d8SGuo Ren 198f50fd2d8SGuo Renconfig CPU_PMU_NONE 199f50fd2d8SGuo Ren bool "None" 200f50fd2d8SGuo Ren 201f50fd2d8SGuo Renconfig CSKY_PMU_V1 202f50fd2d8SGuo Ren bool "Performance Monitoring Unit Ver.1" 203f50fd2d8SGuo Ren 204f50fd2d8SGuo Renendchoice 205f50fd2d8SGuo Ren 206f50fd2d8SGuo Renchoice 207c32e64e8SGuo Ren prompt "Power Manager Instruction (wait/doze/stop)" 208c32e64e8SGuo Ren default CPU_PM_NONE 209c32e64e8SGuo Ren 210c32e64e8SGuo Renconfig CPU_PM_NONE 211c32e64e8SGuo Ren bool "None" 212c32e64e8SGuo Ren 213c32e64e8SGuo Renconfig CPU_PM_WAIT 214c32e64e8SGuo Ren bool "wait" 215c32e64e8SGuo Ren 216c32e64e8SGuo Renconfig CPU_PM_DOZE 217c32e64e8SGuo Ren bool "doze" 218c32e64e8SGuo Ren 219c32e64e8SGuo Renconfig CPU_PM_STOP 220c32e64e8SGuo Ren bool "stop" 221c32e64e8SGuo Renendchoice 222c32e64e8SGuo Ren 223f525bb2cSGuo Renmenuconfig HAVE_TCM 224f525bb2cSGuo Ren bool "Tightly-Coupled/Sram Memory" 225f525bb2cSGuo Ren select GENERIC_ALLOCATOR 226f525bb2cSGuo Ren help 227f525bb2cSGuo Ren The implementation are not only used by TCM (Tightly-Coupled Meory) 228f525bb2cSGuo Ren but also used by sram on SOC bus. It follow existed linux tcm 229f525bb2cSGuo Ren software interface, so that old tcm application codes could be 230f525bb2cSGuo Ren re-used directly. 231f525bb2cSGuo Ren 232f525bb2cSGuo Renif HAVE_TCM 233f525bb2cSGuo Renconfig ITCM_RAM_BASE 234f525bb2cSGuo Ren hex "ITCM ram base" 235f525bb2cSGuo Ren default 0xffffffff 236f525bb2cSGuo Ren 237f525bb2cSGuo Renconfig ITCM_NR_PAGES 238f525bb2cSGuo Ren int "Page count of ITCM size: NR*4KB" 239f525bb2cSGuo Ren range 1 256 240f525bb2cSGuo Ren default 32 241f525bb2cSGuo Ren 242f525bb2cSGuo Renconfig HAVE_DTCM 243f525bb2cSGuo Ren bool "DTCM Support" 244f525bb2cSGuo Ren 245f525bb2cSGuo Renconfig DTCM_RAM_BASE 246f525bb2cSGuo Ren hex "DTCM ram base" 247f525bb2cSGuo Ren depends on HAVE_DTCM 248f525bb2cSGuo Ren default 0xffffffff 249f525bb2cSGuo Ren 250f525bb2cSGuo Renconfig DTCM_NR_PAGES 251f525bb2cSGuo Ren int "Page count of DTCM size: NR*4KB" 252f525bb2cSGuo Ren depends on HAVE_DTCM 253f525bb2cSGuo Ren range 1 256 254f525bb2cSGuo Ren default 32 255f525bb2cSGuo Renendif 256f525bb2cSGuo Ren 257c32e64e8SGuo Renconfig CPU_HAS_VDSP 258c32e64e8SGuo Ren bool "CPU has VDSP coprocessor" 259c32e64e8SGuo Ren depends on CPU_HAS_FPU && CPU_HAS_FPUV2 260c32e64e8SGuo Ren 261c32e64e8SGuo Renconfig CPU_HAS_FPU 262c32e64e8SGuo Ren bool "CPU has FPU coprocessor" 263c32e64e8SGuo Ren depends on CPU_CK807 || CPU_CK810 || CPU_CK860 264c32e64e8SGuo Ren 265761b4f69SGuo Renconfig CPU_HAS_ICACHE_INS 266761b4f69SGuo Ren bool "CPU has Icache invalidate instructions" 267761b4f69SGuo Ren depends on CPU_HAS_CACHEV2 268761b4f69SGuo Ren 269c32e64e8SGuo Renconfig CPU_HAS_TEE 270c32e64e8SGuo Ren bool "CPU has Trusted Execution Environment" 271c32e64e8SGuo Ren depends on CPU_CK810 272c32e64e8SGuo Ren 273c32e64e8SGuo Renconfig SMP 274c32e64e8SGuo Ren bool "Symmetric Multi-Processing (SMP) support for C-SKY" 275c32e64e8SGuo Ren depends on CPU_CK860 276c32e64e8SGuo Ren default n 277c32e64e8SGuo Ren 278c32e64e8SGuo Renconfig NR_CPUS 279c32e64e8SGuo Ren int "Maximum number of CPUs (2-32)" 280c32e64e8SGuo Ren range 2 32 281c32e64e8SGuo Ren depends on SMP 282*50d23a1cSGuo Ren default "4" 283c32e64e8SGuo Ren 284c32e64e8SGuo Renconfig HIGHMEM 285c32e64e8SGuo Ren bool "High Memory Support" 286c32e64e8SGuo Ren depends on !CPU_CK610 287c32e64e8SGuo Ren default y 288c32e64e8SGuo Ren 289c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER 290c32e64e8SGuo Ren int "Maximum zone order" 291c32e64e8SGuo Ren default "11" 292c32e64e8SGuo Ren 293c32e64e8SGuo Renconfig RAM_BASE 294c32e64e8SGuo Ren hex "DRAM start addr (the same with memory-section in dts)" 295c32e64e8SGuo Ren default 0x0 296c32e64e8SGuo Ren 297859e5f45SGuo Renconfig HOTPLUG_CPU 298859e5f45SGuo Ren bool "Support for hot-pluggable CPUs" 299859e5f45SGuo Ren select GENERIC_IRQ_MIGRATION 300859e5f45SGuo Ren depends on SMP 301859e5f45SGuo Ren help 302859e5f45SGuo Ren Say Y here to allow turning CPUs off and on. CPUs can be 303859e5f45SGuo Ren controlled through /sys/devices/system/cpu/cpu1/hotplug/target. 304859e5f45SGuo Ren 305859e5f45SGuo Ren Say N if you want to disable CPU hotplug. 306c32e64e8SGuo Renendmenu 307c32e64e8SGuo Ren 308a736fa1eSGuo Rensource "arch/csky/Kconfig.platforms" 309a736fa1eSGuo Ren 310c32e64e8SGuo Rensource "kernel/Kconfig.hz" 311e95a4f8cSGuo Ren 312e95a4f8cSGuo Renconfig SECCOMP 313e95a4f8cSGuo Ren bool "Enable seccomp to safely compute untrusted bytecode" 314e95a4f8cSGuo Ren help 315e95a4f8cSGuo Ren This kernel feature is useful for number crunching applications 316e95a4f8cSGuo Ren that may need to compute untrusted bytecode during their 317e95a4f8cSGuo Ren execution. By using pipes or other transports made available to 318e95a4f8cSGuo Ren the process as file descriptors supporting the read/write 319e95a4f8cSGuo Ren syscalls, it's possible to isolate those applications in 320e95a4f8cSGuo Ren their own address space using seccomp. Once seccomp is 321e95a4f8cSGuo Ren enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 322e95a4f8cSGuo Ren and the task is only allowed to execute a few safe syscalls 323e95a4f8cSGuo Ren defined by each seccomp mode. 324