GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / microblaze / Kconfig
1 config MICROBLAZE
2         def_bool y
3         select ARCH_HAS_GCOV_PROFILE_ALL
4         select ARCH_MIGHT_HAVE_PC_PARPORT
5         select ARCH_NO_COHERENT_DMA_MMAP if !MMU
6         select ARCH_WANT_IPC_PARSE_VERSION
7         select BUILDTIME_EXTABLE_SORT
8         select TIMER_OF
9         select CLONE_BACKWARDS3
10         select COMMON_CLK
11         select GENERIC_ATOMIC64
12         select GENERIC_CLOCKEVENTS
13         select GENERIC_CPU_DEVICES
14         select GENERIC_IDLE_POLL_SETUP
15         select GENERIC_IRQ_PROBE
16         select GENERIC_IRQ_SHOW
17         select GENERIC_PCI_IOMAP
18         select GENERIC_SCHED_CLOCK
19         select HAVE_ARCH_HASH
20         select HAVE_ARCH_KGDB
21         select HAVE_DEBUG_KMEMLEAK
22         select HAVE_DMA_API_DEBUG
23         select HAVE_DYNAMIC_FTRACE
24         select HAVE_FTRACE_MCOUNT_RECORD
25         select HAVE_FUNCTION_GRAPH_TRACER
26         select HAVE_FUNCTION_TRACER
27         select HAVE_MEMBLOCK
28         select HAVE_MEMBLOCK_NODE_MAP
29         select HAVE_OPROFILE
30         select IRQ_DOMAIN
31         select XILINX_INTC
32         select MODULES_USE_ELF_RELA
33         select OF
34         select OF_EARLY_FLATTREE
35         select TRACING_SUPPORT
36         select VIRT_TO_BUS
37         select CPU_NO_EFFICIENT_FFS
38
39 # Endianness selection
40 choice
41         prompt "Endianness selection"
42         default CPU_LITTLE_ENDIAN
43         help
44           microblaze architectures can be configured for either little or
45           big endian formats. Be sure to select the appropriate mode.
46
47 config CPU_BIG_ENDIAN
48         bool "Big endian"
49
50 config CPU_LITTLE_ENDIAN
51         bool "Little endian"
52
53 endchoice
54
55 config SWAP
56         def_bool n
57
58 config RWSEM_GENERIC_SPINLOCK
59         def_bool y
60
61 config ZONE_DMA
62         def_bool y
63
64 config RWSEM_XCHGADD_ALGORITHM
65         bool
66
67 config ARCH_HAS_ILOG2_U32
68         def_bool n
69
70 config ARCH_HAS_ILOG2_U64
71         def_bool n
72
73 config GENERIC_HWEIGHT
74         def_bool y
75
76 config GENERIC_CALIBRATE_DELAY
77         def_bool y
78
79 config GENERIC_CSUM
80         def_bool y
81
82 config STACKTRACE_SUPPORT
83         def_bool y
84
85 config LOCKDEP_SUPPORT
86         def_bool y
87
88 source "init/Kconfig"
89
90 source "kernel/Kconfig.freezer"
91
92 source "arch/microblaze/Kconfig.platform"
93
94 menu "Processor type and features"
95
96 source "kernel/Kconfig.preempt"
97
98 source "kernel/Kconfig.hz"
99
100 config MMU
101         bool "MMU support"
102         default n
103
104 comment "Boot options"
105
106 config CMDLINE_BOOL
107         bool "Default bootloader kernel arguments"
108
109 config CMDLINE
110         string "Default kernel command string"
111         depends on CMDLINE_BOOL
112         default "console=ttyUL0,115200"
113         help
114           On some architectures there is currently no way for the boot loader
115           to pass arguments to the kernel. For these architectures, you should
116           supply some command-line options at build time by entering them
117           here.
118
119 config CMDLINE_FORCE
120         bool "Force default kernel command string"
121         depends on CMDLINE_BOOL
122         default n
123         help
124           Set this to have arguments from the default kernel command string
125           override those passed by the boot loader.
126
127 config SECCOMP
128         bool "Enable seccomp to safely compute untrusted bytecode"
129         depends on PROC_FS
130         default y
131         help
132           This kernel feature is useful for number crunching applications
133           that may need to compute untrusted bytecode during their
134           execution. By using pipes or other transports made available to
135           the process as file descriptors supporting the read/write
136           syscalls, it's possible to isolate those applications in
137           their own address space using seccomp. Once seccomp is
138           enabled via /proc/<pid>/seccomp, it cannot be disabled
139           and the task is only allowed to execute a few safe syscalls
140           defined by each seccomp mode.
141
142           If unsure, say Y. Only embedded should say N here.
143
144 endmenu
145
146 menu "Kernel features"
147
148 config NR_CPUS
149         int
150         default "1"
151
152 config ADVANCED_OPTIONS
153         bool "Prompt for advanced kernel configuration options"
154         help
155           This option will enable prompting for a variety of advanced kernel
156           configuration options.  These options can cause the kernel to not
157           work if they are set incorrectly, but can be used to optimize certain
158           aspects of kernel memory management.
159
160           Unless you know what you are doing, say N here.
161
162 comment "Default settings for advanced configuration options are used"
163         depends on !ADVANCED_OPTIONS
164
165 config XILINX_UNCACHED_SHADOW
166         bool "Are you using uncached shadow for RAM ?"
167         depends on ADVANCED_OPTIONS && !MMU
168         default n
169         help
170           This is needed to be able to allocate uncachable memory regions.
171           The feature requires the design to define the RAM memory controller
172           window to be twice as large as the actual physical memory.
173
174 config HIGHMEM
175         bool "High memory support"
176         depends on MMU
177         help
178           The address space of Microblaze processors is only 4 Gigabytes large
179           and it has to accommodate user address space, kernel address
180           space as well as some memory mapped IO. That means that, if you
181           have a large amount of physical memory and/or IO, not all of the
182           memory can be "permanently mapped" by the kernel. The physical
183           memory that is not permanently mapped is called "high memory".
184
185           If unsure, say n.
186
187 config LOWMEM_SIZE_BOOL
188         bool "Set maximum low memory"
189         depends on ADVANCED_OPTIONS && MMU
190         help
191           This option allows you to set the maximum amount of memory which
192           will be used as "low memory", that is, memory which the kernel can
193           access directly, without having to set up a kernel virtual mapping.
194           This can be useful in optimizing the layout of kernel virtual
195           memory.
196
197           Say N here unless you know what you are doing.
198
199 config LOWMEM_SIZE
200         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
201         default "0x30000000"
202
203 config MANUAL_RESET_VECTOR
204         hex "Microblaze reset vector address setup"
205         default "0x0"
206         help
207           Set this option to have the kernel override the CPU Reset vector.
208           If zero, no change will be made to the MicroBlaze reset vector at
209           address 0x0.
210           If non-zero, a jump instruction to this address, will be written
211           to the reset vector at address 0x0.
212           If you are unsure, set it to default value 0x0.
213
214 config KERNEL_START_BOOL
215         bool "Set custom kernel base address"
216         depends on ADVANCED_OPTIONS
217         help
218           This option allows you to set the kernel virtual address at which
219           the kernel will map low memory (the kernel image will be linked at
220           this address).  This can be useful in optimizing the virtual memory
221           layout of the system.
222
223           Say N here unless you know what you are doing.
224
225 config KERNEL_START
226         hex "Virtual address of kernel base" if KERNEL_START_BOOL
227         default "0xc0000000" if MMU
228         default KERNEL_BASE_ADDR if !MMU
229
230 config TASK_SIZE_BOOL
231         bool "Set custom user task size"
232         depends on ADVANCED_OPTIONS && MMU
233         help
234           This option allows you to set the amount of virtual address space
235           allocated to user tasks.  This can be useful in optimizing the
236           virtual memory layout of the system.
237
238           Say N here unless you know what you are doing.
239
240 config TASK_SIZE
241         hex "Size of user task space" if TASK_SIZE_BOOL
242         default "0x80000000"
243
244 choice
245         prompt "Page size"
246         default MICROBLAZE_4K_PAGES
247         depends on ADVANCED_OPTIONS && !MMU
248         help
249           Select the kernel logical page size. Increasing the page size
250           will reduce software overhead at each page boundary, allow
251           hardware prefetch mechanisms to be more effective, and allow
252           larger dma transfers increasing IO efficiency and reducing
253           overhead. However the utilization of memory will increase.
254           For example, each cached file will using a multiple of the
255           page size to hold its contents and the difference between the
256           end of file and the end of page is wasted.
257
258           If unsure, choose 4K_PAGES.
259
260 config MICROBLAZE_4K_PAGES
261         bool "4k page size"
262
263 config MICROBLAZE_16K_PAGES
264         bool "16k page size"
265
266 config MICROBLAZE_64K_PAGES
267         bool "64k page size"
268
269 endchoice
270
271 source "mm/Kconfig"
272
273 endmenu
274
275 menu "Executable file formats"
276
277 source "fs/Kconfig.binfmt"
278
279 endmenu
280
281 menu "Bus Options"
282
283 config PCI
284         bool "PCI support"
285
286 config PCI_DOMAINS
287         def_bool PCI
288
289 config PCI_DOMAINS_GENERIC
290         def_bool PCI_DOMAINS
291
292 config PCI_SYSCALL
293         def_bool PCI
294
295 config PCI_XILINX
296         bool "Xilinx PCI host bridge support"
297         depends on PCI
298
299 source "drivers/pci/Kconfig"
300
301 endmenu
302
303 source "net/Kconfig"
304
305 source "drivers/Kconfig"
306
307 source "fs/Kconfig"
308
309 source "arch/microblaze/Kconfig.debug"
310
311 source "security/Kconfig"
312
313 source "crypto/Kconfig"
314
315 source "lib/Kconfig"