[U-Boot] [PATCH] image: fix Android ramdisk support when dtb is specified

Rob Herring robh at kernel.org
Fri Jul 17 17:57:17 CEST 2015


If a dtb is specified on the command-line, the Android boot image ramdisk
will not be found. Fix this so that we can specify the ramdisk address and
dtb address. The syntax is to enter the Android boot image address for
both the kernel and ramdisk.

Signed-off-by: Rob Herring <robh at kernel.org>
---
 common/image.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/common/image.c b/common/image.c
index f0f0135..73fc288 100644
--- a/common/image.c
+++ b/common/image.c
@@ -896,6 +896,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
 
 	if (argc >= 2)
 		select = argv[1];
+
 	/*
 	 * Look for a '-' which indicates to ignore the
 	 * ramdisk argument
@@ -995,6 +996,12 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
 			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_data, &rd_len);
+			break;
+#endif
 		default:
 #ifdef CONFIG_SUPPORT_RAW_INITRD
 			end = NULL;
@@ -1025,16 +1032,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
 				(ulong)images->legacy_hdr_os);
 
 		image_multi_getimg(images->legacy_hdr_os, 1, &rd_data, &rd_len);
-	}
-#ifdef CONFIG_ANDROID_BOOT_IMAGE
-	else if ((genimg_get_format((void *)images->os.start)
-			== IMAGE_FORMAT_ANDROID) &&
-		 (!android_image_get_ramdisk((void *)images->os.start,
-		 &rd_data, &rd_len))) {
-		/* empty */
-	}
-#endif
-	else {
+	} else {
 		/*
 		 * no initrd image
 		 */
-- 
2.1.0



More information about the U-Boot mailing list