diff options
author | Simon Glass <sjg@chromium.org> | 2022-08-28 12:32:46 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-09-14 09:03:06 -0400 |
commit | 1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d (patch) | |
tree | 2e714c2b2c9a81295aa9763b21655a3403f1ae03 /boot/image-board.c | |
parent | a822b9234b2f961f0bbdf2a0b20863d48c6de6e3 (diff) | |
download | u-boot-1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d.tar.gz |
image: Fix up ANDROID_BOOT_IMAGE ramdisk code
Convert this to an if(), fix the cast from an address to a pointer and
make sure that any error is returned correctly.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/image-board.c')
-rw-r--r-- | boot/image-board.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/boot/image-board.c b/boot/image-board.c index 4e4d1c157d7..14b595977e1 100644 --- a/boot/image-board.c +++ b/boot/image-board.c @@ -421,12 +421,19 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, images->fit_noffset_rd = rd_noffset; break; #endif -#ifdef CONFIG_ANDROID_BOOT_IMAGE case IMAGE_FORMAT_ANDROID: - android_image_get_ramdisk((void *)images->os.start, - rd_datap, rd_lenp); - break; -#endif + if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE)) { + void *ptr = map_sysmem(images->os.start, 0); + int ret; + + ret = android_image_get_ramdisk(ptr, rd_datap, + rd_lenp); + unmap_sysmem(ptr); + if (ret) + return ret; + break; + } + fallthrough; default: if (IS_ENABLED(CONFIG_SUPPORT_RAW_INITRD)) { char *end = NULL; |