From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gary Bisson Date: Wed, 6 May 2020 10:12:28 +0200 Subject: [PATCH] fastboot: getvar: fix partition-size return value Message-ID: <20200506081228.8669-1-gary.bisson@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The size returned by 'getvar partition-size' should be in bytes, not in blocks as fastboot uses that value to generate empty partition when running format [1]. [1] https://android.googlesource.com/platform/system/core/+/refs/heads/android10-release/fastboot/fastboot.cpp#1500 Signed-off-by: Gary Bisson --- Hi, Another test was to run 'fastboot getvar partition-size:system' on a shipping Android phone, it will give you the size in bytes as well. Regards, Gary --- drivers/fastboot/fb_getvar.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 95cb434189..51a2bea86d 100644 --- a/drivers/fastboot/fb_getvar.c +++ b/drivers/fastboot/fb_getvar.c @@ -94,7 +94,7 @@ static const struct { * * @param[in] part_name Info for which partition name to look for * @param[in,out] response Pointer to fastboot response buffer - * @param[out] size If not NULL, will contain partition size (in blocks) + * @param[out] size If not NULL, will contain partition size * @return Partition number or negative value on error */ static int getvar_get_part_info(const char *part_name, char *response, @@ -108,13 +108,13 @@ static int getvar_get_part_info(const char *part_name, char *response, r = fastboot_mmc_get_part_info(part_name, &dev_desc, &part_info, response); if (r >= 0 && size) - *size = part_info.size; + *size = part_info.size * part_info.blksz; # elif CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND) struct part_info *part_info; r = fastboot_nand_get_part_info(part_name, &part_info, response); if (r >= 0 && size) - *size = part_info->size; + *size = part_info->size * part_info.blksz; # else fastboot_fail("this storage is not supported in bootloader", response); r = -ENODEV; -- 2.26.2