imx8m: Restrict usable memory to space below 4G boundary

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>
This commit is contained in:
Frieder Schrempf 2021-06-07 14:36:44 +02:00 committed by Stefano Babic
parent ef62fff269
commit e27bddff4b

View 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;