aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBin Meng2018-10-11 00:06:57 -0500
committerSimon Glass2018-11-14 11:16:27 -0600
commite601ab1bb69901420ba2c55d2f2d194a38739182 (patch)
tree7516a87dfe7fcb1bbb1b283bb61107274f44a5a9 /drivers
parent6fe8abcce740a67e81fb6115f54dba380bd2ff4d (diff)
downloadu-boot-e601ab1bb69901420ba2c55d2f2d194a38739182.tar.gz
u-boot-e601ab1bb69901420ba2c55d2f2d194a38739182.tar.xz
u-boot-e601ab1bb69901420ba2c55d2f2d194a38739182.zip
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')
-rw-r--r--drivers/core/util.c25
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 @@
4 */ 4 */
5 5
6#include <common.h> 6#include <common.h>
7#include <dm/ofnode.h>
7#include <dm/util.h> 8#include <dm/util.h>
8#include <linux/libfdt.h> 9#include <linux/libfdt.h>
9#include <vsprintf.h> 10#include <vsprintf.h>
@@ -53,3 +54,27 @@ bool dm_fdt_pre_reloc(const void *blob, int offset)
53 54
54 return false; 55 return false;
55} 56}
57
58bool dm_ofnode_pre_reloc(ofnode node)
59{
60 if (ofnode_read_bool(node, "u-boot,dm-pre-reloc"))
61 return true;
62
63#ifdef CONFIG_TPL_BUILD
64 if (ofnode_read_bool(node, "u-boot,dm-tpl"))
65 return true;
66#elif defined(CONFIG_SPL_BUILD)
67 if (ofnode_read_bool(node, "u-boot,dm-spl"))
68 return true;
69#else
70 /*
71 * In regular builds individual spl and tpl handling both
72 * count as handled pre-relocation for later second init.
73 */
74 if (ofnode_read_bool(node, "u-boot,dm-spl") ||
75 ofnode_read_bool(node, "u-boot,dm-tpl"))
76 return true;
77#endif
78
79 return false;
80}