[PATCH v2 19/28] efi_loader: Update efi_add_memory_map() to use address
Simon Glass
sjg at chromium.org
Thu Nov 28 16:47:18 CET 2024
Update this function and its friend to use an address rather than a
pointer cast to an integer.
The callers are updated in later patches, as marked, to reduce the diff,
but we may which to squash some patches.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
include/efi_loader.h | 11 +++++------
lib/efi_loader/efi_memory.c | 2 +-
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 4c346addae3..f1ae29b04d7 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -834,9 +834,9 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size,
/**
* efi_add_memory_map() - add memory area to the memory map
*
- * @start: start address of the memory area. Note that this is
- * actually a pointer provided as an integer. To pass in
- * an address, pass in (ulong)map_to_sysmem(addr)
+ * @start: start address, must be a multiple of EFI_PAGE_SIZE. Note
+ * that this is an address, not a pointer. Use
+ * map_to_sysmem(ptr) if you need to pass in a pointer
* @size: length in bytes of the memory area
* @mem_type: EFI type of memory added
* Return: status code
@@ -851,9 +851,8 @@ efi_status_t efi_add_memory_map(u64 start, u64 size,
* efi_add_memory_map_pg() - add pages to the memory map
*
* @start: start address, must be a multiple of EFI_PAGE_SIZE. Note that this
- * is actually a pointer provided as an integer. To pass in an address, pass
- * in (ulong)map_to_sysmem(addr)
- *
+ * is an address, not a pointer. Use map_to_sysmem(ptr) if you need to pass
+ * in a pointer
* @pages: number of pages to add
* @mem_type: EFI type of memory added
* @overlap_conventional: region may only overlap free(conventional)
diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
index 89f22388fc4..157ba5ec50c 100644
--- a/lib/efi_loader/efi_memory.c
+++ b/lib/efi_loader/efi_memory.c
@@ -298,7 +298,7 @@ efi_status_t efi_add_memory_map_pg(u64 start, u64 pages,
if (!newlist)
return EFI_OUT_OF_RESOURCES;
newlist->type = mem_type;
- newlist->base = start;
+ newlist->base = (uintptr_t)map_sysmem(start, pages * EFI_PAGE_SIZE);
newlist->num_pages = pages;
switch (mem_type) {
--
2.34.1
More information about the U-Boot
mailing list