[PATCH v2 17/32] lmb: init: initialise the lmb data structures during board init

Simon Glass sjg at chromium.org
Thu Aug 15 22:34:22 CEST 2024


Hi Sughosh,

On Wed, 14 Aug 2024 at 12:01, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
>
> 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>
> ---
> Changes since V1:
> * Move the initr_lmb() function to board_r.c
> * Call lmb_init() from spl.c instead of initr_lmb().
>
>  common/board_r.c | 17 +++++++++++++++++
>  common/spl/spl.c |  3 +++
>  2 files changed, 20 insertions(+)
>

Reviewed-by: Simon Glass <sjg at chromium.org>

nit below

> diff --git a/common/board_r.c b/common/board_r.c
> index f445803d7a..0943ed3d01 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,21 @@ int initr_mem(void)
>  }
>  #endif
>
> +static int initr_lmb(void)
> +{
> +#if CONFIG_IS_ENABLED(LMB)

This should use if()

> +       int ret;
> +
> +       ret = lmb_init();
> +       if (ret)
> +               printf("Unable to initialise the LMB data structures\n");
> +
> +       return ret;
> +#else
> +       return 0;
> +#endif
> +}
> +
>  static int dm_announce(void)
>  {
>         int device_count;
> @@ -612,6 +628,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
>

Regards,
Simon


More information about the U-Boot mailing list