Merge tag 'kconfig-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[linux-2.6-microblaze.git] / arch / microblaze / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config MICROBLAZE
3         def_bool y
4         select ARCH_32BIT_OFF_T
5         select ARCH_NO_SWAP
6         select ARCH_HAS_DMA_PREP_COHERENT
7         select ARCH_HAS_GCOV_PROFILE_ALL
8         select ARCH_HAS_SYNC_DMA_FOR_CPU
9         select ARCH_HAS_SYNC_DMA_FOR_DEVICE
10         select ARCH_MIGHT_HAVE_PC_PARPORT
11         select ARCH_WANT_IPC_PARSE_VERSION
12         select BUILDTIME_TABLE_SORT
13         select TIMER_OF
14         select CLONE_BACKWARDS3
15         select COMMON_CLK
16         select DMA_DIRECT_REMAP
17         select GENERIC_ATOMIC64
18         select GENERIC_CPU_DEVICES
19         select GENERIC_IDLE_POLL_SETUP
20         select GENERIC_IRQ_PROBE
21         select GENERIC_IRQ_SHOW
22         select GENERIC_PCI_IOMAP
23         select GENERIC_SCHED_CLOCK
24         select HAVE_ARCH_HASH
25         select HAVE_ARCH_KGDB
26         select HAVE_ARCH_SECCOMP
27         select HAVE_DEBUG_KMEMLEAK
28         select HAVE_DMA_CONTIGUOUS
29         select HAVE_DYNAMIC_FTRACE
30         select HAVE_FTRACE_MCOUNT_RECORD
31         select HAVE_FUNCTION_GRAPH_TRACER
32         select HAVE_FUNCTION_TRACER
33         select HAVE_OPROFILE
34         select HAVE_PCI
35         select IRQ_DOMAIN
36         select XILINX_INTC
37         select MODULES_USE_ELF_RELA
38         select OF
39         select OF_EARLY_FLATTREE
40         select PCI_DOMAINS_GENERIC if PCI
41         select PCI_SYSCALL if PCI
42         select TRACING_SUPPORT
43         select VIRT_TO_BUS
44         select CPU_NO_EFFICIENT_FFS
45         select MMU_GATHER_NO_RANGE
46         select SPARSE_IRQ
47         select SET_FS
48
49 # Endianness selection
50 choice
51         prompt "Endianness selection"
52         default CPU_LITTLE_ENDIAN
53         help
54           microblaze architectures can be configured for either little or
55           big endian formats. Be sure to select the appropriate mode.
56
57 config CPU_BIG_ENDIAN
58         bool "Big endian"
59
60 config CPU_LITTLE_ENDIAN
61         bool "Little endian"
62
63 endchoice
64
65 config ZONE_DMA
66         def_bool y
67
68 config ARCH_HAS_ILOG2_U32
69         def_bool n
70
71 config ARCH_HAS_ILOG2_U64
72         def_bool n
73
74 config GENERIC_HWEIGHT
75         def_bool y
76
77 config GENERIC_CALIBRATE_DELAY
78         def_bool y
79
80 config GENERIC_CSUM
81         def_bool y
82
83 config STACKTRACE_SUPPORT
84         def_bool y
85
86 config LOCKDEP_SUPPORT
87         def_bool y
88
89 source "arch/microblaze/Kconfig.platform"
90
91 menu "Processor type and features"
92
93 source "kernel/Kconfig.hz"
94
95 config MMU
96         def_bool y
97
98 comment "Boot options"
99
100 config CMDLINE_BOOL
101         bool "Default bootloader kernel arguments"
102
103 config CMDLINE
104         string "Default kernel command string"
105         depends on CMDLINE_BOOL
106         default "console=ttyUL0,115200"
107         help
108           On some architectures there is currently no way for the boot loader
109           to pass arguments to the kernel. For these architectures, you should
110           supply some command-line options at build time by entering them
111           here.
112
113 config CMDLINE_FORCE
114         bool "Force default kernel command string"
115         depends on CMDLINE_BOOL
116         default n
117         help
118           Set this to have arguments from the default kernel command string
119           override those passed by the boot loader.
120
121 endmenu
122
123 menu "Kernel features"
124
125 config NR_CPUS
126         int
127         default "1"
128
129 config ADVANCED_OPTIONS
130         bool "Prompt for advanced kernel configuration options"
131         help
132           This option will enable prompting for a variety of advanced kernel
133           configuration options.  These options can cause the kernel to not
134           work if they are set incorrectly, but can be used to optimize certain
135           aspects of kernel memory management.
136
137           Unless you know what you are doing, say N here.
138
139 comment "Default settings for advanced configuration options are used"
140         depends on !ADVANCED_OPTIONS
141
142 config HIGHMEM
143         bool "High memory support"
144         select KMAP_LOCAL
145         help
146           The address space of Microblaze processors is only 4 Gigabytes large
147           and it has to accommodate user address space, kernel address
148           space as well as some memory mapped IO. That means that, if you
149           have a large amount of physical memory and/or IO, not all of the
150           memory can be "permanently mapped" by the kernel. The physical
151           memory that is not permanently mapped is called "high memory".
152
153           If unsure, say n.
154
155 config LOWMEM_SIZE_BOOL
156         bool "Set maximum low memory"
157         depends on ADVANCED_OPTIONS
158         help
159           This option allows you to set the maximum amount of memory which
160           will be used as "low memory", that is, memory which the kernel can
161           access directly, without having to set up a kernel virtual mapping.
162           This can be useful in optimizing the layout of kernel virtual
163           memory.
164
165           Say N here unless you know what you are doing.
166
167 config LOWMEM_SIZE
168         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
169         default "0x30000000"
170
171 config MANUAL_RESET_VECTOR
172         hex "Microblaze reset vector address setup"
173         default "0x0"
174         help
175           Set this option to have the kernel override the CPU Reset vector.
176           If zero, no change will be made to the MicroBlaze reset vector at
177           address 0x0.
178           If non-zero, a jump instruction to this address, will be written
179           to the reset vector at address 0x0.
180           If you are unsure, set it to default value 0x0.
181
182 config KERNEL_START_BOOL
183         bool "Set custom kernel base address"
184         depends on ADVANCED_OPTIONS
185         help
186           This option allows you to set the kernel virtual address at which
187           the kernel will map low memory (the kernel image will be linked at
188           this address).  This can be useful in optimizing the virtual memory
189           layout of the system.
190
191           Say N here unless you know what you are doing.
192
193 config KERNEL_START
194         hex "Virtual address of kernel base" if KERNEL_START_BOOL
195         default "0xc0000000"
196
197 config TASK_SIZE_BOOL
198         bool "Set custom user task size"
199         depends on ADVANCED_OPTIONS
200         help
201           This option allows you to set the amount of virtual address space
202           allocated to user tasks.  This can be useful in optimizing the
203           virtual memory layout of the system.
204
205           Say N here unless you know what you are doing.
206
207 config TASK_SIZE
208         hex "Size of user task space" if TASK_SIZE_BOOL
209         default "0x80000000"
210
211 endmenu
212
213 menu "Bus Options"
214
215 config PCI_XILINX
216         bool "Xilinx PCI host bridge support"
217         depends on PCI
218
219 endmenu