aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-08-28 12:32:46 -0600
committerTom Rini <trini@konsulko.com>2022-09-14 09:03:06 -0400
commit1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d (patch)
tree2e714c2b2c9a81295aa9763b21655a3403f1ae03
parenta822b9234b2f961f0bbdf2a0b20863d48c6de6e3 (diff)
downloadu-boot-1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d.zip
u-boot-1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d.tar.gz
u-boot-1ce8e10f3b4bd23dfdd7dad076b56ba36fa6416d.tar.bz2
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>
-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 4e4d1c1..14b5959 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;