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 <ma...@denx.de>
Thanks for the fix! Reviewed-by: Frieder Schrempf <frieder.schre...@kontron.de> > Cc: Fabio Estevam <feste...@denx.de> > Cc: Frieder Schrempf <frieder.schre...@kontron.de> > Cc: Peng Fan <peng....@nxp.com> > Cc: Stefano Babic <sba...@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.