PCI/ERR: Clear AER status only when we control AER
[linux-2.6-microblaze.git] / arch / csky / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config CSKY
3         def_bool y
4         select ARCH_32BIT_OFF_T
5         select ARCH_HAS_DMA_PREP_COHERENT
6         select ARCH_HAS_GCOV_PROFILE_ALL
7         select ARCH_HAS_SYNC_DMA_FOR_CPU
8         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
9         select ARCH_USE_BUILTIN_BSWAP
10         select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
11         select ARCH_WANT_FRAME_POINTERS if !CPU_CK610
12         select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
13         select COMMON_CLK
14         select CLKSRC_MMIO
15         select CSKY_MPINTC if CPU_CK860
16         select CSKY_MP_TIMER if CPU_CK860
17         select CSKY_APB_INTC
18         select DMA_DIRECT_REMAP
19         select IRQ_DOMAIN
20         select HANDLE_DOMAIN_IRQ
21         select DW_APB_TIMER_OF
22         select GENERIC_IOREMAP
23         select GENERIC_LIB_ASHLDI3
24         select GENERIC_LIB_ASHRDI3
25         select GENERIC_LIB_LSHRDI3
26         select GENERIC_LIB_MULDI3
27         select GENERIC_LIB_CMPDI2
28         select GENERIC_LIB_UCMPDI2
29         select GENERIC_ALLOCATOR
30         select GENERIC_ATOMIC64
31         select GENERIC_CLOCKEVENTS
32         select GENERIC_CPU_DEVICES
33         select GENERIC_IRQ_CHIP
34         select GENERIC_IRQ_PROBE
35         select GENERIC_IRQ_SHOW
36         select GENERIC_IRQ_MULTI_HANDLER
37         select GENERIC_SCHED_CLOCK
38         select GENERIC_SMP_IDLE_THREAD
39         select GX6605S_TIMER if CPU_CK610
40         select HAVE_ARCH_TRACEHOOK
41         select HAVE_ARCH_AUDITSYSCALL
42         select HAVE_ARCH_MMAP_RND_BITS
43         select HAVE_ARCH_SECCOMP_FILTER
44         select HAVE_CONTEXT_TRACKING
45         select HAVE_VIRT_CPU_ACCOUNTING_GEN
46         select HAVE_DEBUG_BUGVERBOSE
47         select HAVE_DYNAMIC_FTRACE
48         select HAVE_DYNAMIC_FTRACE_WITH_REGS
49         select HAVE_FUNCTION_TRACER
50         select HAVE_FUNCTION_GRAPH_TRACER
51         select HAVE_FUNCTION_ERROR_INJECTION
52         select HAVE_FTRACE_MCOUNT_RECORD
53         select HAVE_KERNEL_GZIP
54         select HAVE_KERNEL_LZO
55         select HAVE_KERNEL_LZMA
56         select HAVE_KPROBES if !CPU_CK610
57         select HAVE_KPROBES_ON_FTRACE if !CPU_CK610
58         select HAVE_KRETPROBES if !CPU_CK610
59         select HAVE_PERF_EVENTS
60         select HAVE_PERF_REGS
61         select HAVE_PERF_USER_STACK_DUMP
62         select HAVE_DMA_CONTIGUOUS
63         select HAVE_REGS_AND_STACK_ACCESS_API
64         select HAVE_RSEQ
65         select HAVE_STACKPROTECTOR
66         select HAVE_SYSCALL_TRACEPOINTS
67         select MAY_HAVE_SPARSE_IRQ
68         select MODULES_USE_ELF_RELA if MODULES
69         select OF
70         select OF_EARLY_FLATTREE
71         select PERF_USE_VMALLOC if CPU_CK610
72         select RTC_LIB
73         select TIMER_OF
74         select USB_ARCH_HAS_EHCI
75         select USB_ARCH_HAS_OHCI
76         select GENERIC_PCI_IOMAP
77         select HAVE_PCI
78         select PCI_DOMAINS_GENERIC if PCI
79         select PCI_SYSCALL if PCI
80         select PCI_MSI if PCI
81         select SET_FS
82
83 config LOCKDEP_SUPPORT
84         def_bool y
85
86 config ARCH_SUPPORTS_UPROBES
87         def_bool y if !CPU_CK610
88
89 config CPU_HAS_CACHEV2
90         bool
91
92 config CPU_HAS_FPUV2
93         bool
94
95 config CPU_HAS_HILO
96         bool
97
98 config CPU_HAS_TLBI
99         bool
100
101 config CPU_HAS_LDSTEX
102         bool
103         help
104           For SMP, CPU needs "ldex&stex" instructions for atomic operations.
105
106 config CPU_NEED_TLBSYNC
107         bool
108
109 config CPU_NEED_SOFTALIGN
110         bool
111
112 config CPU_NO_USER_BKPT
113         bool
114         help
115           For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
116           abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
117           So we need a 16bit instruction as user space bkpt, and it will cause an illegal
118           instruction exception.
119           In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
120
121 config GENERIC_CALIBRATE_DELAY
122         def_bool y
123
124 config GENERIC_CSUM
125         def_bool y
126
127 config GENERIC_HWEIGHT
128         def_bool y
129
130 config MMU
131         def_bool y
132
133 config STACKTRACE_SUPPORT
134         def_bool y
135
136 config TIME_LOW_RES
137         def_bool y
138
139 config TRACE_IRQFLAGS_SUPPORT
140         def_bool y
141
142 config CPU_TLB_SIZE
143         int
144         default "128"   if (CPU_CK610 || CPU_CK807 || CPU_CK810)
145         default "1024"  if (CPU_CK860)
146
147 config CPU_ASID_BITS
148         int
149         default "8"     if (CPU_CK610 || CPU_CK807 || CPU_CK810)
150         default "12"    if (CPU_CK860)
151
152 config L1_CACHE_SHIFT
153         int
154         default "4"     if (CPU_CK610)
155         default "5"     if (CPU_CK807 || CPU_CK810)
156         default "6"     if (CPU_CK860)
157
158 config ARCH_MMAP_RND_BITS_MIN
159         default 8
160
161 # max bits determined by the following formula:
162 #  VA_BITS - PAGE_SHIFT - 3
163 config ARCH_MMAP_RND_BITS_MAX
164         default 17
165
166 menu "Processor type and features"
167
168 choice
169         prompt "CPU MODEL"
170         default CPU_CK807
171
172 config CPU_CK610
173         bool "CSKY CPU ck610"
174         select CPU_NEED_TLBSYNC
175         select CPU_NEED_SOFTALIGN
176         select CPU_NO_USER_BKPT
177
178 config CPU_CK810
179         bool "CSKY CPU ck810"
180         select CPU_HAS_HILO
181         select CPU_NEED_TLBSYNC
182
183 config CPU_CK807
184         bool "CSKY CPU ck807"
185         select CPU_HAS_HILO
186
187 config CPU_CK860
188         bool "CSKY CPU ck860"
189         select CPU_HAS_TLBI
190         select CPU_HAS_CACHEV2
191         select CPU_HAS_LDSTEX
192         select CPU_HAS_FPUV2
193 endchoice
194
195 choice
196         prompt "C-SKY PMU type"
197         depends on PERF_EVENTS
198         depends on CPU_CK807 || CPU_CK810 || CPU_CK860
199
200 config CPU_PMU_NONE
201         bool "None"
202
203 config CSKY_PMU_V1
204         bool "Performance Monitoring Unit Ver.1"
205
206 endchoice
207
208 choice
209         prompt "Power Manager Instruction (wait/doze/stop)"
210         default CPU_PM_NONE
211
212 config CPU_PM_NONE
213         bool "None"
214
215 config CPU_PM_WAIT
216         bool "wait"
217
218 config CPU_PM_DOZE
219         bool "doze"
220
221 config CPU_PM_STOP
222         bool "stop"
223 endchoice
224
225 menuconfig HAVE_TCM
226         bool "Tightly-Coupled/Sram Memory"
227         select GENERIC_ALLOCATOR
228         help
229           The implementation are not only used by TCM (Tightly-Coupled Meory)
230           but also used by sram on SOC bus. It follow existed linux tcm
231           software interface, so that old tcm application codes could be
232           re-used directly.
233
234 if HAVE_TCM
235 config ITCM_RAM_BASE
236         hex "ITCM ram base"
237         default 0xffffffff
238
239 config ITCM_NR_PAGES
240         int "Page count of ITCM size: NR*4KB"
241         range 1 256
242         default 32
243
244 config HAVE_DTCM
245         bool "DTCM Support"
246
247 config DTCM_RAM_BASE
248         hex "DTCM ram base"
249         depends on HAVE_DTCM
250         default 0xffffffff
251
252 config DTCM_NR_PAGES
253         int "Page count of DTCM size: NR*4KB"
254         depends on HAVE_DTCM
255         range 1 256
256         default 32
257 endif
258
259 config CPU_HAS_VDSP
260         bool "CPU has VDSP coprocessor"
261         depends on CPU_HAS_FPU && CPU_HAS_FPUV2
262
263 config CPU_HAS_FPU
264         bool "CPU has FPU coprocessor"
265         depends on CPU_CK807 || CPU_CK810 || CPU_CK860
266
267 config CPU_HAS_ICACHE_INS
268         bool "CPU has Icache invalidate instructions"
269         depends on CPU_HAS_CACHEV2
270
271 config CPU_HAS_TEE
272         bool "CPU has Trusted Execution Environment"
273         depends on CPU_CK810
274
275 config SMP
276         bool "Symmetric Multi-Processing (SMP) support for C-SKY"
277         depends on CPU_CK860
278         default n
279
280 config NR_CPUS
281         int "Maximum number of CPUs (2-32)"
282         range 2 32
283         depends on SMP
284         default "4"
285
286 config HIGHMEM
287         bool "High Memory Support"
288         depends on !CPU_CK610
289         default y
290
291 config FORCE_MAX_ZONEORDER
292         int "Maximum zone order"
293         default "11"
294
295 config RAM_BASE
296         hex "DRAM start addr (the same with memory-section in dts)"
297         default 0x0
298
299 config HOTPLUG_CPU
300         bool "Support for hot-pluggable CPUs"
301         select GENERIC_IRQ_MIGRATION
302         depends on SMP
303         help
304           Say Y here to allow turning CPUs off and on. CPUs can be
305           controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
306
307           Say N if you want to disable CPU hotplug.
308 endmenu
309
310 source "arch/csky/Kconfig.platforms"
311
312 source "kernel/Kconfig.hz"