All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mattijs Korpershoek <mkorpershoek@baylibre.com>
To: Michael Walle <mwalle@kernel.org>, Tom Rini <trini@konsulko.com>,
	Simon Glass <sjg@chromium.org>
Cc: u-boot@lists.denx.de, Michael Walle <mwalle@kernel.org>
Subject: Re: [PATCH v2] boot: android: fix booting without a ramdisk
Date: Tue, 30 Jul 2024 10:51:21 +0200	[thread overview]
Message-ID: <875xsnqn3q.fsf@baylibre.com> (raw)
In-Reply-To: <20240729213657.2550935-1-mwalle@kernel.org>

Hi Michael,

Thank you for the patch.

On lun., juil. 29, 2024 at 23:36, Michael Walle <mwalle@kernel.org> wrote:

> android_image_get_ramdisk() will return an error if there is no ramdisk.
> Using the android image without a ramdisk worked until commit
> 1ce8e10f3b4b ("image: Fix up ANDROID_BOOT_IMAGE ramdisk code") because
> the return code wasn't checked until then. Return -ENOENT in case
> there is no ramdisk and translate that into -ENOPKG in the calling
> code, which will then indicate "no ramdisk" to its caller
> (boot_get_ramdisk()).
>
> This way, we can get rid of the "*rd_data = *rd_len = 0;" in the error
> path, too.
>
> With this, I'm able to boot a linux kernel using fastboot again:
>
>   fastboot --base 0x41000000 --header-version 2 --dtb /path/to/dtb \
>   --cmdline "root=/dev/mmcblk0p1 rootwait" boot path/to/Image
>
> Signed-off-by: Michael Walle <mwalle@kernel.org>

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> ---
>  boot/image-android.c | 7 +++----
>  boot/image-board.c   | 4 +++-
>  include/image.h      | 2 +-
>  3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/boot/image-android.c b/boot/image-android.c
> index 09c7a44e058..774565fd1fe 100644
> --- a/boot/image-android.c
> +++ b/boot/image-android.c
> @@ -393,10 +393,9 @@ int android_image_get_ramdisk(const void *hdr, const void *vendor_boot_img,
>  	if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
>  		return -EINVAL;
>  
> -	if (!img_data.ramdisk_size) {
> -		*rd_data = *rd_len = 0;
> -		return -1;
> -	}
> +	if (!img_data.ramdisk_size)
> +		return -ENOENT;
> +
>  	if (img_data.header_version > 2) {
>  		ramdisk_ptr = img_data.ramdisk_addr;
>  		memcpy((void *)(ramdisk_ptr), (void *)img_data.vendor_ramdisk_ptr,
> diff --git a/boot/image-board.c b/boot/image-board.c
> index f2124013046..eca1b1d2bff 100644
> --- a/boot/image-board.c
> +++ b/boot/image-board.c
> @@ -427,7 +427,9 @@ static int select_ramdisk(struct bootm_headers *images, const char *select, u8 a
>  				unmap_sysmem(ptr);
>  			}
>  
> -			if (ret)
> +			if (ret == -ENOENT)
> +				return -ENOPKG;
> +			else if (ret)
>  				return ret;
>  			done = true;
>  		}
> diff --git a/include/image.h b/include/image.h
> index dd4042d1bd9..2ab17075287 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -1858,7 +1858,7 @@ int android_image_get_kernel(const void *hdr,
>   * @vendor_boot_img : Pointer to vendor boot image header
>   * @rd_data:	Pointer to a ulong variable, will hold ramdisk address
>   * @rd_len:	Pointer to a ulong variable, will hold ramdisk length
> - * Return: 0 if succeeded, -1 if ramdisk size is 0
> + * Return: 0 if OK, -ENOPKG if no ramdisk, -EINVAL if invalid image
>   */
>  int android_image_get_ramdisk(const void *hdr, const void *vendor_boot_img,
>  			      ulong *rd_data, ulong *rd_len);
> -- 
> 2.39.2

  reply	other threads:[~2024-07-30  8:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-29 21:36 [PATCH v2] boot: android: fix booting without a ramdisk Michael Walle
2024-07-30  8:51 ` Mattijs Korpershoek [this message]
2024-07-31 14:38   ` Simon Glass
2024-07-31 15:33     ` Michael Walle
2024-08-01 14:42       ` Simon Glass
2024-08-06 10:00 ` Mattijs Korpershoek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875xsnqn3q.fsf@baylibre.com \
    --to=mkorpershoek@baylibre.com \
    --cc=mwalle@kernel.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.