On dim., oct. 29, 2023 at 23:37, Marek Vasut <[email protected]> wrote: > 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 <[email protected]> > --- > Cc: Lukasz Majewski <[email protected]> > Cc: Mattijs Korpershoek <[email protected]> > Cc: Tom Rini <[email protected]>
Reviewed-by: Mattijs Korpershoek <[email protected]> > --- > doc/usage/dfu.rst | 5 +++++ > drivers/dfu/dfu_mmc.c | 10 ++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/doc/usage/dfu.rst b/doc/usage/dfu.rst > index 68cacbbef66..8845a71df36 100644 > --- a/doc/usage/dfu.rst > +++ b/doc/usage/dfu.rst > @@ -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 > diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c > index cdb3c18b01d..12c54e90ef7 100644 > --- a/drivers/dfu/dfu_mmc.c > +++ b/drivers/dfu/dfu_mmc.c > @@ -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 > -- > 2.42.0

