Hi Heiko, On 14 May 2014 04:54, Heiko Schocher <h...@denx.de> 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 <h...@denx.de> > Cc: Simon Glass <s...@chromium.org> > Cc: Tom Rini <tr...@ti.com> > Cc: Michael Conrad <michael.con...@ids.de> > > --- > - 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) > --- > lib/Makefile | 1 + > lib/fdtdec.c | 36 ------------------------------------ > lib/fdtdec_common.c | 33 +++++++++++++++++++++++++++++++++ > tools/fdtdec.c | 1 + > 4 files changed, 35 insertions(+), 36 deletions(-) > create mode 100644 lib/fdtdec_common.c > > diff --git a/lib/Makefile b/lib/Makefile > index 27e4f78..a3a237f 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -23,6 +23,7 @@ obj-$(CONFIG_USB_TTY) += circbuf.o > obj-y += crc7.o > obj-y += crc8.o > obj-y += crc16.o > +obj-y += 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 8ecb80f..21d5e85 100644 > --- a/lib/fdtdec.c > +++ b/lib/fdtdec.c > @@ -109,24 +109,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) > { > @@ -646,22 +628,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..c03016c > --- /dev/null > +++ b/lib/fdtdec_common.c > @@ -0,0 +1,33 @@ > +/* > + * Copyright (c) 2014 > + * Heiko Schocher, DENX Software Engineering, h...@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" > +#endif > + > +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);
Is it possible to use fdt_getprop() here and avoid the cast? > + if (cell && len >= sizeof(int)) { > + int val = fdt32_to_cpu(cell[0]); > + > + return val; > + } > + return default_val; > +} > diff --git a/tools/fdtdec.c b/tools/fdtdec.c > index f1c2256..9987f83 100644 > --- a/tools/fdtdec.c > +++ b/tools/fdtdec.c > @@ -1 +1,2 @@ > +#include "../lib/fdtdec_common.c" > #include "../lib/fdtdec.c" > -- > 1.8.3.1 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot