common/board_f: make sure to call fix_fdt() before reserve_fdt()
authorPragnesh Patel <pragnesh.patel@sifive.com>
Thu, 13 Aug 2020 04:42:26 +0000 (10:12 +0530)
committerAndes <uboot@andestech.com>
Fri, 14 Aug 2020 06:39:47 +0000 (14:39 +0800)
There may be a chance that board specific fix_fdt() will change the
size of FDT blob so it's safe to call reserve_fdt() after fix_fdt()
otherwise global data (gd) will overwrite with FDT blob values.

Fixes: a8492e25ac71 ("riscv: Expand the DT size before copy reserved memory node")

Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Rick Chen <rick@andestech.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
common/board_f.c

index 79532f4..3932e0c 100644 (file)
@@ -919,6 +919,9 @@ static const init_fnc_t init_sequence_f[] = {
         *  - board info struct
         */
        setup_dest_addr,
+#ifdef CONFIG_OF_BOARD_FIXUP
+       fix_fdt,
+#endif
 #ifdef CONFIG_PRAM
        reserve_pram,
 #endif
@@ -941,9 +944,6 @@ static const init_fnc_t init_sequence_f[] = {
        INIT_FUNC_WATCHDOG_RESET
        setup_bdinfo,
        display_new_sp,
-#ifdef CONFIG_OF_BOARD_FIXUP
-       fix_fdt,
-#endif
        INIT_FUNC_WATCHDOG_RESET
        reloc_fdt,
        reloc_bootstage,