]> git.ipfire.org Git - people/ms/u-boot.git/blob - Kconfig
spl: Add an option to load a FIT containing U-Boot
[people/ms/u-boot.git] / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5 mainmenu "U-Boot $UBOOTVERSION Configuration"
6
7 config UBOOTVERSION
8 string
9 option env="UBOOTVERSION"
10
11 # Allow defaults in arch-specific code to override any given here
12 source "arch/Kconfig"
13
14 menu "General setup"
15
16 config LOCALVERSION
17 string "Local version - append to U-Boot release"
18 help
19 Append an extra string to the end of your U-Boot version.
20 This will show up on your boot log, for example.
21 The string you set here will be appended after the contents of
22 any files with a filename matching localversion* in your
23 object and source tree, in that order. Your total string can
24 be a maximum of 64 characters.
25
26 config LOCALVERSION_AUTO
27 bool "Automatically append version information to the version string"
28 default y
29 help
30 This will try to automatically determine if the current tree is a
31 release tree by looking for git tags that belong to the current
32 top of tree revision.
33
34 A string of the format -gxxxxxxxx will be added to the localversion
35 if a git-based tree is found. The string generated by this will be
36 appended after any matching localversion* files, and after the value
37 set in CONFIG_LOCALVERSION.
38
39 (The actual string used here is the first eight characters produced
40 by running the command:
41
42 $ git rev-parse --verify HEAD
43
44 which is done within the script "scripts/setlocalversion".)
45
46 config CC_OPTIMIZE_FOR_SIZE
47 bool "Optimize for size"
48 default y
49 help
50 Enabling this option will pass "-Os" instead of "-O2" to gcc
51 resulting in a smaller U-Boot image.
52
53 This option is enabled by default for U-Boot.
54
55 config SYS_MALLOC_F
56 bool "Enable malloc() pool before relocation"
57 default y if DM
58 help
59 Before relocation memory is very limited on many platforms. Still,
60 we can provide a small malloc() pool if needed. Driver model in
61 particular needs this to operate, so that it can allocate the
62 initial serial device and any others that are needed.
63
64 config SYS_MALLOC_F_LEN
65 hex "Size of malloc() pool before relocation"
66 depends on SYS_MALLOC_F
67 default 0x400
68 help
69 Before relocation memory is very limited on many platforms. Still,
70 we can provide a small malloc() pool if needed. Driver model in
71 particular needs this to operate, so that it can allocate the
72 initial serial device and any others that are needed.
73
74 menuconfig EXPERT
75 bool "Configure standard U-Boot features (expert users)"
76 default y
77 help
78 This option allows certain base U-Boot options and settings
79 to be disabled or tweaked. This is for specialized
80 environments which can tolerate a "non-standard" U-Boot.
81 Only use this if you really know what you are doing.
82
83 if EXPERT
84 config SYS_MALLOC_CLEAR_ON_INIT
85 bool "Init with zeros the memory reserved for malloc (slow)"
86 default y
87 help
88 This setting is enabled by default. The reserved malloc
89 memory is initialized with zeros, so first malloc calls
90 will return the pointer to the zeroed memory. But this
91 slows the boot time.
92
93 It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
94 value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
95 Then the boot time can be significantly reduced.
96 Warning:
97 When disabling this, please check if malloc calls, maybe
98 should be replaced by calloc - if expects zeroed memory.
99 endif
100 endmenu # General setup
101
102 menu "Boot images"
103
104 config SUPPORT_SPL
105 bool
106
107 config SUPPORT_TPL
108 bool
109
110 config SPL
111 bool
112 depends on SUPPORT_SPL
113 prompt "Enable SPL"
114 help
115 If you want to build SPL as well as the normal image, say Y.
116
117 config SPL_SYS_MALLOC_SIMPLE
118 bool
119 depends on SPL
120 prompt "Only use malloc_simple functions in the spl"
121 help
122 Say Y here to only use the *_simple malloc functions from
123 malloc_simple.c, rather then using the versions from dlmalloc.c
124 this will make the SPL binary smaller at the cost of more heap
125 usage as the *_simple malloc functions do not re-use free-ed mem.
126
127 config SPL_STACK_R
128 depends on SPL
129 bool "Enable SDRAM location for SPL stack"
130 help
131 SPL starts off execution in SRAM and thus typically has only a small
132 stack available. Since SPL sets up DRAM while in its board_init_f()
133 function, it is possible for the stack to move there before
134 board_init_r() is reached. This option enables a special SDRAM
135 location for the SPL stack. U-Boot SPL switches to this after
136 board_init_f() completes, and before board_init_r() starts.
137
138 config SPL_STACK_R_ADDR
139 depends on SPL_STACK_R
140 hex "SDRAM location for SPL stack"
141 help
142 Specify the address in SDRAM for the SPL stack. This will be set up
143 before board_init_r() is called.
144
145 config SPL_STACK_R_MALLOC_SIMPLE_LEN
146 depends on SPL_STACK_R && SPL_SYS_MALLOC_SIMPLE
147 hex "Size of malloc_simple heap after switching to DRAM SPL stack"
148 default 0x100000
149 help
150 Specify the amount of the stack to use as memory pool for
151 malloc_simple after switching the stack to DRAM. This may be set
152 to give board_init_r() a larger heap then the initial heap in
153 SRAM which is limited to SYS_MALLOC_F_LEN bytes.
154
155 config SPL_SEPARATE_BSS
156 depends on SPL
157 bool "BSS section is in a different memory region from text"
158 help
159 Some platforms need a large BSS region in SPL and can provide this
160 because RAM is already set up. In this case BSS can be moved to RAM.
161 This option should then be enabled so that the correct device tree
162 location is used. Normally we put the device tree at the end of BSS
163 but with this option enabled, it goes at _image_binary_end.
164
165 config TPL
166 bool
167 depends on SPL && SUPPORT_TPL
168 prompt "Enable TPL"
169 help
170 If you want to build TPL as well as the normal image and SPL, say Y.
171
172 config FIT
173 bool "Support Flattened Image Tree"
174 help
175 This option allows to boot the new uImage structrure,
176 Flattened Image Tree. FIT is formally a FDT, which can include
177 images of various types (kernel, FDT blob, ramdisk, etc.)
178 in a single blob. To boot this new uImage structure,
179 pass the address of the blob to the "bootm" command.
180 FIT is very flexible, supporting compression, multiple images,
181 multiple configurations, verification through hashing and also
182 verified boot (secure boot using RSA). This option enables that
183 feature.
184
185 config FIT_VERBOSE
186 bool "Display verbose messages on FIT boot"
187 depends on FIT
188
189 config FIT_SIGNATURE
190 bool "Enable signature verification of FIT uImages"
191 depends on FIT
192 depends on DM
193 select RSA
194 help
195 This option enables signature verification of FIT uImages,
196 using a hash signed and verified using RSA. If
197 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
198 hashing is available using hardware, then then RSA library will use
199 it. See doc/uImage.FIT/signature.txt for more details.
200
201 WARNING: When relying on signed FIT images with a required signature
202 check the legacy image format is disabled by default, so that
203 unsigned images cannot be loaded. If a board needs the legacy image
204 format support in this case, enable it using
205 CONFIG_IMAGE_FORMAT_LEGACY.
206
207 config FIT_BEST_MATCH
208 bool "Select the best match for the kernel device tree"
209 depends on FIT
210 help
211 When no configuration is explicitly selected, default to the
212 one whose fdt's compatibility field best matches that of
213 U-Boot itself. A match is considered "best" if it matches the
214 most specific compatibility entry of U-Boot's fdt's root node.
215 The order of entries in the configuration's fdt is ignored.
216
217 config FIT_VERBOSE
218 bool "Show verbose messages when FIT images fails"
219 depends on FIT
220 help
221 Generally a system will have valid FIT images so debug messages
222 are a waste of code space. If you are debugging your images then
223 you can enable this option to get more verbose information about
224 failures.
225
226 config OF_BOARD_SETUP
227 bool "Set up board-specific details in device tree before boot"
228 depends on OF_LIBFDT
229 help
230 This causes U-Boot to call ft_board_setup() before booting into
231 the Operating System. This function can set up various
232 board-specific information in the device tree for use by the OS.
233 The device tree is then passed to the OS.
234
235 config OF_SYSTEM_SETUP
236 bool "Set up system-specific details in device tree before boot"
237 depends on OF_LIBFDT
238 help
239 This causes U-Boot to call ft_system_setup() before booting into
240 the Operating System. This function can set up various
241 system-specific information in the device tree for use by the OS.
242 The device tree is then passed to the OS.
243
244 config OF_STDOUT_VIA_ALIAS
245 bool "Update the device-tree stdout alias from U-Boot"
246 depends on OF_LIBFDT
247 help
248 This uses U-Boot's serial alias from the aliases node to update
249 the device tree passed to the OS. The "linux,stdout-path" property
250 in the chosen node is set to point to the correct serial node.
251 This option currently references CONFIG_CONS_INDEX, which is
252 incorrect when used with device tree as this option does not
253 exist / should not be used.
254
255 config SYS_EXTRA_OPTIONS
256 string "Extra Options (DEPRECATED)"
257 help
258 The old configuration infrastructure (= mkconfig + boards.cfg)
259 provided the extra options field. If you have something like
260 "HAS_BAR,BAZ=64", the optional options
261 #define CONFIG_HAS
262 #define CONFIG_BAZ 64
263 will be defined in include/config.h.
264 This option was prepared for the smooth migration from the old
265 configuration to Kconfig. Since this option will be removed sometime,
266 new boards should not use this option.
267
268 config SYS_TEXT_BASE
269 depends on SPARC || ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
270 (M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE
271 depends on !EFI_APP
272 hex "Text Base"
273 help
274 TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
275
276 config SPL_LOAD_FIT
277 bool "Enable SPL loading U-Boot as a FIT"
278 depends on FIT
279 help
280 Normally with the SPL framework a legacy image is generated as part
281 of the build. This contains U-Boot along with information as to
282 where it should be loaded. This option instead enables generation
283 of a FIT (Flat Image Tree) which provides more flexibility. In
284 particular it can handle selecting from multiple device tree
285 and passing the correct one to U-Boot.
286
287 config SYS_CLK_FREQ
288 depends on ARC || ARCH_SUNXI
289 int "CPU clock frequency"
290 help
291 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
292
293 endmenu # Boot images
294
295 source "common/Kconfig"
296
297 source "cmd/Kconfig"
298
299 source "dts/Kconfig"
300
301 source "net/Kconfig"
302
303 source "drivers/Kconfig"
304
305 source "fs/Kconfig"
306
307 source "lib/Kconfig"
308
309 source "test/Kconfig"