arm64: mvebu: handle non-zero base address for RAM
board_get_usable_ram_top() conflated the RAM size with the top address of RAM. On systems where RAM starts at address 0 these numbers are the same so it went unnoticed. Update board_get_usable_ram_top() to take CONFIG_SYS_SDRAM_BASE into account when determining the top address. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
committed by
Stefan Roese
parent
e33879a45e
commit
8fd3cf2940
@@ -28,14 +28,13 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
* Currently only 2GiB are mapped for system memory. This is what
|
* Currently only 2GiB are mapped for system memory. This is what
|
||||||
* we pass to the U-Boot subsystem here.
|
* we pass to the U-Boot subsystem here.
|
||||||
*/
|
*/
|
||||||
#define USABLE_RAM_SIZE 0x80000000
|
#define USABLE_RAM_SIZE 0x80000000ULL
|
||||||
|
|
||||||
ulong board_get_usable_ram_top(ulong total_size)
|
ulong board_get_usable_ram_top(ulong total_size)
|
||||||
{
|
{
|
||||||
if (gd->ram_size > USABLE_RAM_SIZE)
|
unsigned long top = CONFIG_SYS_SDRAM_BASE + min(gd->ram_size, USABLE_RAM_SIZE);
|
||||||
return USABLE_RAM_SIZE;
|
|
||||||
|
|
||||||
return gd->ram_size;
|
return (gd->ram_top > top) ? top : gd->ram_top;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user