[PATCH v3 15/27] lmb: init: initialise the lmb data structures during board init
Sughosh Ganu
sughosh.ganu at linaro.org
Wed Aug 21 12:58:27 CEST 2024
The memory map maintained by the LMB module is now persistent and
global. This memory map is being maintained through the alloced list
structure which can be extended at runtime -- there is one list for
the available memory, and one for the used memory. Allocate and
initialise these lists during the board init.
Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
Reviewed-by: Simon Glass <sjg at chromium.org>
---
Changes since V2:
* Use if(CONFIG_IS_ENABLED(...)) in initr_lmb() instead of an #ifdef.
common/board_r.c | 10 ++++++++++
common/spl/spl.c | 3 +++
2 files changed, 13 insertions(+)
diff --git a/common/board_r.c b/common/board_r.c
index f445803d7a..a60da39a29 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -22,6 +22,7 @@
#include <hang.h>
#include <image.h>
#include <irq_func.h>
+#include <lmb.h>
#include <log.h>
#include <net.h>
#include <asm/cache.h>
@@ -510,6 +511,14 @@ int initr_mem(void)
}
#endif
+static int initr_lmb(void)
+{
+ if (CONFIG_IS_ENABLED(LMB))
+ return lmb_init();
+ else
+ return 0;
+}
+
static int dm_announce(void)
{
int device_count;
@@ -612,6 +621,7 @@ static init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_CLOCKS
set_cpu_clk_info, /* Setup clock information */
#endif
+ initr_lmb,
#ifdef CONFIG_EFI_LOADER
efi_memory_init,
#endif
diff --git a/common/spl/spl.c b/common/spl/spl.c
index d6a364de6e..4102e25115 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -723,6 +723,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
IS_ENABLED(CONFIG_SPL_ATF))
dram_init_banksize();
+ if (IS_ENABLED(CONFIG_SPL_LMB))
+ lmb_init();
+
if (CONFIG_IS_ENABLED(PCI) && !(gd->flags & GD_FLG_DM_DEAD)) {
ret = pci_init();
if (ret)
--
2.34.1
More information about the U-Boot
mailing list