xref: /linux/arch/csky/Kconfig (revision 1f2367a39f17bd553a75e179a747f9b257bc9478)
1config CSKY
2	def_bool y
3	select ARCH_32BIT_OFF_T
4	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
11	select DMA_DIRECT_REMAP
12	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
32	select HAVE_FUNCTION_TRACER
33	select HAVE_FUNCTION_GRAPH_TRACER
34	select HAVE_KERNEL_GZIP
35	select HAVE_KERNEL_LZO
36	select HAVE_KERNEL_LZMA
37	select HAVE_PERF_EVENTS
38	select HAVE_C_RECORDMCOUNT
39	select HAVE_DMA_API_DEBUG
40	select HAVE_DMA_CONTIGUOUS
41	select MAY_HAVE_SPARSE_IRQ
42	select MODULES_USE_ELF_RELA if MODULES
43	select OF
44	select OF_EARLY_FLATTREE
45	select PERF_USE_VMALLOC if CPU_CK610
46	select RTC_LIB
47	select TIMER_OF
48	select USB_ARCH_HAS_EHCI
49	select USB_ARCH_HAS_OHCI
50
51config CPU_HAS_CACHEV2
52	bool
53
54config CPU_HAS_FPUV2
55	bool
56
57config CPU_HAS_HILO
58	bool
59
60config CPU_HAS_TLBI
61	bool
62
63config CPU_HAS_LDSTEX
64	bool
65	help
66	  For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
67
68config CPU_NEED_TLBSYNC
69	bool
70
71config CPU_NEED_SOFTALIGN
72	bool
73
74config CPU_NO_USER_BKPT
75	bool
76	help
77	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
78	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
79	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
80	  instruction exception.
81	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
82
83config GENERIC_CALIBRATE_DELAY
84	def_bool y
85
86config GENERIC_CSUM
87	def_bool y
88
89config GENERIC_HWEIGHT
90	def_bool y
91
92config MMU
93	def_bool y
94
95config RWSEM_GENERIC_SPINLOCK
96	def_bool y
97
98config STACKTRACE_SUPPORT
99	def_bool y
100
101config TIME_LOW_RES
102	def_bool y
103
104config TRACE_IRQFLAGS_SUPPORT
105	def_bool y
106
107config CPU_TLB_SIZE
108	int
109	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
110	default "1024"	if (CPU_CK860)
111
112config CPU_ASID_BITS
113	int
114	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
115	default "12"	if (CPU_CK860)
116
117config L1_CACHE_SHIFT
118	int
119	default "4"	if (CPU_CK610)
120	default "5"	if (CPU_CK807 || CPU_CK810)
121	default "6"	if (CPU_CK860)
122
123menu "Processor type and features"
124
125choice
126	prompt "CPU MODEL"
127	default CPU_CK807
128
129config CPU_CK610
130	bool "CSKY CPU ck610"
131	select CPU_NEED_TLBSYNC
132	select CPU_NEED_SOFTALIGN
133	select CPU_NO_USER_BKPT
134
135config CPU_CK810
136	bool "CSKY CPU ck810"
137	select CPU_HAS_HILO
138	select CPU_NEED_TLBSYNC
139
140config CPU_CK807
141	bool "CSKY CPU ck807"
142	select CPU_HAS_HILO
143
144config CPU_CK860
145	bool "CSKY CPU ck860"
146	select CPU_HAS_TLBI
147	select CPU_HAS_CACHEV2
148	select CPU_HAS_LDSTEX
149	select CPU_HAS_FPUV2
150endchoice
151
152choice
153	prompt "C-SKY PMU type"
154	depends on PERF_EVENTS
155	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
156
157config CPU_PMU_NONE
158	bool "None"
159
160config CSKY_PMU_V1
161	bool "Performance Monitoring Unit Ver.1"
162
163endchoice
164
165choice
166	prompt "Power Manager Instruction (wait/doze/stop)"
167	default CPU_PM_NONE
168
169config CPU_PM_NONE
170	bool "None"
171
172config CPU_PM_WAIT
173	bool "wait"
174
175config CPU_PM_DOZE
176	bool "doze"
177
178config CPU_PM_STOP
179	bool "stop"
180endchoice
181
182config CPU_HAS_VDSP
183	bool "CPU has VDSP coprocessor"
184	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
185
186config CPU_HAS_FPU
187	bool "CPU has FPU coprocessor"
188	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
189
190config CPU_HAS_TEE
191	bool "CPU has Trusted Execution Environment"
192	depends on CPU_CK810
193
194config SMP
195	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
196	depends on CPU_CK860
197	default n
198
199config NR_CPUS
200	int "Maximum number of CPUs (2-32)"
201	range 2 32
202	depends on SMP
203	default "2"
204
205config HIGHMEM
206	bool "High Memory Support"
207	depends on !CPU_CK610
208	default y
209
210config FORCE_MAX_ZONEORDER
211	int "Maximum zone order"
212	default "11"
213
214config RAM_BASE
215	hex "DRAM start addr (the same with memory-section in dts)"
216	default 0x0
217
218config HOTPLUG_CPU
219	bool "Support for hot-pluggable CPUs"
220	select GENERIC_IRQ_MIGRATION
221	depends on SMP
222	help
223	  Say Y here to allow turning CPUs off and on. CPUs can be
224	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
225
226	  Say N if you want to disable CPU hotplug.
227endmenu
228
229source "kernel/Kconfig.hz"
230