[PATCH] sunxi: avoid double vendor prefix when CONFIG_OF_UPSTREAM is enabled

Bohdan Chubuk chbgdn at gmail.com
Sun Nov 23 21:43:46 CET 2025


When CONFIG_OF_UPSTREAM is enabled, the device tree name provided by SPL
already includes the vendor directory (e.g., "allwinner/board-name").

The existing logic in misc_init_r() unconditionally prepends "allwinner/"
for ARM64 builds, resulting in an incorrect path like
"allwinner/allwinner/board-name.dtb".

This patch modifies the logic to only prepend the vendor prefix if
CONFIG_OF_UPSTREAM is NOT enabled. This ensures compatibility with both
legacy builds and the new upstream devicetree structure.

Signed-off-by: Bohdan Chubuk <chbgdn at gmail.com>
---
 board/sunxi/board.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 2929bc17f08..c68b51d370d 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -834,7 +834,10 @@ int misc_init_r(void)
 	/* Set fdtfile to match the FIT configuration chosen in SPL. */
 	spl_dt_name = get_spl_dt_name();
 	if (spl_dt_name) {
-		char *prefix = IS_ENABLED(CONFIG_ARM64) ? "allwinner/" : "";
+		const char *prefix = "";
+
+		if (IS_ENABLED(CONFIG_ARM64) && !IS_ENABLED(CONFIG_OF_UPSTREAM))
+			prefix = "allwinner/";
 		char str[64];
 
 		snprintf(str, sizeof(str), "%s%s.dtb", prefix, spl_dt_name);
-- 
2.52.0



More information about the U-Boot mailing list