From 06f94461a9f4769473651a34d7625f895ebe4996 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 1 Oct 2018 12:22:18 -0600 Subject: [PATCH] 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 --- doc/driver-model/README.txt | 4 +++- drivers/core/ofnode.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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")) -- 2.39.5