xilinx: common: change bootm_size to not go beyond ram_top
authorRicardo Salveti <ricardo@foundries.io>
Thu, 20 Jan 2022 19:17:30 +0000 (16:17 -0300)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 1 Feb 2022 16:11:33 +0000 (17:11 +0100)
The available ram can be limited by ram_top as that depends on the
reserved memory nodes provided by the device-tree (via
board_get_usable_ram_top), so make sure to respect ram_top when setting
up bootm_size to avoid overlapping reserved memory regions (e.g. memory
used by OP-TEE).

The same logic is available in env_get_bootm_size when bootm_size is
not defined by the default environment.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Link: https://lore.kernel.org/r/20220120191730.2009270-1-ricardo@foundries.io
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
board/xilinx/common/board.c

index 78a5d0e..6fce231 100644 (file)
@@ -377,7 +377,7 @@ int board_late_init_xilinx(void)
        u32 ret = 0;
        int i, id, macid = 0;
        struct xilinx_board_description *desc;
-       phys_size_t bootm_size = gd->ram_size;
+       phys_size_t bootm_size = gd->ram_top - gd->ram_base;
 
        if (!CONFIG_IS_ENABLED(MICROBLAZE)) {
                ulong scriptaddr;