Kconfig 6.86 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0-only
Guo Ren's avatar
Guo Ren committed
2 3
config CSKY
	def_bool y
4
	select ARCH_32BIT_OFF_T
5
	select ARCH_HAS_DMA_PREP_COHERENT
Ma Jun's avatar
Ma Jun committed
6
	select ARCH_HAS_GCOV_PROFILE_ALL
Guo Ren's avatar
Guo Ren committed
7 8 9
	select ARCH_HAS_SYNC_DMA_FOR_CPU
	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
	select ARCH_USE_BUILTIN_BSWAP
Guo Ren's avatar
Guo Ren committed
10
	select ARCH_USE_QUEUED_RWLOCKS
11
	select ARCH_WANT_FRAME_POINTERS if !CPU_CK610 && $(cc-option,-mbacktrace)
Guo Ren's avatar
Guo Ren committed
12
	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
Guo Ren's avatar
Guo Ren committed
13 14
	select COMMON_CLK
	select CLKSRC_MMIO
Guo Ren's avatar
Guo Ren committed
15 16 17
	select CSKY_MPINTC if CPU_CK860
	select CSKY_MP_TIMER if CPU_CK860
	select CSKY_APB_INTC
18
	select DMA_DIRECT_REMAP
Guo Ren's avatar
Guo Ren committed
19 20
	select IRQ_DOMAIN
	select DW_APB_TIMER_OF
Christoph Hellwig's avatar
Christoph Hellwig committed
21
	select GENERIC_IOREMAP
Guo Ren's avatar
Guo Ren committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
	select GENERIC_LIB_ASHLDI3
	select GENERIC_LIB_ASHRDI3
	select GENERIC_LIB_LSHRDI3
	select GENERIC_LIB_MULDI3
	select GENERIC_LIB_CMPDI2
	select GENERIC_LIB_UCMPDI2
	select GENERIC_ALLOCATOR
	select GENERIC_ATOMIC64
	select GENERIC_CPU_DEVICES
	select GENERIC_IRQ_CHIP
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
	select GENERIC_IRQ_MULTI_HANDLER
	select GENERIC_SCHED_CLOCK
	select GENERIC_SMP_IDLE_THREAD
37 38 39
	select GENERIC_TIME_VSYSCALL
	select GENERIC_VDSO_32
	select GENERIC_GETTIMEOFDAY
Guo Ren's avatar
Guo Ren committed
40
	select GX6605S_TIMER if CPU_CK610
Guo Ren's avatar
Guo Ren committed
41
	select HAVE_ARCH_TRACEHOOK
42
	select HAVE_ARCH_AUDITSYSCALL
Guo Ren's avatar
Guo Ren committed
43
	select HAVE_ARCH_MMAP_RND_BITS
Guo Ren's avatar
Guo Ren committed
44
	select HAVE_ARCH_SECCOMP_FILTER
Guo Ren's avatar
Guo Ren committed
45 46
	select HAVE_CONTEXT_TRACKING
	select HAVE_VIRT_CPU_ACCOUNTING_GEN
Guo Ren's avatar
Guo Ren committed
47
	select HAVE_DEBUG_BUGVERBOSE
Guo Ren's avatar
Guo Ren committed
48
	select HAVE_DEBUG_KMEMLEAK
49
	select HAVE_DYNAMIC_FTRACE
Guo Ren's avatar
Guo Ren committed
50
	select HAVE_DYNAMIC_FTRACE_WITH_REGS
51
	select HAVE_GENERIC_VDSO
Guo Ren's avatar
Guo Ren committed
52
	select HAVE_FUNCTION_TRACER
Guo Ren's avatar
Guo Ren committed
53
	select HAVE_FUNCTION_GRAPH_TRACER
54
	select HAVE_FUNCTION_ERROR_INJECTION
55
	select HAVE_FTRACE_MCOUNT_RECORD
Guo Ren's avatar
Guo Ren committed
56 57 58
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_LZMA
Guo Ren's avatar
Guo Ren committed
59 60 61
	select HAVE_KPROBES if !CPU_CK610
	select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
	select HAVE_KRETPROBES if !CPU_CK610
Guo Ren's avatar
Guo Ren committed
62
	select HAVE_PERF_EVENTS
