diff options
author | Michal Simek | 2022-04-29 11:52:27 +0200 |
---|---|---|
committer | Michal Simek | 2022-05-13 09:10:02 +0200 |
commit | 9c563e916c91f8ad093e832fbe00ab12dd18ea61 (patch) | |
tree | e48dc8e44ef6beb0dd768e336ff010f3eab65eaa /board/xilinx/versal | |
parent | 303198e26dd455aafd23d25e9f4d99d9fee1caec (diff) |
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 commit 92b611e8b003 ("stm32mp:
correctly handle board_get_usable_ram_top(0)") and commit c8510e397fad
("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
Diffstat (limited to 'board/xilinx/versal')
-rw-r--r-- | board/xilinx/versal/board.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index 2e2807eee46..a88f5bb177e 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -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); |