From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Date: Thu, 27 Aug 2015 20:22:36 +0200 Subject: [U-Boot] [PATCH] image: fix Android ramdisk support when dtb is specified In-Reply-To: <1437148637-2984-1-git-send-email-robh@kernel.org> References: <1437148637-2984-1-git-send-email-robh@kernel.org> Message-ID: <1440699756.2601.21.camel@collins> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Le vendredi 17 juillet 2015 ? 10:57 -0500, Rob Herring a ?crit : > 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. This commit breaks booting non-fdt Android images (the kernel doesn't find the initramfs, and neither does U-Boot). The test to enter the code block where Android ramdisk support was moved is accessed with: else if (select || genimg_has_config(images)) { However, in a non-fdt context, select is NULL and genimg_has_config returns 0. I suggest we either duplicate Android ramdisk support in the non-fdt path or adapt the condition to enter the code block where it was moved. > Signed-off-by: Rob Herring > --- > 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 > */ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part URL: