Blame view

dts/Kconfig 13.3 KB
783e6a72b   Masahiro Yamada   kconfig: move CON...
1
2
3
  #
  # Device Tree Control
  #
783e6a72b   Masahiro Yamada   kconfig: move CON...
4
5
6
  
  config SUPPORT_OF_CONTROL
  	bool
36dd5f1b8   Tom Rini   dtc: Switch to bu...
7
8
  config DTC
  	bool
d6a0c78a4   Masahiro Yamada   pylibfdt: compile...
9
10
11
12
13
14
15
16
17
18
  config PYLIBFDT
  	bool
  
  config DTOC
  	bool
  	select PYLIBFDT
  
  config BINMAN
  	bool
  	select DTOC
783e6a72b   Masahiro Yamada   kconfig: move CON...
19
  menu "Device Tree Control"
783e6a72b   Masahiro Yamada   kconfig: move CON...
20
21
22
23
  	depends on SUPPORT_OF_CONTROL
  
  config OF_CONTROL
  	bool "Run-time configuration via Device Tree"
36dd5f1b8   Tom Rini   dtc: Switch to bu...
24
  	select DTC
327bb3bc1   Sean Anderson   Add dependencies ...
25
  	select OF_LIBFDT if !OF_PLATDATA
783e6a72b   Masahiro Yamada   kconfig: move CON...
26
27
28
  	help
  	  This feature provides for run-time configuration of U-Boot
  	  via a flattened device tree.
2a792753d   mario.six@gdsys.cc   dm: Add callback ...
29
30
31
32
33
34
35
36
37
  config OF_BOARD_FIXUP
  	bool "Board-specific manipulation of Device Tree"
  	help
  	  In certain circumstances it is necessary to be able to modify
  	  U-Boot's device tree (e.g. to delete device from it). This option
  	  make the Device Tree writeable and provides a board-specific
  	  "board_fix_fdt" callback (called during pre-relocation time), which
  	  enables the board initialization to modifiy the Device Tree. The
  	  modified copy is subsequently used by U-Boot after relocation.
dffb86e46   Masahiro Yamada   of: flip CONFIG_S...
38
39
40
  config SPL_OF_CONTROL
  	bool "Enable run-time configuration via Device Tree in SPL"
  	depends on SPL && OF_CONTROL
327bb3bc1   Sean Anderson   Add dependencies ...
41
  	select SPL_OF_LIBFDT if !SPL_OF_PLATDATA
2860f03b9   Simon Glass   fdt: Add an optio...
42
43
  	help
  	  Some boards use device tree in U-Boot but only have 4KB of SRAM
c9acae339   Walter Lozano   dts: Kconfig: Fix...
44
  	  which is not enough to support device tree. Disable this option to
2860f03b9   Simon Glass   fdt: Add an optio...
45
  	  allow such boards to be supported by U-Boot SPL.
f291ce129   Philipp Tomsich   spl: dm: Kconfig:...
46
47
48
  config TPL_OF_CONTROL
  	bool "Enable run-time configuration via Device Tree in TPL"
  	depends on TPL && OF_CONTROL
327bb3bc1   Sean Anderson   Add dependencies ...
49
  	select TPL_OF_LIBFDT if !TPL_OF_PLATDATA
f291ce129   Philipp Tomsich   spl: dm: Kconfig:...
50
51
52
53
  	help
  	  Some boards use device tree in U-Boot but only have 4KB of SRAM
  	  which is not enough to support device tree. Enable this option to
  	  allow such boards to be supported by U-Boot TPL.
5e060d8bc   Simon Glass   dm: core: Add liv...
54
55
56
57
58
59
  config OF_LIVE
  	bool "Enable use of a live tree"
  	depends on OF_CONTROL
  	help
  	  Normally U-Boot uses a flat device tree which saves space and
  	  avoids the need to unpack the tree before use. However a flat
4adc6605a   Michal Simek   dts: Fix typo in ...
60
  	  tree does not support modification from within U-Boot since it
