mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
xilinx: Handle board_get_usable_ram_top(0) properly
board_get_usable_ram_top() was designed for getting the top most location for U-Boot allocation that's why function itself supports via total_size parameter to find out where the right location for U-Boot is. But function itself is also reused by different (EFI) which is passing total_size as 0 to find out where the usable ram top is. For this case doesn't make sense (a waste time) to call any lmb functions. That's why simply return gd->ram_top. And gd->ram_top is filled already based on previous call for U-Boot iself. The same solution is also used by stm32mp by commit92b611e8b0
("stm32mp: correctly handle board_get_usable_ram_top(0)") and commitc8510e397f
("stm32mp: Fix board_get_usable_ram_top()"). Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/44470619e74f3e480b70deac24578e3e0d5c907e.1651225945.git.michal.simek@amd.com
This commit is contained in:
parent
303198e26d
commit
9c563e916c
2 changed files with 6 additions and 0 deletions
|
@ -256,6 +256,9 @@ ulong board_get_usable_ram_top(ulong total_size)
|
|||
phys_addr_t reg;
|
||||
struct lmb lmb;
|
||||
|
||||
if (!total_size)
|
||||
return gd->ram_top;
|
||||
|
||||
/* found enough not-reserved memory to relocated U-Boot */
|
||||
lmb_init(&lmb);
|
||||
lmb_add(&lmb, gd->ram_base, gd->ram_size);
|
||||
|
|
|
@ -516,6 +516,9 @@ ulong board_get_usable_ram_top(ulong total_size)
|
|||
phys_addr_t reg;
|
||||
struct lmb lmb;
|
||||
|
||||
if (!total_size)
|
||||
return gd->ram_top;
|
||||
|
||||
if (!IS_ALIGNED((ulong)gd->fdt_blob, 0x8))
|
||||
panic("Not 64bit aligned DT location: %p\n", gd->fdt_blob);
|
||||
|
||||
|
|
Loading…
Reference in a new issue