On Fri, Jun 9, 2023 at 10:41 AM Detlev Casanova <detlev.casan...@collabora.com> wrote: > > The function fdtdec_board_setup() is called early and adds the overlay > from ATF to the u-boot device tree. That is necessary so that u-boot > doesn't use reserved memory. > > Linux also needs to know about that reserved memory so the overlay from > ATF needs to be aplied on the linux device tree as well. > > This commit makes sure that the ATF overlay is applied to both device trees. >
Thanks for this. I was trying to do this very same thing, but your solution looks cleaner than mine. Reviewed-by: Adam Ford <aford...@gmail.com> > Signed-off-by: Detlev Casanova <detlev.casan...@collabora.com> > --- > board/renesas/rcar-common/common.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/board/renesas/rcar-common/common.c > b/board/renesas/rcar-common/common.c > index f38453af82c..f976c99028a 100644 > --- a/board/renesas/rcar-common/common.c > +++ b/board/renesas/rcar-common/common.c > @@ -25,12 +25,17 @@ extern u64 rcar_atf_boot_args[]; > > #define FDT_RPC_PATH "/soc/spi@ee200000" > > -int fdtdec_board_setup(const void *fdt_blob) > +static void apply_atf_overlay(void *fdt_blob) > { > void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]); > > if (fdt_magic(atf_fdt_blob) == FDT_MAGIC) > - fdt_overlay_apply_node((void *)fdt_blob, 0, atf_fdt_blob, 0); > + fdt_overlay_apply_node(fdt_blob, 0, atf_fdt_blob, 0); > +} > + > +int fdtdec_board_setup(const void *fdt_blob) > +{ > + apply_atf_overlay((void *)fdt_blob); > > return 0; > } > @@ -159,6 +164,7 @@ static void update_rpc_status(void *blob) > > int ft_board_setup(void *blob, struct bd_info *bd) > { > + apply_atf_overlay(blob); > scrub_duplicate_memory(blob); > update_rpc_status(blob); > > -- > 2.39.3 >