Stephen On Sunday 10 April 2016 09:11 AM, Stephen Warren wrote: > On 04/09/2016 12:35 PM, Simon Glass wrote: >> +Stephen >> >> Hi Mugunthan, >> >> On 7 April 2016 at 09:17, Mugunthan V N <mugunthan...@ti.com> wrote: >>> Size cell and address cell should be read from the parent node >>> and should not assume with data structures as an example >>> TI DRA7xx SoC is enabled as 64bit as there is LPAE support >>> but the addresses specified in DT are all 32 bit sizes. So >>> changing the code to read from parent node instead of >>> calculations. >> >> I don't understand this. Can you please reword it and shorten the >> sentences? > >>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c >>> index 70acc29..8a5fb8c 100644 >>> --- a/lib/fdtdec.c >>> +++ b/lib/fdtdec.c >>> @@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void >>> *blob, int node, >>> const fdt32_t *prop_addr, *prop_size, *prop_after_size; >>> int len; >>> fdt_addr_t addr; >>> + int parent; >>> >>> debug("%s: %s: ", __func__, prop_name); >>> >>> - if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) { >>> + parent = fdt_parent_offset(blob, node); >> >> This is a very slow function. I hope this changes is not needed. >> >>> + >>> + na = fdt_address_cells(blob, parent); >>> + if (na < 1) { >>> debug("(na too large for fdt_addr_t type)\n"); >>> return FDT_ADDR_T_NONE; >>> } >>> >>> - if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) { >>> + ns = fdt_size_cells(blob, parent); >>> + if (ns < 0) { >>> debug("(ns too large for fdt_size_t type)\n"); >>> return FDT_ADDR_T_NONE; >>> } > > The entire point of fdtdec_get_addr_size_fixed() is for use-cases where > na and ns are known and fixed ahead of time, or have already been > retrieved from the parent node by the caller. This patch is incorrect. I > expect the correct fix is to call e.g. > fdtdec_get_addr_size_auto_parent() or > fdtdec_get_addr_size_auto_noparent() from somewhere, rather than calling > fdtdec_get_addr_size_fixed().
Will fix thos in v2 by using fdtdec_get_addr_size_auto_parent() Regards Mugunthan V N _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot