stm32f7: board: Fix memory init
authorPatrice Chotard <patrice.chotard@st.com>
Fri, 3 Aug 2018 11:09:55 +0000 (13:09 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 13 Aug 2018 18:03:57 +0000 (14:03 -0400)
Commit 1473b12ad0b3 ("lib: fdtdec: Update ram_base to store ram start
adddress") brings regression on STM32F7 which can't boot.

Use fdtdec_setup_mem_size_base() to setup memory base and size.
Use fdtdec_setup_memory_banksize() to setup memory bank base and size.

Reported-by: Mark Olsson <mark@markolsson.se>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Cc: Mark Olsson <mark@markolsson.se>
Reviewed-by: Vikas Manocha <vikas.manocha@st.com>
board/st/stm32f746-disco/stm32f746-disco.c

index e21cfc6..7c9b1ad 100644 (file)
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int get_memory_base_size(fdt_addr_t *mr_base, fdt_addr_t *mr_size)
-{
-       int mr_node;
-
-       mr_node = fdt_path_offset(gd->fdt_blob, "/memory");
-       if (mr_node < 0)
-               return mr_node;
-       *mr_base = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, mr_node,
-                                                     "reg", 0, mr_size, false);
-       debug("mr_base = %lx, mr_size= %lx\n", *mr_base, *mr_size);
-
-       return 0;
-}
 int dram_init(void)
 {
-       int rv;
-       fdt_addr_t mr_base, mr_size;
-
 #ifndef CONFIG_SUPPORT_SPL
+       int rv;
        struct udevice *dev;
        rv = uclass_get_device(UCLASS_RAM, 0, &dev);
        if (rv) {
@@ -48,26 +33,12 @@ int dram_init(void)
        }
 
 #endif
-       rv = get_memory_base_size(&mr_base, &mr_size);
-       if (rv)
-               return rv;
-       gd->ram_size = mr_size;
-       gd->ram_top = mr_base;
-
-       return rv;
+       return fdtdec_setup_mem_size_base();
 }
 
 int dram_init_banksize(void)
 {
-       fdt_addr_t mr_base, mr_size;
-       get_memory_base_size(&mr_base, &mr_size);
-       /*
-        * Fill in global info with description of SRAM configuration
-        */
-       gd->bd->bi_dram[0].start = mr_base;
-       gd->bd->bi_dram[0].size  = mr_size;
-
-       return 0;
+       return fdtdec_setup_memory_banksize();
 }
 
 int board_early_init_f(void)