Hi

I got same issue on STM32F746

Patrice

On 10/04/2018 09:24 AM, Michal Simek wrote:
> This reverts commit c35a7d375ec8f0a8ee343ae4868be3242172632e.
> This commit is breaking SPL on zc706.
> 
> Signed-off-by: Michal Simek <michal.si...@xilinx.com>
> ---
> 
>  lib/fdtdec.c | 44 +++++++++++++++++++++++---------------------
>  1 file changed, 23 insertions(+), 21 deletions(-)
> 
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index 74196ce7f9f7..bf5e0f6a57c0 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -15,7 +15,6 @@
>  #include <serial.h>
>  #include <asm/sections.h>
>  #include <linux/ctype.h>
> -#include <linux/ioport.h>
>  #include <linux/lzo.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
> @@ -1182,34 +1181,41 @@ int fdtdec_setup_mem_size_base(void)
>  
>  #if defined(CONFIG_NR_DRAM_BANKS)
>  
> -static ofnode get_next_memory_node(ofnode mem)
> +static int get_next_memory_node(const void *blob, int mem)
>  {
>       do {
> -             mem = ofnode_by_prop_value(mem, "device_type", "memory", 7);
> -     } while (ofnode_valid(mem) && !ofnode_is_available(mem));
> +             mem = fdt_node_offset_by_prop_value(gd->fdt_blob, mem,
> +                                                 "device_type", "memory", 7);
> +     } while (!fdtdec_get_is_enabled(blob, mem));
>  
>       return mem;
>  }
>  
>  int fdtdec_setup_memory_banksize(void)
>  {
> -     int bank, reg = 0;
> -     struct resource res;
> -     ofnode mem;
> +     int bank, ret, mem, reg = 0;
> +     struct fdt_resource res;
>  
> -     mem = get_next_memory_node(ofnode_null());
> -     if (!ofnode_valid(mem))
> -             goto missing_node;
> +     mem = get_next_memory_node(gd->fdt_blob, -1);
> +     if (mem < 0) {
> +             debug("%s: Missing /memory node\n", __func__);
> +             return -EINVAL;
> +     }
>  
>       for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {
> -             while (ofnode_read_resource(mem, reg++, &res)) {
> +             ret = fdt_get_resource(gd->fdt_blob, mem, "reg", reg++, &res);
> +             if (ret == -FDT_ERR_NOTFOUND) {
>                       reg = 0;
> -                     mem = get_next_memory_node(mem);
> -                     if (!ofnode_valid(mem)) {
> -                             if (bank)
> -                                     return 0;
> -                             goto missing_node;
> -                     }
> +                     mem = get_next_memory_node(gd->fdt_blob, mem);
> +                     if (mem == -FDT_ERR_NOTFOUND)
> +                             break;
> +
> +                     ret = fdt_get_resource(gd->fdt_blob, mem, "reg", reg++, 
> &res);
> +                     if (ret == -FDT_ERR_NOTFOUND)
> +                             break;
> +             }
> +             if (ret != 0) {
> +                     return -EINVAL;
>               }
>  
>               gd->bd->bi_dram[bank].start = (phys_addr_t)res.start;
> @@ -1223,10 +1229,6 @@ int fdtdec_setup_memory_banksize(void)
>       }
>  
>       return 0;
> -
> -missing_node:
> -     debug("%s: Missing /memory node\n", __func__);
> -     return -EINVAL;
>  }
>  #endif
>  
> 
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to