[PATCH v2 2/3] riscv: Expand the DT size before copy reserved memory node
Atish Patra
atishp at atishpatra.org
Tue Jun 2 20:23:28 CEST 2020
On Thu, May 28, 2020 at 1:47 AM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> From: Bin Meng <bin.meng at windriver.com>
>
> The FDT blob might not have sufficient space to hold a copy of
> reserved memory node. Expand it before the copy.
>
> Reported-by: Rick Chen <rick at andestech.com>
> Signed-off-by: Bin Meng <bin.meng at windriver.com>
> ---
>
> arch/riscv/lib/fdt_fixup.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/riscv/lib/fdt_fixup.c b/arch/riscv/lib/fdt_fixup.c
> index 5f523f0..1290a64 100644
> --- a/arch/riscv/lib/fdt_fixup.c
> +++ b/arch/riscv/lib/fdt_fixup.c
> @@ -41,6 +41,12 @@ int riscv_fdt_copy_resv_mem_node(const void *src, void *dst)
> return 0;
> }
>
> + err = fdt_open_into(dst, dst, fdt_totalsize(dst) + 32);
The size may be bigger than 32 bytes in future given that we may have
multiple reserved pmp regions.
How about calculating the size from the source and using that instead
of a fixed size ?
> + if (err < 0) {
> + printf("Device Tree can't be expanded to accommodate new node");
> + return err;
> + }
> +
> fdt_for_each_subnode(node, src, offset) {
> name = fdt_get_name(src, node, NULL);
>
> --
> 2.7.4
>
--
Regards,
Atish
More information about the U-Boot
mailing list