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