efi_loader: fix efi_add_known_memory()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 14 Aug 2023 05:50:53 +0000 (07:50 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 15 Aug 2023 16:21:17 +0000 (18:21 +0200)
In efi_add_known_memory() we currently call board_get_usable_ram_top() with
an incorrect value 0 of parameter total_size. This leads to an incorrect
value for ram_top depending on the code in board_get_usable_ram_top().

Use the value of gd->ram_top instead which is set before relocation by
calling board_get_usable_ram_top().

Fixes: 7b78d6438a2b ("efi_loader: Reserve unaccessible memory")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
lib/efi_loader/efi_memory.c

index ebf4a2d..f752703 100644 (file)
@@ -877,7 +877,7 @@ efi_status_t efi_add_conventional_memory_map(u64 ram_start, u64 ram_end,
  */
 __weak void efi_add_known_memory(void)
 {
-       u64 ram_top = board_get_usable_ram_top(0) & ~EFI_PAGE_MASK;
+       u64 ram_top = gd->ram_top & ~EFI_PAGE_MASK;
        int i;
 
        /*