Hi Ludwig,

On Mon, 11 May 2026 at 05:18, Ludwig Nussel <[email protected]> wrote:
>
> On 5/7/26 17:33, Simon Glass wrote:
> > On Wed, 6 May 2026 at 09:29, Ludwig Nussel <[email protected]> 
> > wrote:
> >>
> >> On 5/4/26 14:26, Simon Glass wrote:
> >>> On 2026-04-30T12:25:59, Ludwig Nussel <[email protected]> wrote:
> >>>> qemu: overlay signature nodes
> >>>> [...]
> >>>> diff --git a/board/emulation/qemu-arm/qemu-arm.c 
> >>>> b/board/emulation/qemu-arm/qemu-arm.c
> >>>> @@ -147,7 +147,38 @@ int dram_init_banksize(void)
> >>>>    int board_fdt_blob_setup(void **fdtp)
> >>>>    {
> >>>>         /* QEMU loads a generated DTB for us at the start of RAM. */
> >>>> -     *fdtp = (void *)CFG_SYS_SDRAM_BASE;
> >>>> +     void *qemu_fdt = (void *)CFG_SYS_SDRAM_BASE;
> >>>> +     int ret;
> >>>> +
> >>>> +     if (!*fdtp)
> >>>> +             goto out;
> >>>
> >>> This runs the opposite direction to qemu-sbsa, which uses the U-Boot
> >>> DT as the base and overlays the QEMU DT onto it (see
> >>> fdtdec_board_setup() in board/emulation/qemu-sbsa/qemu-sbsa.c). Done
> >>> this way, any node in U-Boot's built-in DT that shares a name with a
> >>> QEMU node (/cpus, /memory, /chosen, ...) will have its properties
> >>> merged into QEMU's, potentially clobbering the hardware description.
> >>> If this is correct, please explain in the commit message why the merge
> >>> runs in this direction.
> >>
> >> IIUC the FDT patching happens before relocation. QEMU starts u-boot from
> >> a ROM at address 0 so writing to the embedded DT does not work. QEMU's
> >> provided DT is at a writable RAM location so patching that one works.
> >>
> >> I don't know which direction makes more sense really. If you say merging
> >> QEMU's DT into U-Boot's is better then board_fix_fdt() could be used for
> >> the merging I guess. Looks like that could work with
> >> CONFIG_OF_INITIAL_DTB_READONLY and CONFIG_OF_BOARD_FIXUP set.
> >
> > Hmmm now I am wondering how this actually works with sbsa. As you
> > point out it's hard to see how the fdtdec_board_setup() works before
> > relocation...I don't have the energy to dig into it, though.
>
> AFAICS SBSA relocates u-boot into RAM via
> arch/arm/include/asm/arch-qemu-sbsa/boot0.h on startup.

Ah OK, well anyway what you have seems OK to me. Let's see how it goes
down the track.

Regards,
SImon

Reply via email to