5e060d8bc   Simon Glass   dm: core: Add liv...
61
62
63
  	  can invalidate driver-model device tree offsets. This option
  	  enables a live tree which is available after relocation,
  	  and can be adjusted as needed.
783e6a72b   Masahiro Yamada   kconfig: move CON...
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  choice
  	prompt "Provider of DTB for DT control"
  	depends on OF_CONTROL
  
  config OF_SEPARATE
  	bool "Separate DTB for DT control"
  	depends on !SANDBOX
  	help
  	  If this option is enabled, the device tree will be built and
  	  placed as a separate u-boot.dtb file alongside the U-Boot image.
  
  config OF_EMBED
  	bool "Embedded DTB for DT control"
  	help
  	  If this option is enabled, the device tree will be picked up and
3d3f60cb7   Simon Glass   dts: Add a commen...
79
80
81
  	  built into the U-Boot image. This is suitable for local debugging
  	  and development only and is not recommended for production devices.
  	  Boards in the mainline U-Boot tree should not use it.
783e6a72b   Masahiro Yamada   kconfig: move CON...
82

82f766d1d   Alex Deymo   Allow boards to i...
83
84
85
86
87
88
89
  config OF_BOARD
  	bool "Provided by the board at runtime"
  	depends on !SANDBOX
  	help
  	  If this option is enabled, the device tree will be provided by
  	  the board at runtime if the board supports it, instead of being
  	  bundled with the image.
783e6a72b   Masahiro Yamada   kconfig: move CON...
90
91
92
93
94
95
96
  config OF_HOSTFILE
  	bool "Host filed DTB for DT control"
  	depends on SANDBOX
  	help
  	  If this option is enabled, DTB will be read from a file on startup.
  	  This is only useful for Sandbox.  Use the -d flag to U-Boot to
  	  specify the file to read.
894c3ad27   Thomas Fitzsimmons   board: arm: Add s...
97
98
99
100
101
102
  config OF_PRIOR_STAGE
  	bool "Prior stage bootloader DTB for DT control"
  	help
  	  If this option is enabled, the device tree used for DT
  	  control will be read from a device tree binary, at a memory
  	  location passed to U-Boot by the prior stage bootloader.
783e6a72b   Masahiro Yamada   kconfig: move CON...
103
  endchoice
f1ef2b623   Masahiro Yamada   kconfig: move CON...
104
105
  config DEFAULT_DEVICE_TREE
  	string "Default Device Tree for DT control"
70d41093c   Simon Glass   fdt: Adjust DEFAU...
106
  	depends on OF_CONTROL
f1ef2b623   Masahiro Yamada   kconfig: move CON...
107
108
  	help
  	  This option specifies the default Device Tree used for DT control.
5699ea6d0   Robert P. J. Day   Correct two non-f...
109
  	  It can be overridden from the command line:
f1ef2b623   Masahiro Yamada   kconfig: move CON...
110
  	  $ make DEVICE_TREE=<device-tree-name>
cdf172461   Simon Glass   spl: Add a way to...
111
112
  config OF_LIST
  	string "List of device tree files to include for DT control"
11955590a   Jean-Jacques Hiblot   dts: renamed FIT_...
113
  	depends on SPL_LOAD_FIT || MULTI_DTB_FIT
c409bd015   Michal Simek   spl: Setup defaul...
114
  	default DEFAULT_DEVICE_TREE
cdf172461   Simon Glass   spl: Add a way to...
115
116
  	help
  	  This option specifies a list of device tree files to use for DT
d97974099   Cooper Jr., Franklin   dts: Allow OF_LIS...
117
118
119
120
121
  	  control. These will be packaged into a FIT. At run-time, U-boot
  	  or SPL will select the correct DT to use by examining the
  	  hardware (e.g. reading a board ID value). This is a list of
  	  device tree files (without the directory or .dtb suffix)
  	  separated by <space>.
cdf172461   Simon Glass   spl: Add a way to...
122

557bc97fe   Jean-Jacques Hiblot   dts: Add support ...
123
124
125
126
127
128
129
  config OF_OVERLAY_LIST
  	string "List of device tree overlays to include for DT control"
  	depends on SPL_LOAD_FIT_APPLY_OVERLAY
  	help
  	  This option specifies a list of device tree overlays to use for DT
  	  control. This option can then be used by a FIT generator to include
  	  the overlays in the FIT image.
