diff options
author | Loic Pallardy <loic.pallardy-ext@stericsson.com> | 2012-11-17 18:08:24 -0500 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2012-12-06 13:54:46 -0500 |
commit | 090d25fe224c0933d2b261aad91532e725c1d889 (patch) | |
tree | ac1ad802de5be2f7acc6d7552c04885ee158d80e /drivers/mmc/core | |
parent | ed9dbb6effc3516a1211a936be9bd67c03fdf858 (diff) |
mmc: core: Expose access to RPMB partition
Following JEDEC standard, if the mmc supports RPMB partition,
a new interface is created and exposed via /dev/block.
Users will be able to access RPMB partition using standard
mmc IOCTL commands.
Signed-off-by: Alex Macro <alex.macro@stericsson.com>
Signed-off-by: Loic Pallardy <loic.pallardy@stericsson.com>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Johan Rudholm <johan.rudholm@stericsson.com>
Acked-by: Krishna Konda <kkonda@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/core')
-rw-r--r-- | drivers/mmc/core/mmc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 8c2fa8002abb..6c5576628ef1 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c | |||
@@ -491,6 +491,17 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) | |||
491 | 491 | ||
492 | card->ext_csd.rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; | 492 | card->ext_csd.rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; |
493 | card->ext_csd.rst_n_function = ext_csd[EXT_CSD_RST_N_FUNCTION]; | 493 | card->ext_csd.rst_n_function = ext_csd[EXT_CSD_RST_N_FUNCTION]; |
494 | |||
495 | /* | ||
496 | * RPMB regions are defined in multiples of 128K. | ||
497 | */ | ||
498 | card->ext_csd.raw_rpmb_size_mult = ext_csd[EXT_CSD_RPMB_MULT]; | ||
499 | if (ext_csd[EXT_CSD_RPMB_MULT]) { | ||
500 | mmc_part_add(card, ext_csd[EXT_CSD_RPMB_MULT] << 17, | ||
501 | EXT_CSD_PART_CONFIG_ACC_RPMB, | ||
502 | "rpmb", 0, false, | ||
503 | MMC_BLK_DATA_AREA_RPMB); | ||
504 | } | ||
494 | } | 505 | } |
495 | 506 | ||
496 | card->ext_csd.raw_erased_mem_count = ext_csd[EXT_CSD_ERASED_MEM_CONT]; | 507 | card->ext_csd.raw_erased_mem_count = ext_csd[EXT_CSD_ERASED_MEM_CONT]; |