]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
imx8m: Restrict usable memory to space below 4G boundary
authorFrieder Schrempf <frieder.schrempf@kontron.de>
Mon, 7 Jun 2021 12:36:44 +0000 (14:36 +0200)
committerStefano Babic <sbabic@denx.de>
Sat, 10 Jul 2021 14:03:01 +0000 (16:03 +0200)
Some IPs have their accessible address space restricted by the
interconnect. Let's make sure U-Boot only ever uses the space below
the 4G address boundary (which is 3GiB big), even when the effective
available memory is bigger.

We implement board_get_usable_ram_top() for all i.MX8M SoCs, as the
whole family is affected by this.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
arch/arm/mach-imx/imx8m/soc.c

index 0c44022a6dca744ddb6e42022d652b7ec3955a54..f5983320c7cb8b518bfc70dd4680b749e45c2386 100644 (file)
@@ -296,6 +296,20 @@ phys_size_t get_effective_memsize(void)
 #endif
 }
 
+ulong board_get_usable_ram_top(ulong total_size)
+{
+       /*
+        * Some IPs have their accessible address space restricted by
+        * the interconnect. Let's make sure U-Boot only ever uses the
+        * space below the 4G address boundary (which is 3GiB big),
+        * even when the effective available memory is bigger.
+        */
+       if (PHYS_SDRAM + gd->ram_size > 0x80000000)
+               return 0x80000000;
+
+       return PHYS_SDRAM + gd->ram_size;
+}
+
 static u32 get_cpu_variant_type(u32 type)
 {
        struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;