[PATCH 1/1] fdt: fix condition for devicetree from bloblist
Alexander Stein
alexander.stein at ew.tq-group.com
Mon Jun 1 10:26:30 CEST 2026
On boards without TPL, but SPL enabled, xpl_prev_phase() will return never
return PHASE_TPL. This the condition is always true. This is a problem
for system which use an SDRAM bloblist location and initialize the SDRAM
in SPL. Adjust the condition to take this config into account.
Signed-off-by: Alexander Stein <alexander.stein at ew.tq-group.com>
---
There is also another possibility for the check. I'm not sure which one
is better or preferred.
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1829,7 +1829,7 @@ int fdtdec_setup(void)
* not whether this phase creates one.
*/
if (CONFIG_IS_ENABLED(BLOBLIST) &&
- (xpl_prev_phase() != PHASE_TPL ||
+ (xpl_prev_phase() != PHASE_TPL &&
IS_ENABLED(CONFIG_TPL_BLOBLIST))) {
ret = bloblist_maybe_init();
if (!ret) {
lib/fdtdec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index c67b6e8c133..3f31f9c2aeb 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1829,8 +1829,8 @@ int fdtdec_setup(void)
* not whether this phase creates one.
*/
if (CONFIG_IS_ENABLED(BLOBLIST) &&
- (xpl_prev_phase() != PHASE_TPL ||
- IS_ENABLED(CONFIG_TPL_BLOBLIST))) {
+ !xpl_is_first_phase() &&
+ (IS_ENABLED(CONFIG_TPL_BLOBLIST) || IS_ENABLED(CONFIG_SPL_BLOBLIST))) {
ret = bloblist_maybe_init();
if (!ret) {
gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
--
2.43.0
More information about the U-Boot
mailing list