On Tue, 2026-02-24 at 11:05 -0600, Tom Rini wrote:
> [...]
> So one thing I'd like to know is what makes your case different, so that
> we can catch it in testing in the future.
> [...]
> I'm guessing in your failure case we're doing some huge allocation this
> second time here and that's why there's not space later on for the
> device tree? But it's also a little odd that in your ramdisk is now
> being moved around, but perhaps that's because we detected an overlap
> now? Can you share how exactly you're making this failure happen please?
> Thanks.

The test case I used is u-boot master built with just
qemu_arm64_defconfig and a simple fit image that contains a gzip
compressed kernel_noload and a ramdisk to boot¹. The rpi test case has
no ramdisk.
Also I didn't want to specify any load addresses in the fit image to
make the image generic.
Yes, there is a huge allocation taking place when loading the ramdisk.
The qemu default env does not have "initrd_high" set² so 
boot_ramdisk_high() stays with "initrd_copy_to_ram = 1" and calls
lmb_alloc_mem() to move the ramdisk.

cu
Ludwig

[1]https://github.com/lnussel/initrd-minimal-experiment/blob/arm/kernel.its.aarch64
[2] initrd_high used to be set to 0xffffffff for qemu. IIUC this value
of -1 is supposed to turn the loading feature off and use the ramdisk
in place (even though the comment in the source says 0 turns it off).
Commit eb726cf6ae0 removed the setting. So always moving things around
now. Anyway this setting can't have worked for 64bit systems as it's
not -1 there. So confusing :-)

-- 
(o_  Ludwig Nussel
//\  Siemens AG
V_/_ www.siemens.com












Reply via email to