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>
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 @@
 			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;