[PATCH v2 1/1] fastboot: fb_getvar: Add getvar_logical_blocksize for NXP mfgtool

Angus Ainslie angus at akkea.ca
Sun Dec 19 17:15:16 CET 2021


NXP's mfgtool queies the mmc blocksize and splits a sparse image into
blocksize size pieces for the upload.

Signed-off-by: Angus Ainslie <angus at akkea.ca>
---
 drivers/fastboot/fb_getvar.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
index d43f2cfee6..3cb72b8a54 100644
--- a/drivers/fastboot/fb_getvar.c
+++ b/drivers/fastboot/fb_getvar.c
@@ -26,6 +26,7 @@ static void getvar_has_slot(char *var_parameter, char *response);
 #endif
 #if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC)
 static void getvar_partition_type(char *part_name, char *response);
+static void getvar_logical_blocksize(char *var_parameter, char *response);
 #endif
 #if CONFIG_IS_ENABLED(FASTBOOT_FLASH)
 static void getvar_partition_size(char *part_name, char *response);
@@ -72,6 +73,9 @@ static const struct {
 	}, {
 		.variable = "partition-type",
 		.dispatch = getvar_partition_type
+	}, {
+		.variable = "logical-block-size",
+		.dispatch = getvar_logical_blocksize
 #endif
 #if CONFIG_IS_ENABLED(FASTBOOT_FLASH)
 	}, {
@@ -232,6 +236,23 @@ static void getvar_partition_type(char *part_name, char *response)
 			fastboot_okay(fs_get_type_name(), response);
 	}
 }
+
+static void getvar_logical_blocksize(char *var_parameter, char *response)
+{
+	u32 blksz;
+	struct blk_desc *dev_desc;
+
+	dev_desc = blk_get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV);
+
+	if (!dev_desc) {
+		pr_err("** Block device mmc %d not supported\n",
+		       CONFIG_FASTBOOT_FLASH_MMC_DEV);
+		fastboot_fail("Get logical_blocksize failed", response);
+		return;
+	}
+
+	fastboot_response("OKAY", response, "0x%08x", dev_desc->blksz);
+}
 #endif
 
 #if CONFIG_IS_ENABLED(FASTBOOT_FLASH)
-- 
2.25.1



More information about the U-Boot mailing list