Merge tag 'seccomp-v5.9-rc1-fix1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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
82 config LOCKDEP_SUPPORT
83         def_bool y
84
85 config ARCH_SUPPORTS_UPROBES
86         def_bool y if !CPU_CK610
87
88 config CPU_HAS_CACHEV2
89         bool
90
91 config CPU_HAS_FPUV2
92         bool
93
94 config CPU_HAS_HILO
95         bool
96
97 config CPU_HAS_TLBI
98         bool
99
100 config CPU_HAS_LDSTEX
101         bool
102         help
103           For SMP, CPU needs "ldex&stex" instructions for atomic operations.
104
105 config CPU_NEED_TLBSYNC
106         bool
107
108 config CPU_NEED_SOFTALIGN
109         bool
110
111 config CPU_NO_USER_BKPT
112         bool
113         help
114           For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
115           abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
116           So we need a 16bit instruction as user space bkpt, and it will cause an illegal
117           instruction exception.
118           In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
119
120 config GENERIC_CALIBRATE_DELAY
121         def_bool y
122
123 config GENERIC_CSUM
124         def_bool y
125
126 config GENERIC_HWEIGHT
127         def_bool y
128
129 config MMU
130         def_bool y
131
132 config STACKTRACE_SUPPORT
133         def_bool y
134
135 config TIME_LOW_RES
136         def_bool y
137
138 config TRACE_IRQFLAGS_SUPPORT
139         def_bool y
140
141 config CPU_TLB_SIZE
142         int
143         default "128"   if (CPU_CK610 || CPU_CK807 || CPU_CK810)
144         default "1024"  if (CPU_CK860)
145
146 config CPU_ASID_BITS
147         int
148         default "8"     if (CPU_CK610 || CPU_CK807 || CPU_CK810)
149         default "12"    if (CPU_CK860)
150
151 config L1_CACHE_SHIFT
152         int
153         default "4"     if (CPU_CK610)
154         default "5"     if (CPU_CK807 || CPU_CK810)
155         default "6"     if (CPU_CK860)
156
157 config ARCH_MMAP_RND_BITS_MIN
158         default 8
159
160 # max bits determined by the following formula:
161 #  VA_BITS - PAGE_SHIFT - 3
162 config ARCH_MMAP_RND_BITS_MAX
163         default 17
164
165 menu "Processor type and features"
166
167 choice
168         prompt "CPU MODEL"
169         default CPU_CK807
170
171 config CPU_CK610
172         bool "CSKY CPU ck610"
173         select CPU_NEED_TLBSYNC
174         select CPU_NEED_SOFTALIGN
175         select CPU_NO_USER_BKPT
176
177 config CPU_CK810
178         bool "CSKY CPU ck810"
179         select CPU_HAS_HILO
180         select CPU_NEED_TLBSYNC
181
182 config CPU_CK807
183         bool "CSKY CPU ck807"
184         select CPU_HAS_HILO
185
186 config CPU_CK860
187         bool "CSKY CPU ck860"
188         select CPU_HAS_TLBI
189         select CPU_HAS_CACHEV2
190         select CPU_HAS_LDSTEX
191         select CPU_HAS_FPUV2
192 endchoice
193
194 choice
195         prompt "C-SKY PMU type"
196         depends on PERF_EVENTS
197         depends on CPU_CK807 || CPU_CK810 || CPU_CK860
198
199 config CPU_PMU_NONE
200         bool "None"
201
202 config CSKY_PMU_V1
203         bool "Performance Monitoring Unit Ver.1"
204
205 endchoice
206
207 choice
208         prompt "Power Manager Instruction (wait/doze/stop)"
209         default CPU_PM_NONE
210
211 config CPU_PM_NONE
212         bool "None"
213
214 config CPU_PM_WAIT
215         bool "wait"
216
217 config CPU_PM_DOZE
218         bool "doze"
219
220 config CPU_PM_STOP
221         bool "stop"
222 endchoice
223
224 menuconfig HAVE_TCM
225         bool "Tightly-Coupled/Sram Memory"
226         select GENERIC_ALLOCATOR
227         help
228           The implementation are not only used by TCM (Tightly-Coupled Meory)
229           but also used by sram on SOC bus. It follow existed linux tcm
230           software interface, so that old tcm application codes could be
231           re-used directly.
232
233 if HAVE_TCM
234 config ITCM_RAM_BASE
235         hex "ITCM ram base"
236         default 0xffffffff
237
238 config ITCM_NR_PAGES
239         int "Page count of ITCM size: NR*4KB"
240         range 1 256
241         default 32
242
243 config HAVE_DTCM
244         bool "DTCM Support"
245
246 config DTCM_RAM_BASE
247         hex "DTCM ram base"
248         depends on HAVE_DTCM
249         default 0xffffffff
250
251 config DTCM_NR_PAGES
252         int "Page count of DTCM size: NR*4KB"
253         depends on HAVE_DTCM
254         range 1 256
255         default 32
256 endif
257
258 config CPU_HAS_VDSP
259         bool "CPU has VDSP coprocessor"
260         depends on CPU_HAS_FPU && CPU_HAS_FPUV2
261
262 config CPU_HAS_FPU
263         bool "CPU has FPU coprocessor"
264         depends on CPU_CK807 || CPU_CK810 || CPU_CK860
265
266 config CPU_HAS_ICACHE_INS
267         bool "CPU has Icache invalidate instructions"
268         depends on CPU_HAS_CACHEV2
269
270 config CPU_HAS_TEE
271         bool "CPU has Trusted Execution Environment"
272         depends on CPU_CK810
273
274 config SMP
275         bool "Symmetric Multi-Processing (SMP) support for C-SKY"
276         depends on CPU_CK860
277         default n
278
279 config NR_CPUS
280         int "Maximum number of CPUs (2-32)"
281         range 2 32
282         depends on SMP
283         default "4"
284
285 config HIGHMEM
286         bool "High Memory Support"
287         depends on !CPU_CK610
288         default y
289
290 config FORCE_MAX_ZONEORDER
291         int "Maximum zone order"
292         default "11"
293
294 config RAM_BASE
295         hex "DRAM start addr (the same with memory-section in dts)"
296         default 0x0
297
298 config HOTPLUG_CPU
299         bool "Support for hot-pluggable CPUs"
300         select GENERIC_IRQ_MIGRATION
301         depends on SMP
302         help
303           Say Y here to allow turning CPUs off and on. CPUs can be
304           controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
305
306           Say N if you want to disable CPU hotplug.
307 endmenu
308
309 source "arch/csky/Kconfig.platforms"
310
311 source "kernel/Kconfig.hz"
312
313 config SECCOMP
314         bool "Enable seccomp to safely compute untrusted bytecode"
315         help
316           This kernel feature is useful for number crunching applications
317           that may need to compute untrusted bytecode during their
318           execution. By using pipes or other transports made available to
319           the process as file descriptors supporting the read/write
320           syscalls, it's possible to isolate those applications in
321           their own address space using seccomp. Once seccomp is
322           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
323           and the task is only allowed to execute a few safe syscalls
324           defined by each seccomp mode.