summaryrefslogtreecommitdiff
path: root/include/mmc.h
diff options
context:
space:
mode:
authorDiego Santa Cruz <Diego.SantaCruz@spinetix.com>2014-12-23 10:50:31 +0100
committerPantelis Antoniou <pantelis.antoniou@konsulko.com>2015-01-19 17:41:51 +0200
commit8dda5b0e60b84f2679bd51ae4bcdbe527fa438d4 (patch)
tree38e82ba899440bac1c981dbbea166146eeb7c586 /include/mmc.h
parentc599f53b5797ca2a07426002ef9ff64b8f52e5ae (diff)
downloadu-boot-imx-8dda5b0e60b84f2679bd51ae4bcdbe527fa438d4.zip
u-boot-imx-8dda5b0e60b84f2679bd51ae4bcdbe527fa438d4.tar.gz
u-boot-imx-8dda5b0e60b84f2679bd51ae4bcdbe527fa438d4.tar.bz2
mmc: extend the mmc hardware partitioning API with write reliability
The eMMC partition write reliability settings are to be set while partitioning a device, as per the eMMC spec, so changes to these attributes needs to be done in the hardware partitioning API. This commit adds such support. Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diffstat (limited to 'include/mmc.h')
-rw-r--r--include/mmc.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/mmc.h b/include/mmc.h
index aacf820..8d41234 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -155,6 +155,8 @@
#define EXT_CSD_MAX_ENH_SIZE_MULT 157 /* R */
#define EXT_CSD_PARTITIONING_SUPPORT 160 /* RO */
#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */
+#define EXT_CSD_WR_REL_PARAM 166 /* R */
+#define EXT_CSD_WR_REL_SET 167 /* R/W */
#define EXT_CSD_RPMB_MULT 168 /* RO */
#define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */
#define EXT_CSD_BOOT_BUS_WIDTH 177
@@ -207,6 +209,11 @@
#define EXT_CSD_ENH_USR (1 << 0) /* user data area is enhanced */
#define EXT_CSD_ENH_GP(x) (1 << ((x)+1)) /* GP part (x+1) is enhanced */
+#define EXT_CSD_HS_CTRL_REL (1 << 0) /* host controlled WR_REL_SET */
+
+#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 R1_ILLEGAL_COMMAND (1 << 22)
#define R1_APP_CMD (1 << 5)
@@ -337,10 +344,14 @@ struct mmc_hwpart_conf {
struct {
uint enh_start; /* in 512-byte sectors */
uint enh_size; /* in 512-byte sectors, if 0 no enh area */
+ unsigned wr_rel_change : 1;
+ unsigned wr_rel_set : 1;
} user;
struct {
uint size; /* in 512-byte sectors */
- int enhanced;
+ unsigned enhanced : 1;
+ unsigned wr_rel_change : 1;
+ unsigned wr_rel_set : 1;
} gp_part[4];
};