Commit a7f852b6885dc7b89741b1e76921e160b9c9877b

Authored by Diego Santa Cruz
Committed by Pantelis Antoniou
1 parent f8e89d6716

mmc: read the size of eMMC enhanced user data area

This modification reads the size of the eMMC enhanced user data area
upon initialization of an mmc device, it will be used later by
mmcinfo.

Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>

Showing 2 changed files with 19 additions and 0 deletions Side-by-side Diff

... ... @@ -1031,6 +1031,21 @@
1031 1031 has_parts = true;
1032 1032 }
1033 1033  
  1034 + mmc->enh_user_size =
  1035 + (ext_csd[EXT_CSD_ENH_SIZE_MULT+2] << 16) +
  1036 + (ext_csd[EXT_CSD_ENH_SIZE_MULT+1] << 8) +
  1037 + ext_csd[EXT_CSD_ENH_SIZE_MULT];
  1038 + mmc->enh_user_size *= ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE];
  1039 + mmc->enh_user_size *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
  1040 + mmc->enh_user_size <<= 19;
  1041 + mmc->enh_user_start =
  1042 + (ext_csd[EXT_CSD_ENH_START_ADDR+3] << 24) +
  1043 + (ext_csd[EXT_CSD_ENH_START_ADDR+2] << 16) +
  1044 + (ext_csd[EXT_CSD_ENH_START_ADDR+1] << 8) +
  1045 + ext_csd[EXT_CSD_ENH_START_ADDR];
  1046 + if (mmc->high_capacity)
  1047 + mmc->enh_user_start <<= 9;
  1048 +
1034 1049 /*
1035 1050 * Host needs to enable ERASE_GRP_DEF bit if device is
1036 1051 * partitioned. This bit will be lost every time after a reset
... ... @@ -147,6 +147,8 @@
147 147 /*
148 148 * EXT_CSD fields
149 149 */
  150 +#define EXT_CSD_ENH_START_ADDR 136 /* R/W */
  151 +#define EXT_CSD_ENH_SIZE_MULT 140 /* R/W */
150 152 #define EXT_CSD_GP_SIZE_MULT 143 /* R/W */
151 153 #define EXT_CSD_PARTITION_SETTING 155 /* R/W */
152 154 #define EXT_CSD_PARTITIONS_ATTRIBUTE 156 /* R/W */
... ... @@ -319,6 +321,8 @@
319 321 u64 capacity_boot;
320 322 u64 capacity_rpmb;
321 323 u64 capacity_gp[4];
  324 + u64 enh_user_start;
  325 + u64 enh_user_size;
322 326 block_dev_desc_t block_dev;
323 327 char op_cond_pending; /* 1 if we are waiting on an op_cond command */
324 328 char init_in_progress; /* 1 if we have done mmc_start_init() */