]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
xilinx: Setup bootm variables
authorMichal Simek <michal.simek@xilinx.com>
Thu, 9 Jul 2020 13:57:56 +0000 (15:57 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 20 Aug 2020 07:46:55 +0000 (09:46 +0200)
On system with PL DDR which is placed before PS DDR in DT
env_get_bootm_size() and env_get_bootm_low() without specifying bootm_low
and bootm_size variables are taking by default gd->bd->bi_dram[0].start and
gd->bd->bi_dram[0].size. As you see 0 means bank 0 which doesn't need to be
PS ddr and even can be memory above 39bit VA which is what U-Boot supports
now.
That's why setup bootm variables based on ram_base/ram_size setting to make
sure that boot images are placed to the same location as U-Boot is placed.
This location should be by default location where OS can boot from.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
board/xilinx/common/board.c

index 0469e2e7ac9b5b90576f5f67bdf1ab16da1abd17..3bca3a25a97b656def5dbf3734e1da72e148600c 100644 (file)
@@ -86,5 +86,8 @@ int board_late_init_xilinx(void)
        initrd_hi = round_down(initrd_hi, SZ_16M);
        env_set_addr("initrd_high", (void *)initrd_hi);
 
+       env_set_addr("bootm_low", (void *)gd->ram_base);
+       env_set_addr("bootm_size", (void *)gd->ram_size);
+
        return 0;
 }