[PATCH] xilinx: mbv: Update defconfigs as per memory map

Michal Simek michal.simek at amd.com
Mon Dec 15 13:50:42 CET 2025



On 12/8/25 16:03, Michal Simek wrote:
> From: Padmarao Begari <padmarao.begari at amd.com>
> 
> U-Boot SPL should be executed from LMB BRAM, where its text
> and data sections are located, while the heap and stack are
> allocated in DDR memory.
> 
> Because on the MB-V platform, after power-up, reset, or FPGA
> load, execution begins from LMB BRAM at address 0x0. Therefore,
> the SPL binary must be placed in BRAM to support this boot flow.
> Without it, the system can only be booted via JTAG.
> 
> A 64KB LMB BRAM region is allocated for U-Boot SPL, starting at
> address 0x0. This region contains the SPL's text, data, and device
> tree blob (DTB) sections. The .bss section is placed separately at
> address 0xF000.
> 
> 	_________________0xFFFF
> 	|BSS            |
> 	|_______________|0xF000
> 	|DTB            |
> 	|_______________|
> 	|Data           |
> 	|_______________|
> 	|Text           |
> 	|_______________|0x0000
> 
> A 2MB region of DDR memory is allocated for U-Boot SPL, with the
> heap starting at address 0x80000000 and the stack at 0x80200000.
> 
> 	_________________0xBFFFFFFF
> 	|Full U-Boot    |
> 	|_______________|0x80400000
> 	|Load FIT Image |
> 	|_______________|0x80200000
> 	|Stack          |
> 	|_______________|
> 	|Heap           |
> 	|_______________|0x80000000
> 
> Since LMB BRAM is a limited resource with a practical size
> constraint of 64KB - it cannot accommodate all runtime data.
> Therefore, the heap and stack are placed at the beginning of
> DDR memory to ensure sufficient space for SPL execution.
> 
> Signed-off-by: Padmarao Begari <padmarao.begari at amd.com>
> Signed-off-by: Michal Simek <michal.simek at amd.com>
> ---
> 
>   configs/xilinx_mbv32_defconfig | 12 ++++++++----
>   1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/configs/xilinx_mbv32_defconfig b/configs/xilinx_mbv32_defconfig
> index 9e3c44352a15..42dc5fb282ad 100644
> --- a/configs/xilinx_mbv32_defconfig
> +++ b/configs/xilinx_mbv32_defconfig
> @@ -6,11 +6,12 @@ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x81200000
>   CONFIG_ENV_SIZE=0x20000
>   CONFIG_DEFAULT_DEVICE_TREE="xilinx-mbv32"
>   CONFIG_SPL_STACK=0x80200000
> -CONFIG_SPL_BSS_START_ADDR=0x84000000
> -CONFIG_SPL_BSS_MAX_SIZE=0x80000
> +CONFIG_SPL_TEXT_BASE=0x0
> +CONFIG_SPL_BSS_START_ADDR=0xf000
> +CONFIG_SPL_BSS_MAX_SIZE=0x1000
>   CONFIG_SYS_BOOTM_LEN=0x800000
>   CONFIG_SYS_LOAD_ADDR=0x80200000
> -CONFIG_SPL_SIZE_LIMIT=0x40000
> +CONFIG_SPL_SIZE_LIMIT=0x10000
>   CONFIG_SPL=y
>   CONFIG_SYS_CLK_FREQ=100000000
>   CONFIG_BOOT_SCRIPT_OFFSET=0x0
> @@ -25,10 +26,13 @@ CONFIG_DISPLAY_CPUINFO=y
>   CONFIG_DISPLAY_BOARDINFO=y
>   # CONFIG_BOARD_INIT is not set
>   # CONFIG_BOARD_LATE_INIT is not set
> -CONFIG_SPL_MAX_SIZE=0x40000
> +CONFIG_SPL_MAX_SIZE=0xf000
>   # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>   CONFIG_SPL_HAVE_INIT_STACK=y
>   CONFIG_SPL_SYS_MALLOC=y
> +CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
> +CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR=0x80000000
> +CONFIG_SPL_SYS_MALLOC_SIZE=0x200000
>   # CONFIG_CMD_MII is not set
>   CONFIG_CMD_SNTP=y
>   CONFIG_CMD_TIMER=y

Applied.
M


More information about the U-Boot mailing list