board/BuR/common: refactor ft_board_setup(...)
authorHannes Schmelzer <oe5hpm@oevsv.at>
Fri, 6 Jul 2018 13:41:25 +0000 (15:41 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 19 Jul 2018 21:03:34 +0000 (17:03 -0400)
On other OS, not one provided by B&R, it is not guaranteed that there
are factory-settings within a devicetree. So we must not treat the
absence of them as error.
Further we've the fact that on different version of the device-tree
files there are different namings of the factory-settings, we consider
this with searching for an alternative name.

changing things as following:

- don't treat as error if the bootloader version cannot written into
devicetree.

- since the naming of the factory-settings are different in different
versions of the provided device-tree we search for the alternate name
"/fset"

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
board/BuR/common/common.c

index 38da36d50b5752b6fd92ce161e0c534e63fa586a..01e30783e2ccdec3691a06ed146586cead3b486f 100644 (file)
@@ -252,15 +252,20 @@ int ft_board_setup(void *blob, bd_t *bd)
 
        nodeoffset = fdt_path_offset(blob, "/factory-settings");
        if (nodeoffset < 0) {
-               puts("set bootloader version 'factory-settings' not in dtb!\n");
-               return -1;
+               printf("%s: cannot find /factory-settings, trying /fset\n",
+                      __func__);
+               nodeoffset = fdt_path_offset(blob, "/fset");
+               if (nodeoffset < 0) {
+                       printf("%s: cannot find /fset.\n", __func__);
+                       return 0;
+               }
        }
+
        if (fdt_setprop(blob, nodeoffset, "bl-version",
                        PLAIN_VERSION, strlen(PLAIN_VERSION)) != 0) {
-               puts("set bootloader version 'bl-version' prop. not in dtb!\n");
-               return -1;
+               printf("%s: no 'bl-version' prop in fdt!\n", __func__);
+               return 0;
        }
-
        return 0;
 }