On 1/26/23 18:24, Loic Poulain wrote:
> When secure/insecure TRIM operations are supported.
> When used as erase command argument it applies the
> erase operation to write blocks instead of erase
> groups.
> 
> Signed-off-by: Loic Poulain <loic.poul...@linaro.org>
> Reviewed-by: Simon Glass <s...@chromium.org>
> Reviewed-by: Jaehoon Chung <jh80.ch...@samsung.com>


Applied to u-boot-mmc/master.

Best Regards,
Jaehoon Chung


> ---
> v2: Add mmc unit test change to the series
> 
>  drivers/mmc/mmc.c | 3 +++
>  include/mmc.h     | 4 ++++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index 210703ea46..e5f5ccb5f4 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -2432,6 +2432,9 @@ static int mmc_startup_v4(struct mmc *mmc)
>  
>       mmc->wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET];
>  
> +     mmc->can_trim =
> +             !!(ext_csd[EXT_CSD_SEC_FEATURE] & EXT_CSD_SEC_FEATURE_TRIM_EN);
> +
>       return 0;
>  error:
>       if (mmc->ext_csd) {
> diff --git a/include/mmc.h b/include/mmc.h
> index 571fa625d0..f6e23625ca 100644
> --- a/include/mmc.h
> +++ b/include/mmc.h
> @@ -241,6 +241,7 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx)
>  #define EXT_CSD_HC_WP_GRP_SIZE               221     /* RO */
>  #define EXT_CSD_HC_ERASE_GRP_SIZE    224     /* RO */
>  #define EXT_CSD_BOOT_MULT            226     /* RO */
> +#define EXT_CSD_SEC_FEATURE          231     /* RO */
>  #define EXT_CSD_GENERIC_CMD6_TIME       248     /* RO */
>  #define EXT_CSD_BKOPS_SUPPORT                502     /* RO */
>  
> @@ -315,6 +316,8 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx)
>  #define EXT_CSD_WR_DATA_REL_USR              (1 << 0)        /* user data 
> area WR_REL */
>  #define EXT_CSD_WR_DATA_REL_GP(x)    (1 << ((x)+1))  /* GP part (x+1) WR_REL 
> */
>  
> +#define EXT_CSD_SEC_FEATURE_TRIM_EN  (1 << 4) /* Support secure & insecure 
> trim */
> +
>  #define R1_ILLEGAL_COMMAND           (1 << 22)
>  #define R1_APP_CMD                   (1 << 5)
>  
> @@ -687,6 +690,7 @@ struct mmc {
>       uint tran_speed;
>       uint legacy_speed; /* speed for the legacy mode provided by the card */
>       uint read_bl_len;
> +     bool can_trim;
>  #if CONFIG_IS_ENABLED(MMC_WRITE)
>       uint write_bl_len;
>       uint erase_grp_size;    /* in 512-byte sectors */

Reply via email to