fdt: Create a new OF_REAL Kconfig

The condition to indicate whether there is a runtime devicetree available
is OF_CONTROL && !OF_PLATDATA. This is a bit unweidly and is repeated in
a lot of places.

Add a new OF_REAL Kconfig which provides this information directly.

Note: This is similar in effect to LIBFDT. We might consider dropping
LIBFDT and using this instead, but this is left for now as we also have
OF_LIBFDT_OVERLAY which it would not make sense to change.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-08-07 07:24:02 -06:00
parent 7de8bd03c3
commit eaad01a3d0

View file

@ -48,6 +48,14 @@ config OF_CONTROL
This feature provides for run-time configuration of U-Boot This feature provides for run-time configuration of U-Boot
via a flattened device tree. via a flattened device tree.
config OF_REAL
def_bool y
help
Indicates that a real devicetree is available which can be accessed
at runtime. This means that dev_read_...() functions can be used to
read data from the devicetree for each device. This is true if
OF_CONTROL is enabled in U-Boot proper.
config OF_BOARD_FIXUP config OF_BOARD_FIXUP
bool "Board-specific manipulation of Device Tree" bool "Board-specific manipulation of Device Tree"
help help
@ -62,6 +70,7 @@ config SPL_OF_CONTROL
bool "Enable run-time configuration via Device Tree in SPL" bool "Enable run-time configuration via Device Tree in SPL"
depends on SPL && OF_CONTROL depends on SPL && OF_CONTROL
select SPL_OF_LIBFDT if !SPL_OF_PLATDATA select SPL_OF_LIBFDT if !SPL_OF_PLATDATA
select SPL_OF_REAL if !SPL_OF_PLATDATA
help help
Some boards use device tree in U-Boot but only have 4KB of SRAM Some boards use device tree in U-Boot but only have 4KB of SRAM
which is not enough to support device tree. Disable this option to which is not enough to support device tree. Disable this option to
@ -71,6 +80,7 @@ config TPL_OF_CONTROL
bool "Enable run-time configuration via Device Tree in TPL" bool "Enable run-time configuration via Device Tree in TPL"
depends on TPL && OF_CONTROL depends on TPL && OF_CONTROL
select TPL_OF_LIBFDT if !TPL_OF_PLATDATA select TPL_OF_LIBFDT if !TPL_OF_PLATDATA
select TPL_OF_REAL if !TPL_OF_PLATDATA
help help
Some boards use device tree in U-Boot but only have 4KB of SRAM 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 which is not enough to support device tree. Enable this option to
@ -236,7 +246,7 @@ config MULTI_DTB_FIT
config SPL_MULTI_DTB_FIT config SPL_MULTI_DTB_FIT
depends on SPL_LOAD_FIT && SPL_OF_CONTROL && !SPL_OF_PLATDATA depends on SPL_LOAD_FIT && SPL_OF_REAL
bool "Support embedding several DTBs in a FIT image for the SPL" bool "Support embedding several DTBs in a FIT image for the SPL"
help help
This option provides the SPL with the ability to select its own This option provides the SPL with the ability to select its own
@ -374,6 +384,14 @@ config SPL_OF_PLATDATA
compatible string, then adding platform data and U_BOOT_DRVINFO compatible string, then adding platform data and U_BOOT_DRVINFO
declarations for each node. See of-plat.txt for more information. declarations for each node. See of-plat.txt for more information.
config SPL_OF_REAL
bool
help
Indicates that a real devicetree is available which can be accessed
at runtime. This means that dev_read_...() functions can be used to
read data from the devicetree for each device. This is true if
SPL_OF_CONTROL is enabled and not SPL_OF_PLATDATA
if SPL_OF_PLATDATA if SPL_OF_PLATDATA
config SPL_OF_PLATDATA_PARENT config SPL_OF_PLATDATA_PARENT
@ -421,6 +439,14 @@ config SPL_OF_PLATDATA_DRIVER_RT
endif endif
config TPL_OF_REAL
bool
help
Indicates that a real devicetree is available which can be accessed
at runtime. This means that dev_read_...() functions can be used to
read data from the devicetree for each device. This is true if
TPL_OF_CONTROL is enabled and not TPL_OF_PLATDATA
config TPL_OF_PLATDATA config TPL_OF_PLATDATA
bool "Generate platform data for use in TPL" bool "Generate platform data for use in TPL"
depends on TPL_OF_CONTROL depends on TPL_OF_CONTROL