依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。
所在专栏 《元带你学: eMMC协议详解》
全文 1300字, 主要讲述写保护的用法, 写保护的类型。
Write Protect Management
为了允许主机保护数据不被擦除或覆盖写入,e•MMC应该支持两种级别的写保护命令:
(1)通过在CSD中设置永久或临时写保护位,可以对整个设备(包括引导区分区、通用区分区、RPMB分区和用户/增强用户数据区分区)进行写保护。
- 当永久写保护应用于整个设备时,它将覆盖当前在整个设备或特定段上启用的所有其他保护机制。CSD寄存器位和扩展CSD寄存器位不受此保护的影响。
- 当临时写保护为整个设备启用时,它只适用于那些尚未被其他机制保护的段。详见表13。
(2)设备的特定段可能是永久保护、上电保护或临时写保护。EXT_CSD中的ERASE_GROUP_DEF决定了段的大小。当设置为0时,段大小以CSD中指定的WP_GRP_SIZE擦除组为单位定义。当设置为1时,段大小以EXT_CSD中指定的HC_WP_GRP_SIZE擦除组为单位定义。在应用程序中,主机必须始终对设备使用相同的ERASE GRoUP DEF值。
SET_WRITE_PROT命令设置指定写保护组的写保护,组的写保护类型由US_PERM_WP_EN (EXT_CSD[171]位2)和US_PWR_WP_EN (EXT_CSD[171]位0)决定SET_WRITE_PROT(CMD28)命令,当保护已经在段中启用时,表14显示保护使能位的不同组合的影响。
CLR_WRITE_PROT命令用来清除指定地址写保护组的临时写保护。如果将CLR_WRITE_PROT命令应用于具有永久保护或上电写保护的写保护组,则该命令将失败。可以通过在EXT_CSD USER_WP字节中设置CD_PERM_WP_DIS、US_PERM_WP_DIS和US_PWR_WP_DIS位来禁用主机为整个设备设置永久保护以及为特定段设置永久保护和上电保护的功能。建议关闭所有不需要的保护模式,防止恶意或无意设置未使用的写保护模式。
主机可以使用SEND WRITE_PROT_TYPE命令(CMD31)检查给定段的写保护状态。当启用完全设备保护时,所有段将显示为具有永久保护。SEND_WRITE_PROT和SEND_WRITE_PROT_TYPE命令类似于单个块读命令。设备发送一个包含32或64个写保护位(代表从指定地址开始的32个写保护组)的数据块,后跟16个CRC位。写保护命令中的地址字段是以字节为单位的组地址,对于密度不超过2GB的,以扇区为单位,对于密度大于2GB的。对于高达2GB的密度,设备将忽略所有低于组大小的lsb。如果主机提供超出范围的地址作为CMD28、CMD29或CMD30的参数,设备将拒绝该命令,设置address out of range位并保持在Tran状态。
参考
免责声明:
本文根据公开信息整理,旨在介绍更多的存储知识,所载文章仅为作者观点,不构成投资或商用建议。本文仅用于学习交流, 不允许商用。若有疑问或有侵权行为请联系作者处理。