[PATCH v2 1/2] mach-snapdragon: pass fdt to qcom_parse_memory

Sam Day me at samcday.com
Thu Jan 23 16:16:01 CET 2025


Salutations Simon,

On Thursday, 23 January 2025 at 15:37, Simon Glass <sjg at chromium.org> wrote:
> 
> Hi Sam,
> 
> On Wed, 22 Jan 2025 at 03:27, Sam Day me at samcday.com wrote:
> 
> > commit fc37a73e6679 ("fdt: Swap the signature for
> > board_fdt_blob_setup()") introduced a subtle change to the Snapdragon
> > implementation, removing the assignment to gd->fdt_blob partway through
> > the function.
> > 
> > This breaks qcom_parse_memory() which was also called during
> > board_fdt_blob_setup().
> > 
> > The underlying issue here is that qcom_parse_memory is using the of_ api
> > to traverse a devicetree, which relies on the fdt_blob in global data.
> > 
> > Rather than relying on this subtle behaviour, explicitly pass the FDT
> > that should be consulted for a /memory node.
> > 
> > Using the OF API is typically preferable because it's easier to read,
> > but using the lower level fdt_ methods instead here doesn't add too much
> > complexity, I think.
> > 
> > Finally, a minor tweak was made to board_fdt_blob_setup to use the
> > passed fdt blob pointer instead of gd->fdt_blob, which removes the last
> > of the references to global data in this area.
> > 
> > Fixes: fc37a73e6679 (fdt: Swap the signature for board_fdt_blob_setup())
> > Reviewed-by: Caleb Connolly caleb.connolly at linaro.org
> > Signed-off-by: Sam Day me at samcday.com
> > ---
> > arch/arm/mach-snapdragon/board.c | 15 ++++++++-------
> > 1 file changed, 8 insertions(+), 7 deletions(-)
> 
> 
> Reviewed-by: Simon Glass sjg at chromium.org
> 
> 
> But I'm looking forward to some form of Caleb's patch landing too[1].

Hm, this patch was intended to be a replacement for the one you linked. It's
already been pulled into upstream/master. Was there something specific in that
patch that you still want to see land?

I saw your comments there today and AFAICT this patch already addressed the
desire to stop mutating gd->fdt_blob from board_fdt_blob_setup. That was
necessary in Caleb's patch because qcom_parse_memory was using of_ API methods
to scoop out /memory node info. This patch opted instead to use fdt_ and operate
on the provided *fdtp directly.

Regards,
-Sam


> 
> Regards,
> SImon
> 
> [1] https://patchwork.ozlabs.org/project/uboot/patch/20250117102734.3725009-2-caleb.connolly@linaro.org/


More information about the U-Boot mailing list