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