[PATCH] ARM: imx: imx8m: Fix board_get_usable_ram_top()

Frieder Schrempf frieder.schrempf at kontron.de
Thu Apr 14 16:47:12 CEST 2022


Am 14.04.22 um 15:51 schrieb Marek Vasut:
> The 4 GiB boundary is at 0xffffffff+1 , not at 0x80000000, fix this.
> 
> The PHYS_SDRAM of i.MX8M is at 0x40000000 , so to restrict ram_top
> below 4 GiB, the ram_top has to be set to 0xffffffff as it is not
> an offset from the start of PHYS_SDRAM, but rather a physical address
> marking the topmost allowed DRAM address.
> 
> Fixes: e27bddff4b9 ("imx8m: Restrict usable memory to space below 4G boundary")
> Signed-off-by: Marek Vasut <marex at denx.de>

Thanks for the fix!

Reviewed-by: Frieder Schrempf <frieder.schrempf at kontron.de>

> Cc: Fabio Estevam <festevam at denx.de>
> Cc: Frieder Schrempf <frieder.schrempf at kontron.de>
> Cc: Peng Fan <peng.fan at nxp.com>
> Cc: Stefano Babic <sbabic at denx.de>
> ---
>  arch/arm/mach-imx/imx8m/soc.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
> index 8171631db10..e7fe7c2fd88 100644
> --- a/arch/arm/mach-imx/imx8m/soc.c
> +++ b/arch/arm/mach-imx/imx8m/soc.c
> @@ -331,7 +331,7 @@ phys_size_t get_effective_memsize(void)
>  
>  ulong board_get_usable_ram_top(ulong total_size)
>  {
> -	ulong top_addr = PHYS_SDRAM + gd->ram_size;
> +	ulong top_addr;
>  
>  	/*
>  	 * Some IPs have their accessible address space restricted by
> @@ -339,8 +339,7 @@ ulong board_get_usable_ram_top(ulong total_size)
>  	 * space below the 4G address boundary (which is 3GiB big),
>  	 * even when the effective available memory is bigger.
>  	 */
> -	if (top_addr > 0x80000000)
> -		top_addr = 0x80000000;
> +	top_addr = clamp_val((u64)PHYS_SDRAM + gd->ram_size, 0, 0xffffffff);
>  
>  	/*
>  	 * rom_pointer[0] stores the TEE memory start address.


More information about the U-Boot mailing list