【eMMC协议】6.6.11 - 6.6.14

6.6.11 Sanitize

  1. 除TRIM和Erase之外,Sanitize操作是用于根据安全删除类型从设备中删除数据的功能
    在这里插入图片描述

  2. Sanitize操作的使用要求设备从未映射的用户地址空间中物理删除数据。 通过向ECSD[165]Sanitize_START写入值来启动Sanitize操作
    在这里插入图片描述

当设备正在执行Sanitize操作时,busy bit置位。Sanitize操作会在busy状态中持续进行,除非有以下几种情况发生:

  • Sanitize操作已完成
  • 产生HPI
  • 上电失败
  • 硬件复位
  1. Sanitize操作完成后,未映射的主机地址空间中不应存在任何数据。如果Sanitize操作因HPI、上电失败、CMD0或硬件重置而中断,则无法保证未映射主机地址空数据状态。主机必须通过写入sanitize_START[165]重新启动Sanitize操作,并等待操作完成,以确保未映射的主机地址空间数据被清理完成。
  2. 由于主机无法访问正在进行Sanitize操作的区域,因此需要此功能的应用程序必须与各个设备制造商合作,以确保此操作正常执行,并了解对设备可靠性的影响

6.6.12 Discard

  1. discard操作类似于trim。discard功能允许主机识别不再需要的数据,以便设备在后台擦除操作期间根据需要擦除数据。 被标记应用discard操作的数据应该是不再需要的。根据设备的策略,标记discard后的数据,部分或者全部原始数据仍能被host找到。host不可再访问的数据部分可以被移除或取消映射,跟trim操作一致。
  2. discard和trim之间的区别在于,对discard的区域的读取可以返回部分或全部原始数据。但是,在trim的情况下,取消映射或删除整个区域,数据会变为0或者1。
  3. 当执行Sanitize时,Sanitize命令只能删除由discard命令未映射的数据部分。当应用Sanitize时,设备无法保证discard的数据完全从设备中删除。
  4. discard三步骤。 首先,host使用ERASE_GROUP_START(CMD35)命令定义范围的起始地址,接下来,它使用ERASE-GROUP_END(CMD36)命令定义该范围的最后地址,最后,它通过发出ERASE(CMD38)命令开始擦除过程。在discard操作的情况下,CMD35和CMD36写入的都是写入块的地址,而不是擦除组的地址。
  5. 如果在定义的擦除序列之外接收到discard命令(CMD35、CMD36或CMD38),则设备应设置状态寄存器中的ERASE_SEQ_ERROR位,并重置整个cmd序列。
  6. 如果主机提供超出范围的地址作为CMD35或CMD36的自变量,则设备将拒绝该命令,以address_out_of_range位设置进行响应,并重置整个擦除序列。
  7. 如果收到“非擦除”命令(CMD35、CMD36、CMD38或CMD13均未收到),则设备应以erase_RESET位设置进行响应,重置擦除序列并执行最后一个命令。未寻址到所选设备的命令不会中止擦除序列。
  8. 如果丢弃范围包括写保护块,则应保持其完整,并且仅擦除未受保护的块。应设置状态寄存器中的WP_ERASE_SKIP状态位。如上所述,对于块写入,设备将通过保持DAT0为低来指示丢弃命令正在进行中。实际擦除时间可能相当长,主机可能会发出CMD7以取消选择设备。
  9. 重置设备(使用CMD0、CMD15或e•MMC的硬件重置)或电源故障将终止任何挂起或活动的“放弃”命令。这可能会使操作中涉及的数据处于未知状态。

6.6.13 Secure Erase

  1. 除了标准的erase命令外,还有一个可选的secure erase命令。secure erase命令与基本erase命令(如6.6.9所述)的不同之处在于,它要求设备在发出命令时在memory上执行擦除操作,并要求设备和主机等待操作完成后再转到下一个设备操作。
  2. 此命令允许具有高安全要求的应用程序请求设备执行安全操作,同时接受可能的擦除时间性能影响。 安全擦除命令以与6.6.9中概述的擦除命令相同的方式执行,不同之处在于擦除(CMD38)命令是在bit 31设置为1且其他bit位设置为0的情况下执行的。
  3. 重置设备(使用CMD0、CMD15或e•MMC的硬件重置)或电源故障将终止任何挂起或活动的安全擦除命令。这可能会使操作中涉及的数据处于未知状态。

