xref: /linux/arch/csky/Kconfig (revision 2decec48b0fd28ffdbf4cc684bd04e735f0839dd)
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 STACKTRACE_SUPPORT
96	def_bool y
97
98config TIME_LOW_RES
99	def_bool y
100
101config TRACE_IRQFLAGS_SUPPORT
102	def_bool y
103
104config CPU_TLB_SIZE
105	int
106	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
107	default "1024"	if (CPU_CK860)
108
109config CPU_ASID_BITS
110	int
111	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
112	default "12"	if (CPU_CK860)
113
114config L1_CACHE_SHIFT
115	int
116	default "4"	if (CPU_CK610)
117	default "5"	if (CPU_CK807 || CPU_CK810)
118	default "6"	if (CPU_CK860)
119
120menu "Processor type and features"
121
122choice
123	prompt "CPU MODEL"
124	default CPU_CK807
125
126config CPU_CK610
127	bool "CSKY CPU ck610"
128	select CPU_NEED_TLBSYNC
129	select CPU_NEED_SOFTALIGN
130	select CPU_NO_USER_BKPT
131
132config CPU_CK810
133	bool "CSKY CPU ck810"
134	select CPU_HAS_HILO
135	select CPU_NEED_TLBSYNC
136
137config CPU_CK807
138	bool "CSKY CPU ck807"
139	select CPU_HAS_HILO
140
141config CPU_CK860
142	bool "CSKY CPU ck860"
143	select CPU_HAS_TLBI
144	select CPU_HAS_CACHEV2
145	select CPU_HAS_LDSTEX
146	select CPU_HAS_FPUV2
147endchoice
148
149choice
150	prompt "C-SKY PMU type"
151	depends on PERF_EVENTS
152	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
153
154config CPU_PMU_NONE
155	bool "None"
156
157config CSKY_PMU_V1
158	bool "Performance Monitoring Unit Ver.1"
159
160endchoice
161
162choice
163	prompt "Power Manager Instruction (wait/doze/stop)"
164	default CPU_PM_NONE
165
166config CPU_PM_NONE
167	bool "None"
168
169config CPU_PM_WAIT
170	bool "wait"
171
172config CPU_PM_DOZE
173	bool "doze"
174
175config CPU_PM_STOP
176	bool "stop"
177endchoice
178
179config CPU_HAS_VDSP
180	bool "CPU has VDSP coprocessor"
181	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
182
183config CPU_HAS_FPU
184	bool "CPU has FPU coprocessor"
185	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
186
187config CPU_HAS_TEE
188	bool "CPU has Trusted Execution Environment"
189	depends on CPU_CK810
190
191config SMP
192	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
193	depends on CPU_CK860
194	default n
195
196config NR_CPUS
197	int "Maximum number of CPUs (2-32)"
198	range 2 32
199	depends on SMP
200	default "2"
201
202config HIGHMEM
203	bool "High Memory Support"
204	depends on !CPU_CK610
205	default y
206
207config FORCE_MAX_ZONEORDER
208	int "Maximum zone order"
209	default "11"
210
211config RAM_BASE
212	hex "DRAM start addr (the same with memory-section in dts)"
213	default 0x0
214
215config HOTPLUG_CPU
216	bool "Support for hot-pluggable CPUs"
217	select GENERIC_IRQ_MIGRATION
218	depends on SMP
219	help
220	  Say Y here to allow turning CPUs off and on. CPUs can be
221	  controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
222
223	  Say N if you want to disable CPU hotplug.
224endmenu
225
226source "kernel/Kconfig.hz"
227