95f4bbd58   Marek Vasut   lib: fdt: Allow L...
130
  choice
574e38618   Baruch Siach   dts: fix MULTI_DT...
131
  	prompt "OF LIST compression"
95f4bbd58   Marek Vasut   lib: fdt: Allow L...
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
  	depends on MULTI_DTB_FIT
  	default MULTI_DTB_FIT_NO_COMPRESSION
  
  config MULTI_DTB_FIT_LZO
  	bool "LZO"
  	depends on SYS_MALLOC_F
  	select LZO
  	help
  	  Compress the FIT image containing the DTBs available for the SPL
  	  using LZO compression. (requires lzop on host).
  
  config MULTI_DTB_FIT_GZIP
  	bool "GZIP"
  	depends on SYS_MALLOC_F
  	select GZIP
  	help
  	  Compress the FIT image containing the DTBs available for the SPL
  	  using GZIP compression. (requires gzip on host)
  
  config MULTI_DTB_FIT_NO_COMPRESSION
  	bool "No compression"
  	help
  	  Do not compress the FIT image containing the DTBs available for the SPL.
  	  Use this options only if LZO is not available and the DTBs are very small.
  endchoice
  
  choice
  	prompt "Location of uncompressed DTBs"
  	depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
  	default MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
  
  config MULTI_DTB_FIT_DYN_ALLOC
  	bool "Dynamically allocate the memory"
  	depends on SYS_MALLOC_F
  
  config MULTI_DTB_FIT_USER_DEFINED_AREA
  	bool "User-defined location"
  endchoice
  
  config MULTI_DTB_FIT_UNCOMPRESS_SZ
  	hex "Size of memory reserved to uncompress the DTBs"
  	depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
  	default 0x8000
  	help
  	   This is the size of this area where the DTBs are uncompressed.
  	   If this area is dynamically allocated, make sure that
  	   SYS_MALLOC_F_LEN is big enough to contain it.
  
  config MULTI_DTB_FIT_USER_DEF_ADDR
  	hex "Address of memory where dtbs are uncompressed"
  	depends on MULTI_DTB_FIT_USER_DEFINED_AREA
  	help
  	   the FIT image containing the DTBs is uncompressed in an area defined
  	   at compilation time. This is the address of this area. It must be
  	   aligned on 2-byte boundary.
11955590a   Jean-Jacques Hiblot   dts: renamed FIT_...
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
  
  config DTB_RESELECT
  	bool "Support swapping dtbs at a later point in boot"
  	depends on MULTI_DTB_FIT
  	help
  	  It is possible during initial boot you may need to use a generic
  	  dtb until you can fully determine the board your running on. This
  	  config allows boards to implement a function at a later point
  	  during boot to switch to the "correct" dtb.
  
  config MULTI_DTB_FIT
  	bool "Support embedding several DTBs in a FIT image for u-boot"
  	help
  	  This option provides hooks to allow U-boot to parse an
  	  appended FIT image and enable board specific code to then select
  	  the correct DTB to be used. Use this if you need to support
  	  multiple DTBs but don't use the SPL.
