Possiable memory conflict with fdt memory region

Simon Glass sjg at chromium.org
Thu Jan 27 16:06:00 CET 2022


Hi Fangsuo,

On Mon, 27 Dec 2021 at 09:31, Fangsuo Wu <tiger20081015 at gmail.com> wrote:
>
> Hi,  in image_setup_linux(),
> stage 1: Boot_fdt_add_mem_rsv_regions() is called first to add the mem
> reserve regions which prevents u-boot from using them to store the
> initrd or the fdt blob;
> stage 2: Then boot_relocate_fdt() is called to reserve or alloc fdt
> blob from the avaiable lmb region.
>
> But it seems  at stage 1 it doesn't cover up all mem reserve regions.
> For example, if CMD_PSTORE is configured,  fdt_fixup_pstore(blob) will
> add pstore to reserved-memory node in fdt in image_setup_libfdt()
> after stage 2 , which may conflict with fdt memory region and can't be
> detected since fdt_fixup_pstore doesn't call lmb_reserve(lmb, pstrore
> addr, pstore len).
>
> In image_setup_libfdt, there are also other functions like
> ft_board_setup which may change existing reserved memory node's size
> and lead to the same issue.
>
> Do you think  a common function is needed before
> boot_fdt_add_mem_rsv_regions() in stage 1? The function can be used to
> fix-up or add new reserved memory nodes. Thanks.

+Tom Rini

Possibly. I am not an expert on this, but perhaps send a patch?

Regards,
Simon


More information about the U-Boot mailing list