6.6.14 Secure Trim

  1. secure trim命令与secure erase命令非常相似。secure trim命令对写入块而不是擦除组执行安全清除操作。为了最大限度地减少对设备性能和可靠性的影响,通过执行两个不同的步骤来完成secure trim操作。
  2. 在secure trim步骤1中,主机定义了要标记用于安全清除的写入块的范围。此步骤不执行实际的操作。通过使用ERASE_GROUP_START(CMD35)命令定义范围的起始地址,然后使用ERASE_GROUP_END(CMD36)命令定义该范围的最后地址来标记块。在secure trim的情况下,ERASE_GROUP_START和ERASE_GROUP_END参数都标识写入块地址。一旦块的范围已经被识别,就应用ERASE(CMD 38)。这就完成了secure trim步骤1。
  3. secure trim步骤1可以重复多次,其间允许使用其他命令,直到识别出所有需要清除的写入块为止。建议在尽可能多的块上执行secure trim步骤1,以提高secure trim操作的效率。
  4. 步骤2, host对已经选中范围内的地址发出ERASE_GROUP_START(CMD35)和ERASE_GROUP_END(CMD36)命令。需要注意的是,这些命令使用的参数会被忽略。接着发送ERASE(CMD 38)操作,其位31和15设置为1,其余参数位设置为0。这二步实际执行时,根据7.4.120章节中概述的安全清除类型以及这些块的任何副本。这完成了安全TRIM操作,会对第一步中标记的所有写块执行安全清除。在执行第一步和第二步的操作期间,host可以向EMMC发送其他命令。
  5. host也会在没有执行secure trim第一步的情况下发出secure trim的第二步操作。这种情况或许是出现电源故障的情况后,EMMC根据firmware的log记录,完成未完成的secure trim操作。如果仅执行了secure trim第二步操作,但并没有标记到要擦除的写块时,再次执行安全TRIM第二步动作不会对EMMC 内部生效。
  6. 一般建议执行secure trim操作后的第一步标记了要擦除的写块时,需要host将此块视为已经擦除。但如果host在标记为擦除后又进行了写入,那么这个块将不会被标记,host 也不会对其进行擦除。但这个块之前已经标记过的其他块仍为擦除状态。
  7. 如果host需要借助secure trim命令从EMMC中删除数据时,首先需要确保第一步动作已经生效,进而在下次发出第二步时,能够安全地将覆盖的数据从EMMC中移除。
  8. 如果在EMMC执行安第一步或者第二步时收到“非擦除”命令(即CMD35、CMD36、CMD38或CMD13之外的命令),EMMC会设置ERASE_RESET位并响应,随后在没有完成助secure trim操作以及没有执行CMD13命令时对助secure trim的第一步或者第二步进行复位。对于选中的EMMC在执行助secure trim操作时,没有完成寻址的情况下不会中止助secure trim序列。host 可以在进行EMMC多次执行迭代secure trim步骤1和发送secure trim步骤2之前,下发其他命令。但是在每个步骤执行期间EMMC不能被中断。
  9. 如果在secure trim步骤1和步骤2之间发生电源故障或复位,则EMMC会为安全清除操作标识的块进行标记。下次EMMC看到secure trim第二步时,将清除在电源故障或复位之前标记的块以及自那时起标识的任何块。
  10. 在步骤1或步骤2中重置设备(使用CMD0、CMD15或e•MMC的硬件重置)或电源故障将终止任何挂起或活动的安全微调命令。这可能会使操作中涉及的数据处于未知状态。如果擦除范围包括写保护块,则应保持其完整,并且仅擦除未受保护的块。应设置状态寄存器中的WP_ERASE_SKIP状态位。
  11. 如果EMMC在secure trim第二步没有执行的情况下,需要标记一个为Secure Erase的写块,则设备可以将该任务置于后台进行处理。如上所述,EMMC会通过拉低DAT0数据信号线来说明Secure Trim Step 1或Secure Trim Step 2正在进行中。由于实际操作时间可能相当长,所以host可以发出CMD7取消选择设备。如果在Secure Trim Step 1和Secure Trim Step 2之间更改写块大小,但仍然会在后续操作中执行第一步使用的写块大小。
  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blank_time

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值