2f57c9510   Jean-Jacques Hiblot   spl: dm: Make it ...
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
  
  config SPL_MULTI_DTB_FIT
  	depends on SPL_LOAD_FIT && SPL_OF_CONTROL && !SPL_OF_PLATDATA
  	bool "Support embedding several DTBs in a FIT image for the SPL"
  	help
  	  This option provides the SPL with the ability to select its own
  	  DTB at runtime from an appended FIT image containing several DTBs.
  	  This allows using the same SPL binary on multiple platforms.
  	  The primary purpose is to handle different versions of
  	  the same platform without tweaking the platform code if the
  	  differences can be expressed in the DTBs (common examples are: bus
  	  capabilities, pad configurations).
  
  config SPL_OF_LIST
  	string "List of device tree files to include for DT control in SPL"
  	depends on SPL_MULTI_DTB_FIT
  	default OF_LIST
  	help
  	  This option specifies a list of device tree files to use for DT
  	  control in the SPL. These will be packaged into a FIT. At run-time,
  	  the SPL will select the correct DT to use by examining the
  	  hardware (e.g. reading a board ID value). This is a list of
  	  device tree files (without the directory or .dtb suffix)
  	  separated by <space>.
  
  choice
  	prompt "SPL OF LIST compression"
  	depends on SPL_MULTI_DTB_FIT
  	default SPL_MULTI_DTB_FIT_LZO
  
  config SPL_MULTI_DTB_FIT_LZO
  	bool "LZO"
  	depends on SYS_MALLOC_F
  	select SPL_LZO
  	help
  	  Compress the FIT image containing the DTBs available for the SPL
  	  using LZO compression. (requires lzop on host).
  
  config SPL_MULTI_DTB_FIT_GZIP
  	bool "GZIP"
  	depends on SYS_MALLOC_F
  	select SPL_GZIP
  	help
  	  Compress the FIT image containing the DTBs available for the SPL
  	  using GZIP compression. (requires gzip on host)
  
  config SPL_MULTI_DTB_FIT_NO_COMPRESSION
  	bool "No compression"
  	help
  	  Do not compress the FIT image containing the DTBs available for the SPL.
  	  Use this options only if LZO is not available and the DTBs are very small.
  endchoice
  
  choice
b8448051d   Michal Simek   Kconfig: Remove t...
258
  	prompt "Location of uncompressed DTBs"
2f57c9510   Jean-Jacques Hiblot   spl: dm: Make it ...
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
  	depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
  	default SPL_MULTI_DTB_FIT_DYN_ALLOC if SYS_MALLOC_F
  
  config SPL_MULTI_DTB_FIT_DYN_ALLOC
  	bool "Dynamically allocate the memory"
  	depends on SYS_MALLOC_F
  
  config SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
  	bool "User-defined location"
  endchoice
  
  config SPL_MULTI_DTB_FIT_UNCOMPRESS_SZ
  	hex "Size of memory reserved to uncompress the DTBs"
  	depends on (SPL_MULTI_DTB_FIT_GZIP || SPL_MULTI_DTB_FIT_LZO)
  	default 0x8000
  	help
  	   This is the size of this area where the DTBs are uncompressed.
  	   If this area is dynamically allocated, make sure that
  	   SPL_SYS_MALLOC_F_LEN is big enough to contain it.
  
  config SPL_MULTI_DTB_FIT_USER_DEF_ADDR
  	hex "Address of memory where dtbs are uncompressed"
  	depends on SPL_MULTI_DTB_FIT_USER_DEFINED_AREA
  	help
  	   the FIT image containing the DTBs is uncompressed in an area defined
  	   at compilation time. This is the address of this area. It must be
  	   aligned on 2-byte boundary.
fa78e0a37   Simon Glass   dm: Reduce SPL de...
286
287
  config OF_SPL_REMOVE_PROPS
  	string "List of device tree properties to drop for SPL"
897705ec3   Masahiro Yamada   dts: fix dependen...
288
  	depends on SPL_OF_CONTROL
f00d89fd5   Michal Simek   dm: Also remove i...
289
290
291
292
  	default "interrupt-parent interrupts" if SPL_PINCTRL && SPL_CLK
  	default "clocks clock-names interrupt-parent interrupts" if SPL_PINCTRL
  	default "pinctrl-0 pinctrl-names interrupt-parent interrupts" if SPL_CLK
  	default "pinctrl-0 pinctrl-names clocks clock-names interrupt-parent interrupts"
fa78e0a37   Simon Glass   dm: Reduce SPL de...
293
294
295
296
297
298
299
  	help
  	  Since SPL normally runs in a reduced memory space, the device tree
  	  is cut down to only what is needed to load and start U-Boot. Only
  	  nodes marked with the property "u-boot,dm-pre-reloc" will be
  	  included. In addition, some properties are not used by U-Boot and
  	  can be discarded. This option defines the list of properties to
  	  discard.
