[PATCH 1/2] fastboot: fb_getvar: Add getvar_logical_blocksize for MXP mfgtool

Sean Anderson sean.anderson at seco.com
Sat Dec 18 00:10:08 CET 2021


Hi Angus,

On 12/17/21 10:41 AM, Angus Ainslie wrote:
> uuu uses the blocksize to determine the upload size

Can you please elaborate on this more?

> 
> Signed-off-by: Angus Ainslie <angus at akkea.ca>
> ---
>   drivers/fastboot/fb_getvar.c | 27 +++++++++++++++++++++++++++
>   1 file changed, 27 insertions(+)
> 
> diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
> index d43f2cfee6..ff5f0d3d40 100644
> --- a/drivers/fastboot/fb_getvar.c
> +++ b/drivers/fastboot/fb_getvar.c
> @@ -31,6 +31,7 @@ static void getvar_partition_type(char *part_name, char *response);
>   static void getvar_partition_size(char *part_name, char *response);
>   #endif
>   static void getvar_is_userspace(char *var_parameter, char *response);
> +static void getvar_logical_blocksize(char *var_parameter, char *response);
>   
>   static const struct {
>   	const char *variable;
> @@ -81,6 +82,9 @@ static const struct {
>   	}, {
>   		.variable = "is-userspace",
>   		.dispatch = getvar_is_userspace
> +	}, {
> +		.variable = "logical-block-size",
> +		.dispatch = getvar_logical_blocksize
>   	}
>   };
>   
> @@ -140,6 +144,29 @@ static void getvar_downloadsize(char *var_parameter, char *response)
>   	fastboot_response("OKAY", response, "0x%08x", fastboot_buf_size);
>   }
>   
> +static int fb_get_block_size(void)
> +{
> +	int dev_no = 0;
> +	struct blk_desc *dev_desc;
> +
> +	dev_desc = blk_get_dev("mmc", 0);

And what if your block device is not mmc 0? This code is not specific to fastboot mmc. What about nand?

> +
> +	if (!dev_desc) {
> +		printf("** Block device %s %d not supported\n",
> +		       "mmc", 0);
> +		return 0;

Why return 0? This should result in an error fastboot_response.

> +	}
> +	return dev_desc->blksz;
> +}
> +
> +static void getvar_logical_blocksize(char *var_parameter, char *response)
> +{
> +	u32 blksz;
> +
> +	blksz = fb_get_block_size();
> +	fastboot_response("OKAY", response, "0x%08x", blksz);

Can we combine these functions?

--Sean

> +}
> +
>   static void getvar_serialno(char *var_parameter, char *response)
>   {
>   	const char *tmp = env_get("serial#");
> 


More information about the U-Boot mailing list