diff mbox

[U-Boot,v2,04/10] efi: Add a hook to allow adding memory mapping

Message ID 1487200678-28887-5-git-send-email-york.sun@nxp.com
State Accepted
Commit 426337455e06c2d05c40f48e488b95a12e4aa056
Delegated to: York Sun
Headers show

Commit Message

York Sun Feb. 15, 2017, 11:17 p.m. UTC
Instead of adding all memory banks, add a hook so individual SoC/board
can has its own implementation.

Signed-off-by: York Sun <york.sun@nxp.com>
CC: Alexander Graf <agraf@suse.de>

---

Changes in v2:
  Add change to efi mapping

 lib/efi_loader/efi_memory.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

Comments

York Sun Feb. 23, 2017, 5:55 p.m. UTC | #1
On 02/15/2017 03:18 PM, York Sun wrote:
> Instead of adding all memory banks, add a hook so individual SoC/board
> can has its own implementation.
>
> Signed-off-by: York Sun <york.sun@nxp.com>
> CC: Alexander Graf <agraf@suse.de>
>
> ---
>
> Changes in v2:
>   Add change to efi mapping
>

Alex,

Are you OK with this change?

York
Alexander Graf Feb. 25, 2017, 2:04 a.m. UTC | #2
On 15/02/2017 15:17, York Sun wrote:
> Instead of adding all memory banks, add a hook so individual SoC/board
> can has its own implementation.

Looks like a clean enough approach to the problem to me.

Reviewed-by: Alexander Graf <agraf@suse.de>


Alex
diff mbox

Patch

diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
index 95aa590..db2ae19 100644
--- a/lib/efi_loader/efi_memory.c
+++ b/lib/efi_loader/efi_memory.c
@@ -431,11 +431,8 @@  efi_status_t efi_get_memory_map(unsigned long *memory_map_size,
 	return EFI_SUCCESS;
 }
 
-int efi_memory_init(void)
+__weak void efi_add_known_memory(void)
 {
-	unsigned long runtime_start, runtime_end, runtime_pages;
-	unsigned long uboot_start, uboot_pages;
-	unsigned long uboot_stack_size = 16 * 1024 * 1024;
 	int i;
 
 	/* Add RAM */
@@ -448,6 +445,15 @@  int efi_memory_init(void)
 		efi_add_memory_map(start, pages, EFI_CONVENTIONAL_MEMORY,
 				   false);
 	}
+}
+
+int efi_memory_init(void)
+{
+	unsigned long runtime_start, runtime_end, runtime_pages;
+	unsigned long uboot_start, uboot_pages;
+	unsigned long uboot_stack_size = 16 * 1024 * 1024;
+
+	efi_add_known_memory();
 
 	/* Add U-Boot */
 	uboot_start = (gd->start_addr_sp - uboot_stack_size) & ~EFI_PAGE_MASK;