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