[PATCH v2 1/4] qemu: overlay signature nodes

Ludwig Nussel ludwig.nussel at siemens.com
Wed May 6 17:29:03 CEST 2026


On 5/4/26 14:26, Simon Glass wrote:
> On 2026-04-30T12:25:59, Ludwig Nussel <ludwig.nussel at siemens.com> 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.

cu
Ludwig

-- 
Ludwig Nussel
Siemens AG
www.siemens.com


More information about the U-Boot mailing list