On 7/14/19 10:30 AM, Bin Meng wrote:
On Sun, Jul 14, 2019 at 4:08 PM Heinrich Schuchardt <xypron.g...@gmx.de> wrote:
On 7/14/19 4:13 AM, Bin Meng wrote:
On Sun, Jul 14, 2019 at 4:02 AM Heinrich Schuchardt <xypron.g...@gmx.de> wrote:
As efi_add_memory_map() signals an error by returning NULL and correct
function by returning the requested address we cannot discern an error from
correct functioning for address 0x00000000. This leads to unexpected
warnings on the Raspberry 3.
Use EFI_SUCCESS to signal success and return an error code otherwise.
Reported-by: Bryan O'Donoghue <pure.lo...@nexus-software.ie>
Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
cmd/bootefi.c | 4 ++--
include/efi_loader.h | 4 ++--
lib/efi_loader/efi_memory.c | 28 ++++++++++++++++++----------
3 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index c19256e00d..04d3e3e4a7 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -169,8 +169,8 @@ static void efi_carve_out_dt_rsv(void *fdt)
pages = efi_size_in_pages(size + (addr & EFI_PAGE_MASK));
addr &= ~EFI_PAGE_MASK;
- if (!efi_add_memory_map(addr, pages, EFI_RESERVED_MEMORY_TYPE,
- false))
+ if (efi_add_memory_map(addr, pages, EFI_RESERVED_MEMORY_TYPE,
+ false) != EFI_SUCCESS)
printf("FDT memrsv map %d: Failed to add to map\n",
i);
}
}
diff --git a/include/efi_loader.h b/include/efi_loader.h
index db4763fc9b..6cc6a3835c 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -476,8 +476,8 @@ efi_status_t efi_get_memory_map(efi_uintn_t
*memory_map_size,
efi_uintn_t *descriptor_size,
uint32_t *descriptor_version);
/* Adds a range into the EFI memory map */
-uint64_t efi_add_memory_map(uint64_t start, uint64_t pages, int memory_type,
- bool overlap_only_ram);
+efi_status_t efi_add_memory_map(uint64_t start, uint64_t pages, int
memory_type,
+ bool overlap_only_ram);
/* Called by board init to initialize the EFI drivers */
efi_status_t efi_driver_init(void);
/* Called by board init to initialize the EFI memory map */
diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
index 27379381e8..da253fa285 100644
--- a/lib/efi_loader/efi_memory.c
+++ b/lib/efi_loader/efi_memory.c
@@ -223,8 +223,17 @@ static s64 efi_mem_carve_out(struct efi_mem_list *map,
return EFI_CARVE_LOOP_AGAIN;
}
-uint64_t efi_add_memory_map(uint64_t start, uint64_t pages, int memory_type,
- bool overlap_only_ram)
+/**
+ * efi_add_memory_map() - add memory area to the memory map
+ *
+ * @start: start address, must be a multiple of EFI_PAGE_SIZE
+ * @pages: number of pages to add
+ * @memory_type: type of memory added
+ * @overlap_only_ram: the memory area must overlap existing
+ * Return: status code
nits: @return
Thanks for reviewing. The current version of Sphinx wants "Return:".
Cf.
https://www.kernel.org/doc/html/v5.2/doc-guide/kernel-doc.html#return-values
Good point. I thought we were using Doxygen format. Not ware of new
Sphinx format. Are we buidling Sphinx docs for U-Boot?
make htmldocs
Regards
Heinrich
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot