Skip to content

Commit

Permalink
boot: android: Fix ramdisk loading for v2 header
Browse files Browse the repository at this point in the history
Before
commit da3447d ("android: Fix ramdisk loading for bootimage v3+"),
the ramdisk was loaded from img_data.ramdisk_ptr, ignoring offset
provided via mkbootimg.

commit da3447d ("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: da3447d ("android: Fix ramdisk loading for bootimage v3+")
Signed-off-by: Mattijs Korpershoek <[email protected]>
  • Loading branch information
makohoek authored and trini committed Oct 3, 2024
1 parent 0ec0207 commit 1b1ffda
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions boot/image-android.c
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 1b1ffda

Please sign in to comment.