]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dfu: mmc: Add support for exposing whole mmc device
authorMarek Vasut <marex@denx.de>
Sun, 29 Oct 2023 22:37:22 +0000 (23:37 +0100)
committerMattijs Korpershoek <mkorpershoek@baylibre.com>
Tue, 31 Oct 2023 13:53:05 +0000 (14:53 +0100)
Add support for exposing the whole mmc device by setting the 'size'
parameter to 0. This can be useful in case it is not clear what the
total device size is up front. Update the documentation accordingly.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Link: https://lore.kernel.org/r/20231029223740.284149-1-marex@denx.de
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
doc/usage/dfu.rst
drivers/dfu/dfu_mmc.c

index 68cacbbef6697a815eb4eacdd8fb73b80935f284..8845a71df3697fd58d8067e96f7841ffb277a3cf 100644 (file)
@@ -121,6 +121,11 @@ mmc
 
     with
 
+    offset
+        is the offset in the device (hexadecimal without "0x")
+    size
+        is the size of the access area (hexadecimal without "0x")
+        or 0 which means whole device
     partid
         being the GPT or DOS partition index,
     num
index cdb3c18b01db400b23ef4a2437d567a497609967..12c54e90ef71ff4348a60a92e815925baafc0201 100644 (file)
@@ -386,6 +386,16 @@ int dfu_fill_entity_mmc(struct dfu_entity *dfu, char *devstr, char **argv, int a
                dfu->data.mmc.lba_size          = third_arg;
                dfu->data.mmc.lba_blk_size      = mmc->read_bl_len;
 
+               /*
+                * In case the size is zero (i.e. mmc raw 0x10 0),
+                * assume the user intends to use whole device.
+                */
+               if (third_arg == 0) {
+                       struct blk_desc *blk_dev = mmc_get_blk_desc(mmc);
+
+                       dfu->data.mmc.lba_size = blk_dev->lba;
+               }
+
                /*
                 * Check for an extra entry at dfu_alt_info env variable
                 * specifying the mmc HW defined partition number