Hi Jaehoon, On Mon, 6 Feb 2023 at 06:05, Jaehoon Chung <jh80.ch...@samsung.com> wrote: > > Hi, > > > -----Original Message----- > > From: Loic Poulain <loic.poul...@linaro.org> > > Sent: Thursday, January 26, 2023 6:24 PM > > To: s...@chromium.org; peng....@nxp.com; jh80.ch...@samsung.com > > Cc: u-boot@lists.denx.de; Loic Poulain <loic.poul...@linaro.org> > > Subject: [PATCH v2 2/3] mmc: erase: Use TRIM erase when available > > > > The default erase command applies on erase group unit, and > > simply round down to erase group size. When the start block > > is not aligned to erase group size (e.g. erasing partition) > > it causes unwanted erasing of the previous blocks, part of > > the same erase group (e.g. owned by other logical partition, > > or by the partition table itself). > > > > To prevent this issue, a simple solution is to use TRIM as > > argument of the Erase command, which is usually supported > > with eMMC > 4.0, and allow to apply erase operation to write > > blocks instead of erase group > > > > Signed-off-by: Loic Poulain <loic.poul...@linaro.org> > > --- > > v2: Add mmc unit test change to the series > > > > drivers/mmc/mmc_write.c | 34 +++++++++++++++++++++++----------- > > 1 file changed, 23 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/mmc/mmc_write.c b/drivers/mmc/mmc_write.c > > index 5b7aeeb012..a6f93380dd 100644 > > --- a/drivers/mmc/mmc_write.c > > +++ b/drivers/mmc/mmc_write.c > > @@ -15,7 +15,7 @@ > > #include <linux/math64.h> > > #include "mmc_private.h" > > > > -static ulong mmc_erase_t(struct mmc *mmc, ulong start, lbaint_t blkcnt) > > +static ulong mmc_erase_t(struct mmc *mmc, ulong start, lbaint_t blkcnt, > > u32 args) > > { > > struct mmc_cmd cmd; > > ulong end; > > @@ -52,7 +52,7 @@ static ulong mmc_erase_t(struct mmc *mmc, ulong start, > > lbaint_t blkcnt) > > goto err_out; > > > > cmd.cmdidx = MMC_CMD_ERASE; > > - cmd.cmdarg = MMC_ERASE_ARG; > > + cmd.cmdarg = args ? args : MMC_ERASE_ARG; > > It there any case to pass by other value?
Not at the moment, but it can be used to support eMMC 'Secure Erase' arg. Regards, Loic