[U-Boot] [PATCH v7 0/2] mpc8313: ids8313 board updates

- add CONFIG_SYS_GENERIC_BOARD to the ids8313 board, therefore fdtdec_get_int() is moved out of lib/fdtdec.c as lib/fdtdec.c is only compiled if CONFIG_OF_CONTROL is defined, but defining this for the ids8313 board leads in conjunction with CONFIG_SYS_GENERIC_BOARD in booting error:
No valid FDT found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
So move the common used function fdtdec_get_int() out of lib/fdtdec.c into lib/fdtdec_common.c
Cc: Simon Glass sjg@chromium.org Cc: Kim Phillips kim.phillips@freescale.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Michael Conrad Michael.Conrad@ids.de
Heiko Schocher (2): lib, fdt: move fdtdec_get_int() out of lib/fdtdec.c mpc8313: add CONFIG_SYS_GENERIC_BOARD to ids8313 board
include/configs/ids8313.h | 3 ++- lib/Makefile | 2 ++ lib/fdtdec.c | 36 ------------------------------------ lib/fdtdec_common.c | 38 ++++++++++++++++++++++++++++++++++++++ tools/Makefile | 1 + 5 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 lib/fdtdec_common.c

move fdtdec_get_int() out of lib/fdtdec.c into lib/fdtdec_common.c as this function is also used, if CONFIG_OF_CONTROL is not used. Poped up on the ids8313 board using signed FIT images, and activating CONFIG_SYS_GENERIC_BOARD. Without this patch it shows on boot:
No valid FDT found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
With this patch, it boots again with CONFIG_SYS_GENERIC_BOARD enabled.
Signed-off-by: Heiko Schocher hs@denx.de Acked-by: Simon Glass sjg@chromium.org Cc: Tom Rini trini@ti.com
--- - changes for v2: - remove fdtdec_get_int() in lib/fdtdec.c - only one fdtdec_get_int() implementation Tested on the ids8313 board (on host and target side) - changes for v3: use fdt_getprop() instead fdt_getprop_w() so we avoid a cast as Simon suggested. - changes for v4: none - changes for v5: - keep debug for non host side as Simon Glass suggested. - add Acked-by from Simon Glass - changes for v6 - rebased against commit d8a97f934c64a7ba6f11da5e4cc7f3be57fcb82d - compile fdtdec_common.c only if CONFIG_OF_CONTROL or CONFIG_FIT is enabled, to prevent link errors when using old compilers on sparc, blackfin and nds32 architectures, as Tom Rini suggested - changes for v7: - do not use "#ifdef" in lib/Makefile, as duplicates get filtered out. - rebased against 39b6d07fd7e692736cdb05a000b1c84ab43de4fb
lib/Makefile | 2 ++ lib/fdtdec.c | 36 ------------------------------------ lib/fdtdec_common.c | 38 ++++++++++++++++++++++++++++++++++++++ tools/Makefile | 1 + 4 files changed, 41 insertions(+), 36 deletions(-) create mode 100644 lib/fdtdec_common.c
diff --git a/lib/Makefile b/lib/Makefile index 377ab13..68210a5 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -23,6 +23,8 @@ obj-$(CONFIG_USB_TTY) += circbuf.o obj-y += crc7.o obj-y += crc8.o obj-y += crc16.o +obj-$(CONFIG_FIT) += fdtdec_common.o +obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o obj-$(CONFIG_OF_CONTROL) += fdtdec.o obj-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o obj-$(CONFIG_GZIP) += gunzip.o diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 13d3d2f..aaa6620 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -111,24 +111,6 @@ fdt_addr_t fdtdec_get_addr(const void *blob, int node, return fdtdec_get_addr_size(blob, node, prop_name, NULL); }
-s32 fdtdec_get_int(const void *blob, int node, const char *prop_name, - s32 default_val) -{ - const s32 *cell; - int len; - - debug("%s: %s: ", __func__, prop_name); - cell = fdt_getprop(blob, node, prop_name, &len); - if (cell && len >= sizeof(s32)) { - s32 val = fdt32_to_cpu(cell[0]); - - debug("%#x (%d)\n", val, val); - return val; - } - debug("(not found)\n"); - return default_val; -} - uint64_t fdtdec_get_uint64(const void *blob, int node, const char *prop_name, uint64_t default_val) { @@ -648,22 +630,4 @@ int fdtdec_read_fmap_entry(const void *blob, int node, const char *name,
return 0; } -#else -#include "libfdt.h" -#include "fdt_support.h" - -int fdtdec_get_int(const void *blob, int node, const char *prop_name, - int default_val) -{ - const int *cell; - int len; - - cell = fdt_getprop_w((void *)blob, node, prop_name, &len); - if (cell && len >= sizeof(int)) { - int val = fdt32_to_cpu(cell[0]); - - return val; - } - return default_val; -} #endif diff --git a/lib/fdtdec_common.c b/lib/fdtdec_common.c new file mode 100644 index 0000000..757931a --- /dev/null +++ b/lib/fdtdec_common.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014 + * Heiko Schocher, DENX Software Engineering, hs@denx.de. + * + * Based on lib/fdtdec.c: + * Copyright (c) 2011 The Chromium OS Authors. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef USE_HOSTCC +#include <common.h> +#include <libfdt.h> +#include <fdtdec.h> +#else +#include "libfdt.h" +#include "fdt_support.h" + +#define debug(...) +#endif + +int fdtdec_get_int(const void *blob, int node, const char *prop_name, + int default_val) +{ + const int *cell; + int len; + + debug("%s: %s: ", __func__, prop_name); + cell = fdt_getprop(blob, node, prop_name, &len); + if (cell && len >= sizeof(int)) { + int val = fdt32_to_cpu(cell[0]); + + debug("%#x (%d)\n", val, val); + return val; + } + debug("(not found)\n"); + return default_val; +} diff --git a/tools/Makefile b/tools/Makefile index 3a1180f..61b2048 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -69,6 +69,7 @@ dumpimage-mkimage-objs := aisimage.o \ common/bootm.o \ lib/crc32.o \ default_image.o \ + lib/fdtdec_common.o \ lib/fdtdec.o \ fit_common.o \ fit_image.o \

On Sun, Jun 22, 2014 at 06:33:29AM +0200, Heiko Schocher wrote:
move fdtdec_get_int() out of lib/fdtdec.c into lib/fdtdec_common.c as this function is also used, if CONFIG_OF_CONTROL is not used. Poped up on the ids8313 board using signed FIT images, and activating CONFIG_SYS_GENERIC_BOARD. Without this patch it shows on boot:
No valid FDT found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
With this patch, it boots again with CONFIG_SYS_GENERIC_BOARD enabled.
Signed-off-by: Heiko Schocher hs@denx.de Acked-by: Simon Glass sjg@chromium.org Cc: Tom Rini trini@ti.com
Applied to u-boot/master, thanks!

- add CONFIG_SYS_GENERIC_BOARD - remove CONFIG_OF_CONTROL to boot again
Signed-off-by: Heiko Schocher hs@denx.de Acked-by: Kim Phillips kim.phillips@freescale.com Cc: Simon Glass sjg@chromium.org
--- - changes for v2: - added acked-by from Kim - changes for v3: none - changes for v4: none - changes for v5: none - changes for v6: none - changes for v7: none
include/configs/ids8313.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/configs/ids8313.h b/include/configs/ids8313.h index 1de5750..3e55247 100644 --- a/include/configs/ids8313.h +++ b/include/configs/ids8313.h @@ -19,6 +19,8 @@ #define CONFIG_MPC8313 #define CONFIG_IDS8313
+#define CONFIG_SYS_GENERIC_BOARD + #define CONFIG_FSL_ELBC
#define CONFIG_MISC_INIT_R @@ -582,6 +584,5 @@ #define CONFIG_RSA #define CONFIG_SHA1 #define CONFIG_SHA256 -#define CONFIG_OF_CONTROL
#endif /* __CONFIG_H */

On 21 June 2014 22:33, Heiko Schocher hs@denx.de wrote:
- add CONFIG_SYS_GENERIC_BOARD
- remove CONFIG_OF_CONTROL to boot again
Signed-off-by: Heiko Schocher hs@denx.de Acked-by: Kim Phillips kim.phillips@freescale.com Cc: Simon Glass sjg@chromium.org
Acked-by: Simon Glass sjg@chromium.org

On Sun, Jun 22, 2014 at 06:33:30AM +0200, Heiko Schocher wrote:
- add CONFIG_SYS_GENERIC_BOARD
- remove CONFIG_OF_CONTROL to boot again
Signed-off-by: Heiko Schocher hs@denx.de Acked-by: Kim Phillips kim.phillips@freescale.com Acked-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
participants (3)
-
Heiko Schocher
-
Simon Glass
-
Tom Rini