63 64
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
Guo Ren's avatar
Guo Ren committed
65
	select HAVE_DMA_CONTIGUOUS
66
	select HAVE_REGS_AND_STACK_ACCESS_API
67
	select HAVE_RSEQ
68
	select HAVE_STACKPROTECTOR
69
	select HAVE_SYSCALL_TRACEPOINTS
Guo Ren's avatar
Guo Ren committed
70 71 72 73
	select MAY_HAVE_SPARSE_IRQ
	select MODULES_USE_ELF_RELA if MODULES
	select OF
	select OF_EARLY_FLATTREE
Guo Ren's avatar
Guo Ren committed
74
	select PERF_USE_VMALLOC if CPU_CK610
Guo Ren's avatar
Guo Ren committed
75 76
	select RTC_LIB
	select TIMER_OF
MaJun's avatar
MaJun committed
77 78 79 80 81
	select GENERIC_PCI_IOMAP
	select HAVE_PCI
	select PCI_DOMAINS_GENERIC if PCI
	select PCI_SYSCALL if PCI
	select PCI_MSI if PCI
82
	select TRACE_IRQFLAGS_SUPPORT
Guo Ren's avatar
Guo Ren committed
83

Guo Ren's avatar
Guo Ren committed
84 85 86
config LOCKDEP_SUPPORT
	def_bool y

Guo Ren's avatar
Guo Ren committed
87 88 89
config ARCH_SUPPORTS_UPROBES
	def_bool y if !CPU_CK610

Guo Ren's avatar
Guo Ren committed
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
config CPU_HAS_CACHEV2
	bool

config CPU_HAS_FPUV2
	bool

config CPU_HAS_HILO
	bool

config CPU_HAS_TLBI
	bool

config CPU_HAS_LDSTEX
	bool
	help
105
	  For SMP, CPU needs "ldex&stex" instructions for atomic operations.
Guo Ren's avatar
Guo Ren committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

config CPU_NEED_TLBSYNC
	bool

config CPU_NEED_SOFTALIGN
	bool

config CPU_NO_USER_BKPT
	bool
	help
	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
	  instruction exception.
	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.

config GENERIC_CALIBRATE_DELAY
	def_bool y

config GENERIC_CSUM
	def_bool y

config GENERIC_HWEIGHT
	def_bool y

config MMU
	def_bool y

Guo Ren's avatar
Guo Ren committed
134 135 136
config STACKTRACE_SUPPORT
	def_bool y

Guo Ren's avatar
Guo Ren committed
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
config TIME_LOW_RES
	def_bool y

config CPU_TLB_SIZE
	int
	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
	default "1024"	if (CPU_CK860)

config CPU_ASID_BITS
	int
	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
	default "12"	if (CPU_CK860)

config L1_CACHE_SHIFT
	int
	default "4"	if (CPU_CK610)
	default "5"	if (CPU_CK807 || CPU_CK810)
	default "6"	if (CPU_CK860)

Guo Ren's avatar
Guo Ren committed
156 157 158 159 160 161 162 163
config ARCH_MMAP_RND_BITS_MIN
	default 8

# max bits determined by the following formula:
#  VA_BITS - PAGE_SHIFT - 3
config ARCH_MMAP_RND_BITS_MAX
	default 17

Guo Ren's avatar
Guo Ren committed
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
menu "Processor type and features"

choice
	prompt "CPU MODEL"
	default CPU_CK807

config CPU_CK610
	bool "CSKY CPU ck610"
	select CPU_NEED_TLBSYNC
	select CPU_NEED_SOFTALIGN
	select CPU_NO_USER_BKPT

config CPU_CK810
	bool "CSKY CPU ck810"
	select CPU_HAS_HILO
	select CPU_NEED_TLBSYNC

config CPU_CK807
	bool "CSKY CPU ck807"
	select CPU_HAS_HILO

config CPU_CK860
	bool "CSKY CPU ck860"
	select CPU_HAS_TLBI
	select CPU_HAS_CACHEV2
	select CPU_HAS_LDSTEX
	select CPU_HAS_FPUV2
endchoice

Guo Ren's avatar
Guo Ren committed
193
choice
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
	prompt "PAGE OFFSET"
	default PAGE_OFFSET_80000000

config PAGE_OFFSET_80000000
	bool "PAGE OFFSET 2G (user:kernel = 2:2)"

