fdt: Show a runtime warning based on devicetree source
authorSimon Glass <sjg@chromium.org>
Fri, 17 Dec 2021 03:59:39 +0000 (20:59 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 23 Dec 2021 16:19:42 +0000 (11:19 -0500)
When running, if the devicetree failed to come from the expected source,
show a warning, e.g:

   U-Boot ...

   DRAM:  128 MiB
   Core:  42 devices, 11 uclasses, devicetree: separate
   Warning: Unexpected devicetree source (not from a prior stage)
   Warning: U-Boot may not function properly
   Flash: 64 MiB
   ...

These warnings should only appear if the board config has been changed, or
the prior stage is broken.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/board_r.c

index 99adff1..6d52066 100644 (file)
@@ -598,6 +598,12 @@ static int dm_announce(void)
                if (CONFIG_IS_ENABLED(OF_REAL))
                        printf(", devicetree: %s", fdtdec_get_srcname());
                printf("\n");
+               if (IS_ENABLED(CONFIG_OF_HAS_PRIOR_STAGE) &&
+                   (gd->fdt_src == FDTSRC_SEPARATE ||
+                    gd->fdt_src == FDTSRC_EMBED)) {
+                       printf("Warning: Unexpected devicetree source (not from a prior stage)");
+                       printf("Warning: U-Boot may not function properly\n");
+               }
        }
 
        return 0;