[PATCH v2 1/3] mmc: Check support for TRIM operations
Jaehoon Chung
jh80.chung at samsung.com
Fri Mar 10 03:31:03 CET 2023
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.poulain at linaro.org>
> Reviewed-by: Simon Glass <sjg at chromium.org>
> Reviewed-by: Jaehoon Chung <jh80.chung at 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 */
More information about the U-Boot
mailing list