43b6e38b2   Anatolij Gustschin   dts: add property...
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
  config OF_DTB_PROPS_REMOVE
  	bool "Enable removal of device tree properties"
  	depends on OF_CONTROL
  	help
  	  Some boards have restricted amount of storage for U-Boot image.
  	  If the generated binary doesn't fit into available image storage,
  	  the built-in device tree could probably be cut down by removing
  	  some not required device tree properties to reduce the image size.
  	  Enable this option and define the properties to be removed in the
  	  CONFIG_OF_REMOVE_PROPS list. Do not enable this option if you must
  	  pass the built-in DTB directly to the kernel!
  
  config OF_REMOVE_PROPS
  	string "List of device tree properties to drop"
  	depends on OF_DTB_PROPS_REMOVE
  	default "interrupt-parent interrupts" if PINCTRL
  	help
  	  Some properties are not used by U-Boot and can be discarded.
  	  This option defines the list of properties to discard.
2789ddb9d   Simon Glass   dm: Add an option...
319
320
321
  config SPL_OF_PLATDATA
  	bool "Generate platform data for use in SPL"
  	depends on SPL_OF_CONTROL
d6a0c78a4   Masahiro Yamada   pylibfdt: compile...
322
  	select DTOC
2789ddb9d   Simon Glass   dm: Add an option...
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
  	help
  	  For very constrained SPL environments the overhead of decoding
  	  device tree nodes and converting their contents into platform data
  	  is too large. This overhead includes libfdt code as well as the
  	  device tree contents itself. The latter is fairly compact, but the
  	  former can add 3KB or more to a Thumb 2 Image.
  
  	  This option enables generation of platform data from the device
  	  tree as C code. This code creates devices using U_BOOT_DEVICE()
  	  declarations. The benefit is that it allows driver code to access
  	  the platform data directly in C structures, avoidin the libfdt
  	  overhead.
  
  	  This option works by generating C structure declarations for each
  	  compatible string, then adding platform data and U_BOOT_DEVICE
3600b4611   Simon Goldschmidt   of-platdata: impr...
338
  	  declarations for each node. See of-plat.txt for more information.
2789ddb9d   Simon Glass   dm: Add an option...
339

f291ce129   Philipp Tomsich   spl: dm: Kconfig:...
340
341
342
  config TPL_OF_PLATDATA
  	bool "Generate platform data for use in TPL"
  	depends on TPL_OF_CONTROL
d6a0c78a4   Masahiro Yamada   pylibfdt: compile...
343
  	select DTOC
f291ce129   Philipp Tomsich   spl: dm: Kconfig:...
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
  	help
  	  For very constrained SPL environments the overhead of decoding
  	  device tree nodes and converting their contents into platform data
  	  is too large. This overhead includes libfdt code as well as the
  	  device tree contents itself. The latter is fairly compact, but the
  	  former can add 3KB or more to a Thumb 2 Image.
  
  	  This option enables generation of platform data from the device
  	  tree as C code. This code creates devices using U_BOOT_DEVICE()
  	  declarations. The benefit is that it allows driver code to access
  	  the platform data directly in C structures, avoidin the libfdt
  	  overhead.
  
  	  This option works by generating C structure declarations for each
  	  compatible string, then adding platform data and U_BOOT_DEVICE
3600b4611   Simon Goldschmidt   of-platdata: impr...
359
  	  declarations for each node. See of-plat.txt for more information.
f291ce129   Philipp Tomsich   spl: dm: Kconfig:...
360

783e6a72b   Masahiro Yamada   kconfig: move CON...
361
  endmenu
1f6049e25   Tom Rini   tools/mkimage: Ma...
362
363
364
365
366
367
368
369
370
  
  config MKIMAGE_DTC_PATH
  	string "Path to dtc binary for use within mkimage"
  	default "dtc"
  	help
  	  The mkimage host tool will, in order to generate FIT images make
  	  calls to the dtc application in order to create the output.  In
  	  some cases the system dtc may not support all required features
  	  and the path to a different version should be given here.