All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: Sean Anderson <sean.anderson@seco.com>, Simon Glass <sjg@chromium.org>
Cc: "Marek Behún" <marek.behun@nic.cz>,
	u-boot@lists.denx.de, "Marek Vasut" <marex@denx.de>,
	"Pali Rohár" <pali@kernel.org>
Subject: Re: [RFC PATCH 4/7] spl: Convert mmc to spl_load
Date: Wed, 6 Apr 2022 07:32:40 +0200	[thread overview]
Message-ID: <1313e210-70fb-e862-c4bf-7a335513818c@denx.de> (raw)
In-Reply-To: <20220401190405.1932697-5-sean.anderson@seco.com>

On 4/1/22 21:04, Sean Anderson wrote:
> This converts the mmc loader to spl_load. Legacy images are handled by
> spl_load (via spl_parse_image_header), so mmc_load_legacy can be
> omitted.
> 
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   common/spl/spl_mmc.c | 73 ++++----------------------------------------
>   1 file changed, 6 insertions(+), 67 deletions(-)
> 
> diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
> index 1c41d24ff4..113566166f 100644
> --- a/common/spl/spl_mmc.c
> +++ b/common/spl/spl_mmc.c
> @@ -17,48 +17,6 @@
>   #include <mmc.h>
>   #include <image.h>
>   
> -static int mmc_load_legacy(struct spl_image_info *spl_image,
> -			   struct spl_boot_device *bootdev,
> -			   struct mmc *mmc,
> -			   ulong sector, struct image_header *header)
> -{
> -	u32 image_offset_sectors;
> -	u32 image_size_sectors;
> -	unsigned long count;
> -	u32 image_offset;
> -	int ret;
> -
> -	ret = spl_parse_image_header(spl_image, bootdev, header);
> -	if (ret)
> -		return ret;
> -
> -	/* convert offset to sectors - round down */
> -	image_offset_sectors = spl_image->offset / mmc->read_bl_len;
> -	/* calculate remaining offset */
> -	image_offset = spl_image->offset % mmc->read_bl_len;
> -
> -	/* convert size to sectors - round up */
> -	image_size_sectors = (spl_image->size + mmc->read_bl_len - 1) /
> -			     mmc->read_bl_len;
> -
> -	/* Read the header too to avoid extra memcpy */
> -	count = blk_dread(mmc_get_blk_desc(mmc),
> -			  sector + image_offset_sectors,
> -			  image_size_sectors,
> -			  (void *)(ulong)spl_image->load_addr);
> -	debug("read %x sectors to %lx\n", image_size_sectors,
> -	      spl_image->load_addr);
> -	if (count != image_size_sectors)
> -		return -EIO;
> -
> -	if (image_offset)
> -		memmove((void *)(ulong)spl_image->load_addr,
> -			(void *)(ulong)spl_image->load_addr + image_offset,
> -			spl_image->size);
> -
> -	return 0;
> -}
> -
>   static ulong h_spl_load_read(struct spl_load_info *load, ulong sector,
>   			     ulong count, void *buf)
>   {
> @@ -86,6 +44,11 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image,
>   	struct image_header *header;
>   	struct blk_desc *bd = mmc_get_blk_desc(mmc);
>   	int ret = 0;
> +	struct spl_load_info load = {
> +		.dev = mmc,
> +		.bl_len = mmc->read_bl_len,
> +		.read = h_spl_load_read,
> +	};
>   
>   	header = spl_get_load_buffer(-sizeof(*header), bd->blksz);
>   
> @@ -97,31 +60,7 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image,
>   		goto end;
>   	}
>   
> -	if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
> -	    image_get_magic(header) == FDT_MAGIC) {
> -		struct spl_load_info load;
> -
> -		debug("Found FIT\n");
> -		load.dev = mmc;
> -		load.priv = NULL;
> -		load.filename = NULL;
> -		load.bl_len = mmc->read_bl_len;
> -		load.read = h_spl_load_read;
> -		ret = spl_load_simple_fit(spl_image, &load, sector, header);
> -	} else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) {
> -		struct spl_load_info load;
> -
> -		load.dev = mmc;
> -		load.priv = NULL;
> -		load.filename = NULL;
> -		load.bl_len = mmc->read_bl_len;
> -		load.read = h_spl_load_read;
> -
> -		ret = spl_load_imx_container(spl_image, &load, sector);
> -	} else {
> -		ret = mmc_load_legacy(spl_image, bootdev, mmc, sector, header);
> -	}
> -
> +	ret = spl_load(spl_image, bootdev, &load, header, 0, sector);
>   end:
>   	if (ret) {
>   #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

  reply	other threads:[~2022-04-06  5:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-01 19:03 [RFC PATCH 0/7] spl: Use common function for loading/parsing images Sean Anderson
2022-04-01 19:03 ` [RFC PATCH 1/7] spl: Add generic spl_load function Sean Anderson
2022-04-06  5:30   ` Stefan Roese
2022-04-07 15:10     ` Sean Anderson
2022-04-08  4:43       ` Stefan Roese
2022-04-01 19:04 ` [RFC PATCH 2/7] spl: Convert ext to use spl_load Sean Anderson
2022-04-06  5:32   ` Stefan Roese
2022-04-01 19:04 ` [RFC PATCH 3/7] spl: Convert fat to spl_load Sean Anderson
2022-04-06  5:32   ` Stefan Roese
2022-04-01 19:04 ` [RFC PATCH 4/7] spl: Convert mmc " Sean Anderson
2022-04-06  5:32   ` Stefan Roese [this message]
2022-04-01 19:04 ` [RFC PATCH 5/7] spl: Convert net " Sean Anderson
2022-04-06  5:32   ` Stefan Roese
2022-04-01 19:04 ` [RFC PATCH 6/7] spl: Convert nor " Sean Anderson
2022-04-06  5:33   ` Stefan Roese
2022-04-01 19:04 ` [RFC PATCH 7/7] spl: Convert spi " Sean Anderson
2022-04-06  5:33   ` Stefan Roese
2022-04-06  5:26 ` [RFC PATCH 0/7] spl: Use common function for loading/parsing images Stefan Roese

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=1313e210-70fb-e862-c4bf-7a335513818c@denx.de \
    --to=sr@denx.de \
    --cc=marek.behun@nic.cz \
    --cc=marex@denx.de \
    --cc=pali@kernel.org \
    --cc=sean.anderson@seco.com \
    --cc=sjg@chromium.org \
    --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.