diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2018-10-10 22:06:57 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2018-11-14 09:16:27 -0800 |
commit | e601ab1bb69901420ba2c55d2f2d194a38739182 (patch) | |
tree | 7516a87dfe7fcb1bbb1b283bb61107274f44a5a9 /drivers/core/util.c | |
parent | 6fe8abcce740a67e81fb6115f54dba380bd2ff4d (diff) | |
download | u-boot-e601ab1bb69901420ba2c55d2f2d194a38739182.tar.gz |
dm: util: Add a livetree equivalent API of dm_fdt_pre_reloc()
This adds a new API dm_ofnode_pre_reloc(), a livetree equivalent
API of dm_fdt_pre_reloc().
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/util.c')
-rw-r--r-- | drivers/core/util.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/core/util.c b/drivers/core/util.c index 451d4766d0..27a6848703 100644 --- a/drivers/core/util.c +++ b/drivers/core/util.c @@ -4,6 +4,7 @@ */ #include <common.h> +#include <dm/ofnode.h> #include <dm/util.h> #include <linux/libfdt.h> #include <vsprintf.h> @@ -53,3 +54,27 @@ bool dm_fdt_pre_reloc(const void *blob, int offset) return false; } + +bool dm_ofnode_pre_reloc(ofnode node) +{ + if (ofnode_read_bool(node, "u-boot,dm-pre-reloc")) + return true; + +#ifdef CONFIG_TPL_BUILD + if (ofnode_read_bool(node, "u-boot,dm-tpl")) + return true; +#elif defined(CONFIG_SPL_BUILD) + if (ofnode_read_bool(node, "u-boot,dm-spl")) + return true; +#else + /* + * In regular builds individual spl and tpl handling both + * count as handled pre-relocation for later second init. + */ + if (ofnode_read_bool(node, "u-boot,dm-spl") || + ofnode_read_bool(node, "u-boot,dm-tpl")) + return true; +#endif + + return false; +} |