From d63f7130cea19c5f356ba651f0cbd37a964c1dc6 Mon Sep 17 00:00:00 2001 From: Hannes Schmelzer Date: Fri, 6 Jul 2018 15:41:25 +0200 Subject: [PATCH] board/BuR/common: refactor ft_board_setup(...) 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 --- board/BuR/common/common.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/board/BuR/common/common.c b/board/BuR/common/common.c index 38da36d50b..01e30783e2 100644 --- a/board/BuR/common/common.c +++ b/board/BuR/common/common.c @@ -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; - } - 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: 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) { + printf("%s: no 'bl-version' prop in fdt!\n", __func__); + return 0; + } return 0; }