[PATCH 1/1] common: state: allow to overlay state backend

Pascal Vizeli pvizeli at syshack.ch
Sat Jun 2 15:39:04 PDT 2018


This allow to use overlay for state backends. I.e. on raspberry you need
use barebox with SDHCI (slow) and after linux boot it will use SDHOST driver.
But the problem now is, that the state is on SDHCI and dt-utils need it on
SDHOST. Actual it is not possible to overwrite this.

Signed-off-by: Pascal Vizeli <pvizeli at syshack.ch>
---
 common/state/state.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/common/state/state.c b/common/state/state.c
index 25d950211..e6259043f 100644
--- a/common/state/state.c
+++ b/common/state/state.c
@@ -494,8 +494,17 @@ static int of_state_fixup(struct device_node *root, void *ctx)
 	}
 
 	/* backend phandle */
-	backend_node = of_find_node_by_reproducible_name(root,
-						state->backend_reproducible_name);
+	if (node) {
+		ret = of_property_read_u32(node, "backend", &phandle);
+		if (ret)
+			goto out;
+
+		backend_node = of_find_node_by_phandle_from(phandle, root);
+	} else {
+		backend_node = of_find_node_by_reproducible_name(root,
+					state->backend_reproducible_name);
+	}
+
 	if (!backend_node) {
 		ret = -ENODEV;
 		goto out;
-- 
2.17.0




More information about the barebox mailing list