summaryrefslogtreecommitdiff
path: root/boot/image-board.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-08-28 21:32:46 +0300
committerTom Rini <trini@konsulko.com>2022-09-14 16:03:06 +0300
commit1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d (patch)
tree2e714c2b2c9a81295aa9763b21655a3403f1ae03 /boot/image-board.c
parenta822b9234b2f961f0bbdf2a0b20863d48c6de6e3 (diff)
downloadu-boot-1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d.tar.xz
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.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/boot/image-board.c b/boot/image-board.c
index 4e4d1c157d..14b595977e 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;