]> Git Repo - J-u-boot.git/commitdiff
ARM: imx: imx8m: Fix board_get_usable_ram_top()
authorMarek Vasut <[email protected]>
Thu, 14 Apr 2022 13:51:46 +0000 (15:51 +0200)
committerStefano Babic <[email protected]>
Thu, 21 Apr 2022 12:38:03 +0000 (14:38 +0200)
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 <[email protected]>
Cc: Fabio Estevam <[email protected]>
Cc: Frieder Schrempf <[email protected]>
Cc: Peng Fan <[email protected]>
Cc: Stefano Babic <[email protected]>
Reviewed-by: Fabio Estevam <[email protected]>
Reviewed-by: Frieder Schrempf <[email protected]>
arch/arm/mach-imx/imx8m/soc.c

index 8171631db10a420b34183b351d57a1c6b3b23c72..e7fe7c2fd8875064fb0fc81411610fdde87d4c0b 100644 (file)
@@ -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.
This page took 0.042577 seconds and 4 git commands to generate.