config PAGE_OFFSET_A0000000
	bool "PAGE OFFSET 2.5G (user:kernel = 2.5:1.5)"
endchoice

config PAGE_OFFSET
	hex
	default 0x80000000 if PAGE_OFFSET_80000000
	default 0xa0000000 if PAGE_OFFSET_A0000000
choice

Guo Ren's avatar
Guo Ren committed
210 211 212 213 214 215 216 217 218 219 220 221
	prompt "C-SKY PMU type"
	depends on PERF_EVENTS
	depends on CPU_CK807 || CPU_CK810 || CPU_CK860

config CPU_PMU_NONE
	bool "None"

config CSKY_PMU_V1
	bool "Performance Monitoring Unit Ver.1"

endchoice

Guo Ren's avatar
Guo Ren committed
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
choice
	prompt "Power Manager Instruction (wait/doze/stop)"
	default CPU_PM_NONE

config CPU_PM_NONE
	bool "None"

config CPU_PM_WAIT
	bool "wait"

config CPU_PM_DOZE
	bool "doze"

config CPU_PM_STOP
	bool "stop"
endchoice

239 240
menuconfig HAVE_TCM
	bool "Tightly-Coupled/Sram Memory"
241
	depends on !COMPILE_TEST
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
	help
	  The implementation are not only used by TCM (Tightly-Coupled Meory)
	  but also used by sram on SOC bus. It follow existed linux tcm
	  software interface, so that old tcm application codes could be
	  re-used directly.

if HAVE_TCM
config ITCM_RAM_BASE
	hex "ITCM ram base"
	default 0xffffffff

config ITCM_NR_PAGES
	int "Page count of ITCM size: NR*4KB"
	range 1 256
	default 32

config HAVE_DTCM
	bool "DTCM Support"

config DTCM_RAM_BASE
	hex "DTCM ram base"
	depends on HAVE_DTCM
	default 0xffffffff

config DTCM_NR_PAGES
	int "Page count of DTCM size: NR*4KB"
	depends on HAVE_DTCM
	range 1 256
	default 32
endif

Guo Ren's avatar
Guo Ren committed
273 274 275 276 277 278 279 280
config CPU_HAS_VDSP
	bool "CPU has VDSP coprocessor"
	depends on CPU_HAS_FPU && CPU_HAS_FPUV2

config CPU_HAS_FPU
	bool "CPU has FPU coprocessor"
	depends on CPU_CK807 || CPU_CK810 || CPU_CK860

281 282 283 284
config CPU_HAS_ICACHE_INS
	bool "CPU has Icache invalidate instructions"
	depends on CPU_HAS_CACHEV2

Guo Ren's avatar
Guo Ren committed
285 286 287 288 289 290 291 292 293 294 295 296 297
config CPU_HAS_TEE
	bool "CPU has Trusted Execution Environment"
	depends on CPU_CK810

config SMP
	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
	depends on CPU_CK860
	default n

config NR_CPUS
	int "Maximum number of CPUs (2-32)"
	range 2 32
	depends on SMP
298
	default "4"
Guo Ren's avatar
Guo Ren committed
299 300 301 302

config HIGHMEM
	bool "High Memory Support"
	depends on !CPU_CK610
303
	select KMAP_LOCAL
Guo Ren's avatar
Guo Ren committed
304 305 306 307 308 309
	default y

config FORCE_MAX_ZONEORDER
	int "Maximum zone order"
	default "11"

310
config DRAM_BASE
Guo Ren's avatar
Guo Ren committed
311 312 313
	hex "DRAM start addr (the same with memory-section in dts)"
	default 0x0

Guo Ren's avatar
Guo Ren committed
314 315 316 317 318 319 320 321 322
config HOTPLUG_CPU
	bool "Support for hot-pluggable CPUs"
	select GENERIC_IRQ_MIGRATION
	depends on SMP
	help
	  Say Y here to allow turning CPUs off and on. CPUs can be
	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.

	  Say N if you want to disable CPU hotplug.
Guo Ren's avatar
Guo Ren committed
323 324
endmenu

325 326
source "arch/csky/Kconfig.platforms"

Guo Ren's avatar
Guo Ren committed
327
source "kernel/Kconfig.hz"