]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
boot: android: Fix ramdisk loading for v2 header
authorMattijs Korpershoek <mkorpershoek@baylibre.com>
Thu, 3 Oct 2024 12:42:39 +0000 (14:42 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 3 Oct 2024 17:30:25 +0000 (11:30 -0600)
Before
commit da3447d09fa0 ("android: Fix ramdisk loading for bootimage v3+"),
the ramdisk was loaded from img_data.ramdisk_ptr, ignoring offset
provided via mkbootimg.

commit da3447d09fa0 ("android: Fix ramdisk loading for bootimage v3+")
rightfully fixes this by switching to use img_data.ramdisk_addr instead.

However, it does not copy the ramdisk content to img_data.ramdisk_addr
in case we use boot image v2.

Because of this, we can no longer boot Android on Khadas vim3 board:

[    3.940361] RAMDISK: Couldn't find valid RAM disk image starting at 0.

Add the missing memcpy() to fix the issue.

Fixes: da3447d09fa0 ("android: Fix ramdisk loading for bootimage v3+")
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
boot/image-android.c

index 774565fd1fea0abc8445834cc90647752062682b..8934491c35f210511fa830dd15ed3aca9551e6a1 100644 (file)
@@ -409,6 +409,10 @@ int android_image_get_ramdisk(const void *hdr, const void *vendor_boot_img,
                               (ramdisk_ptr), (void *)img_data.bootconfig_addr,
                               img_data.bootconfig_size);
                }
+       } else {
+               ramdisk_ptr = img_data.ramdisk_addr;
+               memcpy((void *)(ramdisk_ptr), (void *)img_data.ramdisk_ptr,
+                      img_data.ramdisk_size);
        }
 
        printf("RAM disk load addr 0x%08lx size %u KiB\n",