From 4357167e0e941faa0471325450a30227fafbae24 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sat, 18 Jan 2025 04:09:53 +0100 Subject: mmc: Simplify poll CD logic in case cyclic framework is enabled Simplify 90cc07fd786d ("mmc: Poll CD in case cyclic framework is enabled") according to suggestions by Rasmus. The struct cyclic_info is zero-size in case CONFIG_CYCLIC is not enabled and does not add any size to struct mmc, so it can unconditionally be part of that structure. This allows clean up of all the other conditionals in mmc.c which can now be unconditionally present, as they also add no extra space. Suggested-by: Rasmus Villemoes Signed-off-by: Marek Vasut Signed-off-by: Peng Fan --- include/mmc.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mmc.h b/include/mmc.h index 81bccb4cf12..233a1d69afd 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -759,7 +759,11 @@ struct mmc { enum bus_mode user_speed_mode; /* input speed mode from user */ - CONFIG_IS_ENABLED(CYCLIC, (struct cyclic_info cyclic)); + /* + * If CONFIG_CYCLIC is not set, struct cyclic_info is + * zero-size structure and does not add any space here. + */ + struct cyclic_info cyclic; }; #if CONFIG_IS_ENABLED(DM_MMC) -- cgit v1.2.3 From 7550bfdbf41b721f750a62b87a42a3329a2e2f81 Mon Sep 17 00:00:00 2001 From: Luke Wang Date: Tue, 25 Mar 2025 16:29:14 +0800 Subject: mmc: mmc_boot: Support Sandisk and Micron eMMC BOOT/RPMB hardware partition resizing Current mmc bootpart-resize command only support Samsung eMMC BOOT/RPMB hardware partition resizing. Add Sandisk and Micron eMMC BOOT/RPMB hardware partition resizing support. The commands and parameters for resizing partitions are different for each manufacturer. Select the corresponding function according to CID. Signed-off-by: Luke Wang Reviewed-by: Marek Vasut Signed-off-by: Peng Fan --- include/mmc.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/mmc.h b/include/mmc.h index 233a1d69afd..52cacfd0eab 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -79,6 +79,10 @@ struct bd_info; #define IS_SD(x) ((x)->version & SD_VERSION_SD) #define IS_MMC(x) ((x)->version & MMC_VERSION_MMC) +#define CID_MANFID_MICRON 0x13 +#define CID_MANFID_SAMSUNG 0x15 +#define CID_MANFID_SANDISK 0x45 + #define MMC_DATA_READ 1 #define MMC_DATA_WRITE 2 @@ -112,6 +116,7 @@ struct bd_info; #define MMC_CMD62_ARG1 0xefac62ec #define MMC_CMD62_ARG2 0xcbaea7 +#define MMC_CMD62_ARG_SANDISK 0x254ddec4 #define SD_CMD_SEND_RELATIVE_ADDR 3 #define SD_CMD_SWITCH_FUNC 6 @@ -205,6 +210,7 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx) /* * EXT_CSD fields */ +#define EXT_CSD_BOOT_SIZE_MULT_MICRON 125 /* R/W, vendor specific field */ #define EXT_CSD_ENH_START_ADDR 136 /* R/W */ #define EXT_CSD_ENH_SIZE_MULT 140 /* R/W */ #define EXT_CSD_GP_SIZE_MULT 143 /* R/W */ -- cgit v1.2.3