[PATCH v2 1/3] lib: fdt: Introduce fdtdec_setup_mem_size_base_lowest()

Simon Glass sjg at chromium.org
Wed Jul 15 03:05:34 CEST 2020


On Fri, 10 Jul 2020 at 06:41, Michal Simek <michal.simek at xilinx.com> wrote:
>
> New function should be called from board dram_init() because it initialized
> gd->ram_base/ram_size. It finds the lowest available memory.
>
> On systems with multiple memory nodes finding out the first memory node by
> fdtdec_setup_mem_size_base() is not enough because this memory can be above
> actual U-Boot VA mapping. Currently only mapping till 39bit is supported
> (Full 44bit mapping was removed by commit 7985cdf74b28 ("arm64: Remove
> non-full-va map code")).
> If DT starts with the first memory node above 39bit address then system can
> be unpredictable.
>
> The function is available only when multiple memory bank support is
> enabled.
>
> Calling fdtdec_setup_memory_banksize() from dram_init() is not possible
> because fdtdec_setup_memory_banksize() is saving dram information to bd
> structure which is placed on stack but not initialized at this time. Also
> stack is placed at location setup in dram_init().
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
>
> Changes in v2:
> - Separate Xilinx change from generic patch
>
>  include/fdtdec.h | 17 +++++++++++++++++
>  lib/fdtdec.c     | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 62 insertions(+)
>

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


More information about the U-Boot mailing list