linux/arch/csky/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2config CSKY
   3        def_bool y
   4        select ARCH_32BIT_OFF_T
   5        select ARCH_HAS_DMA_PREP_COHERENT
   6        select ARCH_HAS_GCOV_PROFILE_ALL
   7        select ARCH_HAS_SYNC_DMA_FOR_CPU
   8        select ARCH_HAS_SYNC_DMA_FOR_DEVICE
   9        select ARCH_USE_BUILTIN_BSWAP
  10        select ARCH_USE_QUEUED_RWLOCKS
  11        select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace)
  12        select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
  13        select COMMON_CLK
  14        select CLKSRC_MMIO
  15        select CSKY_MPINTC if CPU_CK860
  16        select CSKY_MP_TIMER if CPU_CK860
  17        select CSKY_APB_INTC
  18        select DMA_DIRECT_REMAP
  19        select IRQ_DOMAIN
  20        select HANDLE_DOMAIN_IRQ
  21        select DW_APB_TIMER_OF
  22        select GENERIC_IOREMAP
  23        select GENERIC_LIB_ASHLDI3
  24        select GENERIC_LIB_ASHRDI3
  25        select GENERIC_LIB_LSHRDI3
  26        select GENERIC_LIB_MULDI3
  27        select GENERIC_LIB_CMPDI2
  28        select GENERIC_LIB_UCMPDI2
  29        select GENERIC_ALLOCATOR
  30        select GENERIC_ATOMIC64
  31        select GENERIC_CPU_DEVICES
  32        select GENERIC_IRQ_CHIP
  33        select GENERIC_IRQ_PROBE
  34        select GENERIC_IRQ_SHOW
  35        select GENERIC_IRQ_MULTI_HANDLER
  36        select GENERIC_SCHED_CLOCK
  37        select GENERIC_SMP_IDLE_THREAD
  38        select GENERIC_TIME_VSYSCALL
  39        select GENERIC_VDSO_32
  40        select GENERIC_GETTIMEOFDAY
  41        select GX6605S_TIMER if CPU_CK610
  42        select HAVE_ARCH_TRACEHOOK
  43        select HAVE_ARCH_AUDITSYSCALL
  44        select HAVE_ARCH_MMAP_RND_BITS
  45        select HAVE_ARCH_SECCOMP_FILTER
  46        select HAVE_CONTEXT_TRACKING
  47        select HAVE_VIRT_CPU_ACCOUNTING_GEN
  48        select HAVE_DEBUG_BUGVERBOSE
  49        select HAVE_DEBUG_KMEMLEAK
  50        select HAVE_DYNAMIC_FTRACE
  51        select HAVE_DYNAMIC_FTRACE_WITH_REGS
  52        select HAVE_GENERIC_VDSO
  53        select HAVE_FUNCTION_TRACER
  54        select HAVE_FUNCTION_GRAPH_TRACER
  55        select HAVE_FUNCTION_ERROR_INJECTION
  56        select HAVE_FUTEX_CMPXCHG if FUTEX && SMP
  57        select HAVE_FTRACE_MCOUNT_RECORD
  58        select HAVE_KERNEL_GZIP
  59        select HAVE_KERNEL_LZO
  60        select HAVE_KERNEL_LZMA
  61        select HAVE_KPROBES if !CPU_CK610
  62        select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
  63        select HAVE_KRETPROBES if !CPU_CK610
  64        select HAVE_PERF_EVENTS
  65        select HAVE_PERF_REGS
  66        select HAVE_PERF_USER_STACK_DUMP
  67        select HAVE_DMA_CONTIGUOUS
  68        select HAVE_REGS_AND_STACK_ACCESS_API
  69        select HAVE_RSEQ
  70        select HAVE_STACKPROTECTOR
  71        select HAVE_SYSCALL_TRACEPOINTS
  72        select MAY_HAVE_SPARSE_IRQ
  73        select MODULES_USE_ELF_RELA if MODULES
  74        select OF
  75        select OF_EARLY_FLATTREE
  76        select PERF_USE_VMALLOC if CPU_CK610
  77        select RTC_LIB
  78        select TIMER_OF
  79        select GENERIC_PCI_IOMAP
  80        select HAVE_PCI
  81        select PCI_DOMAINS_GENERIC if PCI
  82        select PCI_SYSCALL if PCI
  83        select PCI_MSI if PCI
  84        select SET_FS
  85        select TRACE_IRQFLAGS_SUPPORT
  86
  87config LOCKDEP_SUPPORT
  88        def_bool y
  89
  90config ARCH_SUPPORTS_UPROBES
  91        def_bool y if !CPU_CK610
  92
  93config CPU_HAS_CACHEV2
  94        bool
  95
  96config CPU_HAS_FPUV2
  97        bool
  98
  99config CPU_HAS_HILO
 100        bool
 101
 102config CPU_HAS_TLBI
 103        bool
 104
 105config CPU_HAS_LDSTEX
 106        bool
 107        help
 108          For SMP, CPU needs "ldex&stex" instructions for atomic operations.
 109
 110config CPU_NEED_TLBSYNC
 111        bool
 112
 113config CPU_NEED_SOFTALIGN
 114        bool
 115
 116config CPU_NO_USER_BKPT
 117        bool
 118        help
 119          For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
 120          abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
 121          So we need a 16bit instruction as user space bkpt, and it will cause an illegal
 122          instruction exception.
 123          In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
 124
 125config GENERIC_CALIBRATE_DELAY
 126        def_bool y
 127
 128config GENERIC_CSUM
 129        def_bool y
 130
 131config GENERIC_HWEIGHT
 132        def_bool y
 133
 134config MMU
 135        def_bool y
 136
 137config STACKTRACE_SUPPORT
 138        def_bool y
 139
 140config TIME_LOW_RES
 141        def_bool y
 142
 143config CPU_TLB_SIZE
 144        int
 145        default "128"   if (CPU_CK610 || CPU_CK807 || CPU_CK810)
 146        default "1024"  if (CPU_CK860)
 147
 148config CPU_ASID_BITS
 149        int
 150        default "8"     if (CPU_CK610 || CPU_CK807 || CPU_CK810)
 151        default "12"    if (CPU_CK860)
 152
 153config L1_CACHE_SHIFT
 154        int
 155        default "4"     if (CPU_CK610)
 156        default "5"     if (CPU_CK807 || CPU_CK810)
 157        default "6"     if (CPU_CK860)
 158
 159config ARCH_MMAP_RND_BITS_MIN
 160        default 8
 161
 162# max bits determined by the following formula:
 163#  VA_BITS - PAGE_SHIFT - 3
 164config ARCH_MMAP_RND_BITS_MAX
 165        default 17
 166
 167menu "Processor type and features"
 168
 169choice
 170        prompt "CPU MODEL"
 171        default CPU_CK807
 172
 173config CPU_CK610
 174        bool "CSKY CPU ck610"
 175        select CPU_NEED_TLBSYNC
 176        select CPU_NEED_SOFTALIGN
 177        select CPU_NO_USER_BKPT
 178
 179config CPU_CK810
 180        bool "CSKY CPU ck810"
 181        select CPU_HAS_HILO
 182        select CPU_NEED_TLBSYNC
 183
 184config CPU_CK807
 185        bool "CSKY CPU ck807"
 186        select CPU_HAS_HILO
 187
 188config CPU_CK860
 189        bool "CSKY CPU ck860"
 190        select CPU_HAS_TLBI
 191        select CPU_HAS_CACHEV2
 192        select CPU_HAS_LDSTEX
 193        select CPU_HAS_FPUV2
 194endchoice
 195
 196choice
 197        prompt "PAGE OFFSET"
 198        default PAGE_OFFSET_80000000
 199
 200config PAGE_OFFSET_80000000
 201        bool "PAGE OFFSET 2G (user:kernel = 2:2)"
 202
 203config PAGE_OFFSET_A0000000
 204        bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)"
 205endchoice
 206
 207config PAGE_OFFSET
 208        hex
 209        default 0x80000000 if PAGE_OFFSET_80000000
 210        default 0xa0000000 if PAGE_OFFSET_A0000000
 211choice
 212
 213        prompt "C-SKY PMU type"
 214        depends on PERF_EVENTS
 215        depends on CPU_CK807 || CPU_CK810 || CPU_CK860
 216
 217config CPU_PMU_NONE
 218        bool "None"
 219
 220config CSKY_PMU_V1
 221        bool "Performance Monitoring Unit Ver.1"
 222
 223endchoice
 224
 225choice
 226        prompt "Power Manager Instruction (wait/doze/stop)"
 227        default CPU_PM_NONE
 228
 229config CPU_PM_NONE
 230        bool "None"
 231
 232config CPU_PM_WAIT
 233        bool "wait"
 234
 235config CPU_PM_DOZE
 236        bool "doze"
 237
 238config CPU_PM_STOP
 239        bool "stop"
 240endchoice
 241
 242menuconfig HAVE_TCM
 243        bool "Tightly-Coupled/Sram Memory"
 244        depends on !COMPILE_TEST
 245        help
 246          The implementation are not only used by TCM (Tightly-Coupled Meory)
 247          but also used by sram on SOC bus. It follow existed linux tcm
 248          software interface, so that old tcm application codes could be
 249          re-used directly.
 250
 251if HAVE_TCM
 252config ITCM_RAM_BASE
 253        hex "ITCM ram base"
 254        default 0xffffffff
 255
 256config ITCM_NR_PAGES
 257        int "Page count of ITCM size: NR*4KB"
 258        range 1 256
 259        default 32
 260
 261config HAVE_DTCM
 262        bool "DTCM Support"
 263
 264config DTCM_RAM_BASE
 265        hex "DTCM ram base"
 266        depends on HAVE_DTCM
 267        default 0xffffffff
 268
 269config DTCM_NR_PAGES
 270        int "Page count of DTCM size: NR*4KB"
 271        depends on HAVE_DTCM
 272        range 1 256
 273        default 32
 274endif
 275
 276config CPU_HAS_VDSP
 277        bool "CPU has VDSP coprocessor"
 278        depends on CPU_HAS_FPU && CPU_HAS_FPUV2
 279
 280config CPU_HAS_FPU
 281        bool "CPU has FPU coprocessor"
 282        depends on CPU_CK807 || CPU_CK810 || CPU_CK860
 283
 284config CPU_HAS_ICACHE_INS
 285        bool "CPU has Icache invalidate instructions"
 286        depends on CPU_HAS_CACHEV2
 287
 288config CPU_HAS_TEE
 289        bool "CPU has Trusted Execution Environment"
 290        depends on CPU_CK810
 291
 292config SMP
 293        bool "Symmetric Multi-Processing (SMP) support for C-SKY"
 294        depends on CPU_CK860
 295        default n
 296
 297config NR_CPUS
 298        int "Maximum number of CPUs (2-32)"
 299        range 2 32
 300        depends on SMP
 301        default "4"
 302
 303config HIGHMEM
 304        bool "High Memory Support"
 305        depends on !CPU_CK610
 306        select KMAP_LOCAL
 307        default y
 308
 309config FORCE_MAX_ZONEORDER
 310        int "Maximum zone order"
 311        default "11"
 312
 313config DRAM_BASE
 314        hex "DRAM start addr (the same with memory-section in dts)"
 315        default 0x0
 316
 317config HOTPLUG_CPU
 318        bool "Support for hot-pluggable CPUs"
 319        select GENERIC_IRQ_MIGRATION
 320        depends on SMP
 321        help
 322          Say Y here to allow turning CPUs off and on. CPUs can be
 323          controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
 324
 325          Say N if you want to disable CPU hotplug.
 326endmenu
 327
 328source "arch/csky/Kconfig.platforms"
 329
 330source "kernel/Kconfig.hz"
 331