summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-10-01 12:22:18 -0600
committerSimon Glass <sjg@chromium.org>2018-10-09 04:40:27 -0600
commit06f94461a9f4769473651a34d7625f895ebe4996 (patch)
tree5a56c0ee6ef198df774dbcb74febbc6e73d1e6af
parenta15a7aa47be25580413a49f9e8f33ba02a46ede7 (diff)
downloadu-boot-06f94461a9f4769473651a34d7625f895ebe4996.tar.gz
fdt: Allow indicating a node is for U-Boot proper only
At present it is not possible to specify that a node should be used before relocation (in U-Boot proper) without it also ending up in SPL and TPL device trees. Add a new "u-boot,dm-pre-proper" boolean property for this. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--doc/driver-model/README.txt4
-rw-r--r--drivers/core/ofnode.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/doc/driver-model/README.txt b/doc/driver-model/README.txt
index 6085f927de..36541630a2 100644
--- a/doc/driver-model/README.txt
+++ b/doc/driver-model/README.txt
@@ -837,7 +837,9 @@ well, if device tree is enabled there.
It is possible to limit this to specific relocation steps, by using
the more specialized 'u-boot,dm-spl' and 'u-boot,dm-tpl' flags
-in the devicetree.
+in the device tree node. For U-Boot proper you can use 'u-boot,dm-pre-proper'
+which means that it will be processed (and a driver bound) in U-Boot proper
+prior to relocation, but will not be available in SPL or TPL.
Then post relocation we throw that away and re-init driver model again.
For drivers which require some sort of continuity between pre- and
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index fbc67516fc..b7b7ad3a62 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -699,6 +699,8 @@ bool ofnode_pre_reloc(ofnode node)
{
if (ofnode_read_bool(node, "u-boot,dm-pre-reloc"))
return true;
+ if (ofnode_read_bool(node, "u-boot,dm-pre-proper"))
+ return true;
#ifdef CONFIG_TPL_BUILD
if (ofnode_read_bool(node, "u-boot,dm-tpl"))