From: George Chan <[email protected]> The kernel searching bootconfig will be off-by-1 and never match thus always not found in this case.
Signed-off-by: George Chan <[email protected]> --- The searching will shift-by-1 and never match the bootconfig thus always not found bootconfig this case. Kernel: data = (char *)initrd_end - BOOTCONFIG_MAGIC_LEN; for (i = 0; i < 4; i++) { if (!memcmp(data, BOOTCONFIG_MAGIC, BOOTCONFIG_MAGIC_LEN)) goto found; data--; } u-boot: initrd_end = initrd_start + hextoul(argv[3], NULL) - 1; That would be off-by-one apprently and matching fail for bootconfig. Both u-boot and kernel worth a fix. An out-of-tree patch for kernel to relax the searching is available but not ready for submit. https://github.com/99degree/linux/commit/9d9ea454fe857a9f550d7e60957253e176e8e123 --- cmd/fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/fdt.c b/cmd/fdt.c index d16b141ce32..13ffe929f8b 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -705,7 +705,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc == 4) { initrd_start = hextoul(argv[2], NULL); - initrd_end = initrd_start + hextoul(argv[3], NULL) - 1; + initrd_end = initrd_start + hextoul(argv[3], NULL); } fdt_chosen(working_fdt); --- base-commit: 848f7ffc64aa7c4cc2229095812625c12343c8c1 change-id: 20250407-fdt-chosen-c87045f2e1e9 Best regards, -- George Chan <[email protected]>

