[PATCH v5 19/23] efi_loader: Update to use addresses internally
Simon Glass
sjg at chromium.org
Tue Dec 17 20:47:12 CET 2024
This collects together several v3 patches into one, to avoid any
temporary test-breakage which would make future bisecting difficult.
For efi_memory, the efi_allocate_pool() call uses a pointer to refer to
memory, but efi_allocate_pages() uses an int. This causes quite a bit of
confusion, since sandbox has a distinction between pointers and
addresses. Adjust efi_allocate/free_pages_ext() to handle the
conversions.
Update efi_add_memory_map() function and its friend to use an address
rather than a pointer cast to an integer.
For lmb, now that efi_add_memory_map_pg() uses a address rather than a
pointer cast to an int, we can simplify the code here.
For efi_reserve_memory(), use addresses rather than pointers, so that it
doesn't have to use mapmem.
In general this simplifies the code, but the main benefit is that casts
are no-longer needed in most places, so the compiler can check that we
are doing the right thing.
For efi_add_runtime_mmio(), now that efi_add_memory_map() takes an
address rather than a pointer, do the mapping in this function.
Update the memset() parameter to be a char while we are here.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v4)
Changes in v4:
- Combine the various pointer-to-address patches into one
include/efi_loader.h | 13 +++++------
lib/efi_loader/efi_bootmgr.c | 3 ++-
lib/efi_loader/efi_boottime.c | 37 ++++++++++++++++++++++--------
lib/efi_loader/efi_dt_fixup.c | 4 ----
lib/efi_loader/efi_image_loader.c | 3 ++-
lib/efi_loader/efi_memory.c | 38 ++++++++++---------------------
lib/efi_loader/efi_runtime.c | 3 ++-
lib/efi_loader/efi_var_mem.c | 6 ++---
lib/lmb.c | 10 +++-----
9 files changed, 57 insertions(+), 60 deletions(-)
Applied to sjg/master, thanks!
More information about the U-Boot
mailing list