blob: 9994ab13dcba9501ce6e4802f9f4b631f2a80024 [file] [log] [blame]
Masahiro Yamada9fadbc82014-09-22 19:59:05 +09001#
2# Device Tree Control
3#
Masahiro Yamada9fadbc82014-09-22 19:59:05 +09004
5config SUPPORT_OF_CONTROL
6 bool
7
Masahiro Yamada87247af2017-10-17 13:42:44 +09008config PYLIBFDT
9 bool
10
11config DTOC
12 bool
13 select PYLIBFDT
14
15config BINMAN
16 bool
17 select DTOC
18
Bin Mengd72582f2021-05-10 20:23:37 +080019config BINMAN_STANDALONE_FDT
20 bool
21 depends on BINMAN
Ilias Apalodimas554f85e2021-10-12 00:00:15 +030022 default y if OF_BOARD
Bin Mengd72582f2021-05-10 20:23:37 +080023 help
24 This option tells U-Boot build system that a standalone device tree
25 source is explicitly required when using binman to package U-Boot.
26
27 This is not necessary in a common scenario where a device tree source
28 that contains the binman node is provided in the arch/<arch>/dts
29 directory for a specific board. Such device tree sources are built for
30 OF_SEPARATE or OF_EMBED. However for a scenario like the board device
31 tree blob is not provided in the U-Boot build tree, but fed to U-Boot
Ilias Apalodimas554f85e2021-10-12 00:00:15 +030032 in the runtime, e.g.: in the OF_BOARD case that it is passed by
Bin Mengd72582f2021-05-10 20:23:37 +080033 a prior stage bootloader. For such scenario, a standalone device tree
34 blob containing binman node to describe how to package U-Boot should
35 be provided explicitly.
36
Masahiro Yamada9fadbc82014-09-22 19:59:05 +090037menu "Device Tree Control"
Masahiro Yamada9fadbc82014-09-22 19:59:05 +090038 depends on SUPPORT_OF_CONTROL
39
40config OF_CONTROL
41 bool "Run-time configuration via Device Tree"
Sean Anderson08c854a2019-12-17 21:40:09 -050042 select OF_LIBFDT if !OF_PLATDATA
Simon Glass3580f6d2021-08-07 07:24:03 -060043 select OF_REAL if !OF_PLATDATA
Masahiro Yamada9fadbc82014-09-22 19:59:05 +090044 help
45 This feature provides for run-time configuration of U-Boot
46 via a flattened device tree.
47
Simon Glass7c4ba162021-08-07 07:24:02 -060048config OF_REAL
Simon Glass3580f6d2021-08-07 07:24:03 -060049 bool
Simon Glass7c4ba162021-08-07 07:24:02 -060050 help
51 Indicates that a real devicetree is available which can be accessed
52 at runtime. This means that dev_read_...() functions can be used to
53 read data from the devicetree for each device. This is true if
54 OF_CONTROL is enabled in U-Boot proper.
55
mario.six@gdsys.cc7e9b9d62017-02-22 16:07:22 +010056config OF_BOARD_FIXUP
57 bool "Board-specific manipulation of Device Tree"
58 help
59 In certain circumstances it is necessary to be able to modify
60 U-Boot's device tree (e.g. to delete device from it). This option
61 make the Device Tree writeable and provides a board-specific
62 "board_fix_fdt" callback (called during pre-relocation time), which
63 enables the board initialization to modifiy the Device Tree. The
64 modified copy is subsequently used by U-Boot after relocation.
65
Masahiro Yamada1e35f392015-08-12 07:31:54 +090066config SPL_OF_CONTROL
67 bool "Enable run-time configuration via Device Tree in SPL"
68 depends on SPL && OF_CONTROL
Sean Anderson08c854a2019-12-17 21:40:09 -050069 select SPL_OF_LIBFDT if !SPL_OF_PLATDATA
Simon Glass7c4ba162021-08-07 07:24:02 -060070 select SPL_OF_REAL if !SPL_OF_PLATDATA
Simon Glass400d0402015-02-27 22:06:38 -070071 help
72 Some boards use device tree in U-Boot but only have 4KB of SRAM
Walter Lozano7b3d2582019-10-22 11:50:19 -030073 which is not enough to support device tree. Disable this option to
Simon Glass400d0402015-02-27 22:06:38 -070074 allow such boards to be supported by U-Boot SPL.
75
Philipp Tomsich2341dc62017-06-29 11:11:21 +020076config TPL_OF_CONTROL
77 bool "Enable run-time configuration via Device Tree in TPL"
78 depends on TPL && OF_CONTROL
Sean Anderson08c854a2019-12-17 21:40:09 -050079 select TPL_OF_LIBFDT if !TPL_OF_PLATDATA
Simon Glass7c4ba162021-08-07 07:24:02 -060080 select TPL_OF_REAL if !TPL_OF_PLATDATA
Philipp Tomsich2341dc62017-06-29 11:11:21 +020081 help
82 Some boards use device tree in U-Boot but only have 4KB of SRAM
83 which is not enough to support device tree. Enable this option to
84 allow such boards to be supported by U-Boot TPL.
85
Simon Glassa6eedb82017-05-18 20:08:53 -060086config OF_LIVE
87 bool "Enable use of a live tree"
Bin Meng85f737b2021-02-03 21:20:03 +080088 depends on DM && OF_CONTROL
Simon Glassa6eedb82017-05-18 20:08:53 -060089 help
90 Normally U-Boot uses a flat device tree which saves space and
91 avoids the need to unpack the tree before use. However a flat
Michal Simek97a0e492018-08-17 10:16:36 +020092 tree does not support modification from within U-Boot since it
Simon Glassa6eedb82017-05-18 20:08:53 -060093 can invalidate driver-model device tree offsets. This option
94 enables a live tree which is available after relocation,
95 and can be adjusted as needed.
96
Masahiro Yamada9fadbc82014-09-22 19:59:05 +090097choice
98 prompt "Provider of DTB for DT control"
99 depends on OF_CONTROL
100
101config OF_SEPARATE
102 bool "Separate DTB for DT control"
Masahiro Yamada9fadbc82014-09-22 19:59:05 +0900103 help
104 If this option is enabled, the device tree will be built and
105 placed as a separate u-boot.dtb file alongside the U-Boot image.
106
107config OF_EMBED
108 bool "Embedded DTB for DT control"
109 help
110 If this option is enabled, the device tree will be picked up and
Simon Glassd9b64ea2015-08-31 18:47:52 -0600111 built into the U-Boot image. This is suitable for local debugging
112 and development only and is not recommended for production devices.
113 Boards in the mainline U-Boot tree should not use it.
Masahiro Yamada9fadbc82014-09-22 19:59:05 +0900114
Simon Glass4cea97f2021-12-16 20:59:21 -0700115endchoice
116
Alex Deymo5b661ec2017-04-02 01:25:20 -0700117config OF_BOARD
Ilias Apalodimasdc35df42021-10-12 00:00:13 +0300118 bool "Provided by the board (e.g a previous loader) at runtime"
Simon Glass4cea97f2021-12-16 20:59:21 -0700119 default y if SANDBOX
Alex Deymo5b661ec2017-04-02 01:25:20 -0700120 help
121 If this option is enabled, the device tree will be provided by
Simon Glass4cea97f2021-12-16 20:59:21 -0700122 the board at runtime if the board supports it. The device tree bundled
123 with the image (if any) will be overridden / ignored.
Alex Deymo5b661ec2017-04-02 01:25:20 -0700124
Simon Glass4cea97f2021-12-16 20:59:21 -0700125 A device tree file must be provided in the tree.
Masahiro Yamada9fadbc82014-09-22 19:59:05 +0900126
Masahiro Yamada8c65b9d2014-09-22 19:59:06 +0900127config DEFAULT_DEVICE_TREE
128 string "Default Device Tree for DT control"
Simon Glass644f5bc2016-02-22 22:55:44 -0700129 depends on OF_CONTROL
Masahiro Yamada8c65b9d2014-09-22 19:59:06 +0900130 help
131 This option specifies the default Device Tree used for DT control.
Robert P. J. Dayeb61df52014-10-21 16:44:32 -0400132 It can be overridden from the command line:
Masahiro Yamada8c65b9d2014-09-22 19:59:06 +0900133 $ make DEVICE_TREE=<device-tree-name>
134
Simon Glass963817b2016-02-22 22:55:57 -0700135config OF_LIST
136 string "List of device tree files to include for DT control"
Jean-Jacques Hiblot2037fa42017-09-15 12:57:24 +0200137 depends on SPL_LOAD_FIT || MULTI_DTB_FIT
Michal Simek9b2e95a2016-05-04 15:14:11 +0200138 default DEFAULT_DEVICE_TREE
Simon Glass963817b2016-02-22 22:55:57 -0700139 help
140 This option specifies a list of device tree files to use for DT
Cooper Jr., Franklin06c7b622017-06-16 17:25:09 -0500141 control. These will be packaged into a FIT. At run-time, U-boot
142 or SPL will select the correct DT to use by examining the
143 hardware (e.g. reading a board ID value). This is a list of
144 device tree files (without the directory or .dtb suffix)
145 separated by <space>.
Simon Glass963817b2016-02-22 22:55:57 -0700146
Jean-Jacques Hiblot985cec32019-10-22 16:39:21 +0200147config OF_OVERLAY_LIST
148 string "List of device tree overlays to include for DT control"
149 depends on SPL_LOAD_FIT_APPLY_OVERLAY
150 help
151 This option specifies a list of device tree overlays to use for DT
152 control. This option can then be used by a FIT generator to include
153 the overlays in the FIT image.
154
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100155choice
Baruch Siach45508fc2019-10-07 15:05:47 +0300156 prompt "OF LIST compression"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100157 depends on MULTI_DTB_FIT
158 default MULTI_DTB_FIT_NO_COMPRESSION
159
160config MULTI_DTB_FIT_LZO
161 bool "LZO"
162 depends on SYS_MALLOC_F
163 select LZO
164 help
165 Compress the FIT image containing the DTBs available for the SPL
166 using LZO compression. (requires lzop on host).
167
168config MULTI_DTB_FIT_GZIP
169 bool "GZIP"
170 depends on SYS_MALLOC_F
171 select GZIP
172 help
173 Compress the FIT image containing the DTBs available for the SPL
174 using GZIP compression. (requires gzip on host)
175
176config MULTI_DTB_FIT_NO_COMPRESSION
177 bool "No compression"
178 help
179 Do not compress the FIT image containing the DTBs available for the SPL.
180 Use this options only if LZO is not available and the DTBs are very small.
181endchoice
182
183choice
184 prompt "Location of uncompressed DTBs"
185 depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
186 default MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
187
188config MULTI_DTB_FIT_DYN_ALLOC
189 bool "Dynamically allocate the memory"
190 depends on SYS_MALLOC_F
191
192config MULTI_DTB_FIT_USER_DEFINED_AREA
193 bool "User-defined location"
194endchoice
195
196config MULTI_DTB_FIT_UNCOMPRESS_SZ
197 hex "Size of memory reserved to uncompress the DTBs"
198 depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
199 default 0x8000
200 help
201 This is the size of this area where the DTBs are uncompressed.
202 If this area is dynamically allocated, make sure that
203 SYS_MALLOC_F_LEN is big enough to contain it.
204
205config MULTI_DTB_FIT_USER_DEF_ADDR
206 hex "Address of memory where dtbs are uncompressed"
207 depends on MULTI_DTB_FIT_USER_DEFINED_AREA
208 help
209 the FIT image containing the DTBs is uncompressed in an area defined
210 at compilation time. This is the address of this area. It must be
211 aligned on 2-byte boundary.
Jean-Jacques Hiblot2037fa42017-09-15 12:57:24 +0200212
213config DTB_RESELECT
214 bool "Support swapping dtbs at a later point in boot"
215 depends on MULTI_DTB_FIT
216 help
217 It is possible during initial boot you may need to use a generic
218 dtb until you can fully determine the board your running on. This
219 config allows boards to implement a function at a later point
220 during boot to switch to the "correct" dtb.
221
222config MULTI_DTB_FIT
223 bool "Support embedding several DTBs in a FIT image for u-boot"
224 help
225 This option provides hooks to allow U-boot to parse an
226 appended FIT image and enable board specific code to then select
227 the correct DTB to be used. Use this if you need to support
228 multiple DTBs but don't use the SPL.
229
Jean-Jacques Hiblota2fee162017-09-15 12:57:32 +0200230
231config SPL_MULTI_DTB_FIT
Simon Glass7c4ba162021-08-07 07:24:02 -0600232 depends on SPL_LOAD_FIT && SPL_OF_REAL
Jean-Jacques Hiblota2fee162017-09-15 12:57:32 +0200233 bool "Support embedding several DTBs in a FIT image for the SPL"
234 help
235 This option provides the SPL with the ability to select its own
236 DTB at runtime from an appended FIT image containing several DTBs.
237 This allows using the same SPL binary on multiple platforms.
238 The primary purpose is to handle different versions of
239 the same platform without tweaking the platform code if the
240 differences can be expressed in the DTBs (common examples are: bus
241 capabilities, pad configurations).
242
243config SPL_OF_LIST
244 string "List of device tree files to include for DT control in SPL"
245 depends on SPL_MULTI_DTB_FIT
246 default OF_LIST
247 help
248 This option specifies a list of device tree files to use for DT
249 control in the SPL. These will be packaged into a FIT. At run-time,
250 the SPL will select the correct DT to use by examining the
251 hardware (e.g. reading a board ID value). This is a list of
252 device tree files (without the directory or .dtb suffix)
253 separated by <space>.
254
255choice
256 prompt "SPL OF LIST compression"
257 depends on SPL_MULTI_DTB_FIT
258 default SPL_MULTI_DTB_FIT_LZO
259
260config SPL_MULTI_DTB_FIT_LZO
261 bool "LZO"
262 depends on SYS_MALLOC_F
263 select SPL_LZO
264 help
265 Compress the FIT image containing the DTBs available for the SPL
266 using LZO compression. (requires lzop on host).
267
268config SPL_MULTI_DTB_FIT_GZIP
269 bool "GZIP"
270 depends on SYS_MALLOC_F
271 select SPL_GZIP
272 help
273 Compress the FIT image containing the DTBs available for the SPL
274 using GZIP compression. (requires gzip on host)
275
276config SPL_MULTI_DTB_FIT_NO_COMPRESSION
277 bool "No compression"
278 help
279 Do not compress the FIT image containing the DTBs available for the SPL.
280 Use this options only if LZO is not available and the DTBs are very small.
281endchoice
282
283choice
Michal Simekc7df3a22018-07-23 08:38:56 +0200284 prompt "Location of uncompressed DTBs"
Jean-Jacques Hiblota2fee162017-09-15 12:57:32 +0200285 depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
286 default SPL_MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
287
288config SPL_MULTI_DTB_FIT_DYN_ALLOC
289 bool "Dynamically allocate the memory"
290 depends on SYS_MALLOC_F
291
292config SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
293 bool "User-defined location"
294endchoice
295
296config SPL_MULTI_DTB_FIT_UNCOMPRESS_SZ
297 hex "Size of memory reserved to uncompress the DTBs"
298 depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
299 default 0x8000
300 help
301 This is the size of this area where the DTBs are uncompressed.
302 If this area is dynamically allocated, make sure that
303 SPL_SYS_MALLOC_F_LEN is big enough to contain it.
304
305config SPL_MULTI_DTB_FIT_USER_DEF_ADDR
306 hex "Address of memory where dtbs are uncompressed"
307 depends on SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
308 help
309 the FIT image containing the DTBs is uncompressed in an area defined
310 at compilation time. This is the address of this area. It must be
311 aligned on 2-byte boundary.
312
Simon Glass89caf332015-06-23 15:38:29 -0600313config OF_SPL_REMOVE_PROPS
314 string "List of device tree properties to drop for SPL"
Masahiro Yamadaddb9aa972015-08-28 20:28:42 +0900315 depends on SPL_OF_CONTROL
Michal Simekde218072019-02-22 10:50:23 +0100316 default "interrupt-parent interrupts" if SPL_PINCTRL && SPL_CLK
317 default "clocks clock-names interrupt-parent interrupts" if SPL_PINCTRL
318 default "pinctrl-0 pinctrl-names interrupt-parent interrupts" if SPL_CLK
319 default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent interrupts"
Simon Glass89caf332015-06-23 15:38:29 -0600320 help
321 Since SPL normally runs in a reduced memory space, the device tree
322 is cut down to only what is needed to load and start U-Boot. Only
323 nodes marked with the property "u-boot,dm-pre-reloc" will be
324 included. In addition, some properties are not used by U-Boot and
325 can be discarded. This option defines the list of properties to
326 discard.
327
Anatolij Gustschin08568342020-01-12 15:57:42 +0100328config OF_DTB_PROPS_REMOVE
329 bool "Enable removal of device tree properties"
330 depends on OF_CONTROL
331 help
332 Some boards have restricted amount of storage for U-Boot image.
333 If the generated binary doesn't fit into available image storage,
334 the built-in device tree could probably be cut down by removing
335 some not required device tree properties to reduce the image size.
336 Enable this option and define the properties to be removed in the
337 CONFIG_OF_REMOVE_PROPS list. Do not enable this option if you must
338 pass the built-in DTB directly to the kernel!
339
340config OF_REMOVE_PROPS
341 string "List of device tree properties to drop"
342 depends on OF_DTB_PROPS_REMOVE
343 default "interrupt-parent interrupts" if PINCTRL
344 help
345 Some properties are not used by U-Boot and can be discarded.
346 This option defines the list of properties to discard.
347
Simon Glass7bc65f32016-07-04 11:58:06 -0600348config SPL_OF_PLATDATA
349 bool "Generate platform data for use in SPL"
350 depends on SPL_OF_CONTROL
Masahiro Yamada87247af2017-10-17 13:42:44 +0900351 select DTOC
Simon Glass8beeb282021-03-15 17:25:36 +1300352 select SPL_OF_PLATDATA_DRIVER_RT if !SPL_OF_PLATDATA_INST
Simon Glass7bc65f32016-07-04 11:58:06 -0600353 help
354 For very constrained SPL environments the overhead of decoding
355 device tree nodes and converting their contents into platform data
356 is too large. This overhead includes libfdt code as well as the
357 device tree contents itself. The latter is fairly compact, but the
358 former can add 3KB or more to a Thumb 2 Image.
359
360 This option enables generation of platform data from the device
Simon Glass1d8364a2020-12-28 20:34:54 -0700361 tree as C code. This code creates devices using U_BOOT_DRVINFO()
Simon Glass7bc65f32016-07-04 11:58:06 -0600362 declarations. The benefit is that it allows driver code to access
363 the platform data directly in C structures, avoidin the libfdt
364 overhead.
365
366 This option works by generating C structure declarations for each
Simon Glass1d8364a2020-12-28 20:34:54 -0700367 compatible string, then adding platform data and U_BOOT_DRVINFO
Simon Goldschmidt49ce8ca2019-01-16 20:40:18 +0100368 declarations for each node. See of-plat.txt for more information.
Simon Glass7bc65f32016-07-04 11:58:06 -0600369
Simon Glass7c4ba162021-08-07 07:24:02 -0600370config SPL_OF_REAL
371 bool
372 help
373 Indicates that a real devicetree is available which can be accessed
374 at runtime. This means that dev_read_...() functions can be used to
375 read data from the devicetree for each device. This is true if
376 SPL_OF_CONTROL is enabled and not SPL_OF_PLATDATA
377
Simon Glass240d5f62021-02-03 06:01:13 -0700378if SPL_OF_PLATDATA
379
Simon Glass36b15e22020-10-03 11:31:35 -0600380config SPL_OF_PLATDATA_PARENT
381 bool "Support parent information in devices"
Simon Glass36b15e22020-10-03 11:31:35 -0600382 default y
383 help
384 Generally it is useful to be able to access the parent of a device
385 with of-platdata. To save space this can be disabled, but in that
386 case dev_get_parent() will always return NULL;
387
Simon Glass240d5f62021-02-03 06:01:13 -0700388config SPL_OF_PLATDATA_INST
389 bool "Declare devices at build time"
390 help
391 Declare devices as udevice instances so that they do not need to be
392 bound when U-Boot starts. This can save time and code space.
393
Simon Glass47fd4a22021-03-15 17:25:15 +1300394config SPL_OF_PLATDATA_NO_BIND
395 bool "Don't allow run-time binding of devices"
396 depends on SPL_OF_PLATDATA_INST
397 default y
398 help
399 This removes the ability to bind devices at run time, thus saving
400 some code space in U-Boot. This can be disabled if binding is needed,
401 at the code of some code size increase.
402
Simon Glass5b21b342021-03-15 17:25:35 +1300403config SPL_OF_PLATDATA_RT
404 bool "Use a separate struct for device runtime data"
405 depends on SPL_OF_PLATDATA_INST
406 default y
407 help
408 For systems running SPL from read-only memory it is convenient to
409 separate out the runtime information, so that the devices don't need
410 to be copied before being used. This moves the read-write parts of
411 struct udevice (at present just the flags) into a separate struct,
412 which is allocated at runtime.
413
Simon Glass8beeb282021-03-15 17:25:36 +1300414config SPL_OF_PLATDATA_DRIVER_RT
415 bool
416 help
417 Use a separate struct for driver runtime data.
418
419 This enables the driver_rt information, used with of-platdata when
420 of-platdata-inst is not used. It allows finding devices by their
421 driver data.
422
Simon Glass240d5f62021-02-03 06:01:13 -0700423endif
424
Simon Glass7c4ba162021-08-07 07:24:02 -0600425config TPL_OF_REAL
426 bool
427 help
428 Indicates that a real devicetree is available which can be accessed
429 at runtime. This means that dev_read_...() functions can be used to
430 read data from the devicetree for each device. This is true if
431 TPL_OF_CONTROL is enabled and not TPL_OF_PLATDATA
432
Philipp Tomsich2341dc62017-06-29 11:11:21 +0200433config TPL_OF_PLATDATA
434 bool "Generate platform data for use in TPL"
435 depends on TPL_OF_CONTROL
Masahiro Yamada87247af2017-10-17 13:42:44 +0900436 select DTOC
Simon Glass8beeb282021-03-15 17:25:36 +1300437 select TPL_OF_PLATDATA_DRIVER_RT if !TPL_OF_PLATDATA_INST
Philipp Tomsich2341dc62017-06-29 11:11:21 +0200438 help
439 For very constrained SPL environments the overhead of decoding
440 device tree nodes and converting their contents into platform data
441 is too large. This overhead includes libfdt code as well as the
442 device tree contents itself. The latter is fairly compact, but the
443 former can add 3KB or more to a Thumb 2 Image.
444
445 This option enables generation of platform data from the device
Simon Glass1d8364a2020-12-28 20:34:54 -0700446 tree as C code. This code creates devices using U_BOOT_DRVINFO()
Philipp Tomsich2341dc62017-06-29 11:11:21 +0200447 declarations. The benefit is that it allows driver code to access
448 the platform data directly in C structures, avoidin the libfdt
449 overhead.
450
451 This option works by generating C structure declarations for each
Simon Glass1d8364a2020-12-28 20:34:54 -0700452 compatible string, then adding platform data and U_BOOT_DRVINFO
Simon Goldschmidt49ce8ca2019-01-16 20:40:18 +0100453 declarations for each node. See of-plat.txt for more information.
Philipp Tomsich2341dc62017-06-29 11:11:21 +0200454
Simon Glass240d5f62021-02-03 06:01:13 -0700455if TPL_OF_PLATDATA
456
Simon Glass36b15e22020-10-03 11:31:35 -0600457config TPL_OF_PLATDATA_PARENT
458 bool "Support parent information in devices"
Simon Glass36b15e22020-10-03 11:31:35 -0600459 default y
460 help
461 Generally it is useful to be able to access the parent of a device
462 with of-platdata. To save space this can be disabled, but in that
463 case dev_get_parent() will always return NULL;
464
Simon Glass240d5f62021-02-03 06:01:13 -0700465config TPL_OF_PLATDATA_INST
466 bool "Declare devices at build time"
467
468 help
469 Declare devices as udevice instances so that they do not need to be
470 bound when U-Boot starts. This can save time and code space.
471
Simon Glass47fd4a22021-03-15 17:25:15 +1300472config TPL_OF_PLATDATA_NO_BIND
473 bool "Don't allow run-time binding of devices"
474 depends on TPL_OF_PLATDATA_INST
475 default y
476 help
477 This removes the ability to bind devices at run time, thus saving
478 some code space in U-Boot. This can be disabled if binding is needed,
479 at the code of some code size increase.
480
Simon Glass5b21b342021-03-15 17:25:35 +1300481config TPL_OF_PLATDATA_RT
482 bool "Use a separate struct for device runtime data"
483 depends on TPL_OF_PLATDATA_INST
484 default y
485 help
486 For systems running TPL from read-only memory it is convenient to
487 separate out the runtime information, so that the devices don't need
488 to be copied before being used. This moves the read-write parts of
489 struct udevice (at present just the flags) into a separate struct,
490 which is allocated at runtime.
491
Simon Glass8beeb282021-03-15 17:25:36 +1300492config TPL_OF_PLATDATA_DRIVER_RT
493 bool
494 help
495 Use a separate struct for driver runtime data.
496
497 This enables the driver_rt information, used with of-platdata when
498 of-platdata-inst is not used. It allows finding devices by their
499 driver data.
500
Simon Glass240d5f62021-02-03 06:01:13 -0700501endif
502
Masahiro Yamada9fadbc82014-09-22 19:59:05 +0900503endmenu