blob: 6959e0b1e956a049c8acfd691cfe3d95e0c21a00 [file] [log] [blame]
Guo Renc32e64e2018-09-05 14:25:06 +08001config CSKY
2 def_bool y
Yury Norov942fa982018-05-16 11:18:49 +03003 select ARCH_32BIT_OFF_T
Guo Renc32e64e2018-09-05 14:25:06 +08004 select ARCH_HAS_SYNC_DMA_FOR_CPU
5 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
6 select ARCH_USE_BUILTIN_BSWAP
7 select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
8 select COMMON_CLK
9 select CLKSRC_MMIO
10 select CLKSRC_OF
Christoph Hellwigf04b9512018-11-04 17:47:44 +010011 select DMA_DIRECT_REMAP
Guo Renc32e64e2018-09-05 14:25:06 +080012 select IRQ_DOMAIN
13 select HANDLE_DOMAIN_IRQ
14 select DW_APB_TIMER_OF
15 select GENERIC_LIB_ASHLDI3
16 select GENERIC_LIB_ASHRDI3
17 select GENERIC_LIB_LSHRDI3
18 select GENERIC_LIB_MULDI3
19 select GENERIC_LIB_CMPDI2
20 select GENERIC_LIB_UCMPDI2
21 select GENERIC_ALLOCATOR
22 select GENERIC_ATOMIC64
23 select GENERIC_CLOCKEVENTS
24 select GENERIC_CPU_DEVICES
25 select GENERIC_IRQ_CHIP
26 select GENERIC_IRQ_PROBE
27 select GENERIC_IRQ_SHOW
28 select GENERIC_IRQ_MULTI_HANDLER
29 select GENERIC_SCHED_CLOCK
30 select GENERIC_SMP_IDLE_THREAD
31 select HAVE_ARCH_TRACEHOOK
Guo Ren230c77a2018-12-09 14:29:59 +080032 select HAVE_FUNCTION_TRACER
Guo Rend7950be2018-12-15 21:04:27 +080033 select HAVE_FUNCTION_GRAPH_TRACER
Guo Renc32e64e2018-09-05 14:25:06 +080034 select HAVE_GENERIC_DMA_COHERENT
35 select HAVE_KERNEL_GZIP
36 select HAVE_KERNEL_LZO
37 select HAVE_KERNEL_LZMA
Guo Renf50fd2d2019-01-02 22:09:25 +080038 select HAVE_PERF_EVENTS
Guo Renc32e64e2018-09-05 14:25:06 +080039 select HAVE_C_RECORDMCOUNT
40 select HAVE_DMA_API_DEBUG
41 select HAVE_DMA_CONTIGUOUS
Guo Renc32e64e2018-09-05 14:25:06 +080042 select MAY_HAVE_SPARSE_IRQ
43 select MODULES_USE_ELF_RELA if MODULES
Guo Renc32e64e2018-09-05 14:25:06 +080044 select OF
45 select OF_EARLY_FLATTREE
46 select OF_RESERVED_MEM
Guo Renf50fd2d2019-01-02 22:09:25 +080047 select PERF_USE_VMALLOC if CPU_CK610
Guo Renc32e64e2018-09-05 14:25:06 +080048 select RTC_LIB
49 select TIMER_OF
50 select USB_ARCH_HAS_EHCI
51 select USB_ARCH_HAS_OHCI
52
53config CPU_HAS_CACHEV2
54 bool
55
56config CPU_HAS_FPUV2
57 bool
58
59config CPU_HAS_HILO
60 bool
61
62config CPU_HAS_TLBI
63 bool
64
65config CPU_HAS_LDSTEX
66 bool
67 help
68 For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
69
70config CPU_NEED_TLBSYNC
71 bool
72
73config CPU_NEED_SOFTALIGN
74 bool
75
76config CPU_NO_USER_BKPT
77 bool
78 help
79 For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
80 abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
81 So we need a 16bit instruction as user space bkpt, and it will cause an illegal
82 instruction exception.
83 In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
84
85config GENERIC_CALIBRATE_DELAY
86 def_bool y
87
88config GENERIC_CSUM
89 def_bool y
90
91config GENERIC_HWEIGHT
92 def_bool y
93
94config MMU
95 def_bool y
96
97config RWSEM_GENERIC_SPINLOCK
98 def_bool y
99
Guo Ren0ea2dc72018-12-09 14:18:05 +0800100config STACKTRACE_SUPPORT
101 def_bool y
102
Guo Renc32e64e2018-09-05 14:25:06 +0800103config TIME_LOW_RES
104 def_bool y
105
106config TRACE_IRQFLAGS_SUPPORT
107 def_bool y
108
109config CPU_TLB_SIZE
110 int
111 default "128" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
112 default "1024" if (CPU_CK860)
113
114config CPU_ASID_BITS
115 int
116 default "8" if (CPU_CK610 || CPU_CK807 || CPU_CK810)
117 default "12" if (CPU_CK860)
118
119config L1_CACHE_SHIFT
120 int
121 default "4" if (CPU_CK610)
122 default "5" if (CPU_CK807 || CPU_CK810)
123 default "6" if (CPU_CK860)
124
125menu "Processor type and features"
126
127choice
128 prompt "CPU MODEL"
129 default CPU_CK807
130
131config CPU_CK610
132 bool "CSKY CPU ck610"
133 select CPU_NEED_TLBSYNC
134 select CPU_NEED_SOFTALIGN
135 select CPU_NO_USER_BKPT
136
137config CPU_CK810
138 bool "CSKY CPU ck810"
139 select CPU_HAS_HILO
140 select CPU_NEED_TLBSYNC
141
142config CPU_CK807
143 bool "CSKY CPU ck807"
144 select CPU_HAS_HILO
145
146config CPU_CK860
147 bool "CSKY CPU ck860"
148 select CPU_HAS_TLBI
149 select CPU_HAS_CACHEV2
150 select CPU_HAS_LDSTEX
151 select CPU_HAS_FPUV2
152endchoice
153
154choice
Guo Renf50fd2d2019-01-02 22:09:25 +0800155 prompt "C-SKY PMU type"
156 depends on PERF_EVENTS
157 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
158
159config CPU_PMU_NONE
160 bool "None"
161
162config CSKY_PMU_V1
163 bool "Performance Monitoring Unit Ver.1"
164
165endchoice
166
167choice
Guo Renc32e64e2018-09-05 14:25:06 +0800168 prompt "Power Manager Instruction (wait/doze/stop)"
169 default CPU_PM_NONE
170
171config CPU_PM_NONE
172 bool "None"
173
174config CPU_PM_WAIT
175 bool "wait"
176
177config CPU_PM_DOZE
178 bool "doze"
179
180config CPU_PM_STOP
181 bool "stop"
182endchoice
183
184config CPU_HAS_VDSP
185 bool "CPU has VDSP coprocessor"
186 depends on CPU_HAS_FPU && CPU_HAS_FPUV2
187
188config CPU_HAS_FPU
189 bool "CPU has FPU coprocessor"
190 depends on CPU_CK807 || CPU_CK810 || CPU_CK860
191
192config CPU_HAS_TEE
193 bool "CPU has Trusted Execution Environment"
194 depends on CPU_CK810
195
196config SMP
197 bool "Symmetric Multi-Processing (SMP) support for C-SKY"
198 depends on CPU_CK860
199 default n
200
201config NR_CPUS
202 int "Maximum number of CPUs (2-32)"
203 range 2 32
204 depends on SMP
205 default "2"
206
207config HIGHMEM
208 bool "High Memory Support"
209 depends on !CPU_CK610
210 default y
211
212config FORCE_MAX_ZONEORDER
213 int "Maximum zone order"
214 default "11"
215
216config RAM_BASE
217 hex "DRAM start addr (the same with memory-section in dts)"
218 default 0x0
219
Guo Ren859e5f42018-12-19 19:56:14 +0800220config HOTPLUG_CPU
221 bool "Support for hot-pluggable CPUs"
222 select GENERIC_IRQ_MIGRATION
223 depends on SMP
224 help
225 Say Y here to allow turning CPUs off and on. CPUs can be
226 controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
227
228 Say N if you want to disable CPU hotplug.
Guo Renc32e64e2018-09-05 14:25:06 +0800229endmenu
230
231source "kernel/Kconfig.hz"