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