如何在eMMC用户区上创建多个SLC区域?

如何在eMMC用户区上创建多个SLC区域?

我必须对eMMC的UDA(用户数据区)进行分区(即硬件分区),如下所示:

  1. 第一个 336MB 区域应位于 pSLC 中。
  2. 接下来的 2GB 区域作为 MLC 分区。
  3. 其余区域应再次处于 pSLC 模式。

我已经将完整的 eMMC 区域作为 pSLC 完成,并使用以下命令进行工作:

mmc hwpartition user enh <start> <size> wrrel on complete

但是,我不知道如何用相同的命令实现上述 MLC 和 pSLC 的组合。

我已经尝试过以下命令,但它们都没有按预期工作。

  1. 两个地区都与完全的旗帜:

    mmc hwpartition 用户 enh "first_region_start" "first_region_size" wrrel on完全的

    mmc hwpartition 用户 enh "second_region_start" "second_region_size" wrrel on完全的

在这种情况下,它会失败,因为第一个完成标志将不允许第二个 pSLC 区域更新。

  1. 第一个区域标志和第二个区域完全的旗帜:

    mmc hwpartition 用户 enh "first_region_start" "first_region_size" wrrel on

    mmc hwpartition 用户 enh "second_region_start" "second_region_size" wrrel on完全的

这不会产生任何效果,也不会增强!重新启动电源后,它会显示完整的 eMMC 区域作为 MLC 本身。

谁能帮我弄清楚如何执行上述分区组合?

答案1

要从 u-boot 对 eMMC 进行分区,您需要执行 3 个步骤(即设置、检查、完成),然后重新启动:

=> mmc hwpartition (user | gp1 | gp2) "region_size" [enh wrrel on] set
=> mmc hwpartition (user | gp1 | gp2) [enh] "region_size" [wrrel on] check
=> mmc hwpartition (user | gp1 | gp2) [enh] "region_size" [wrrel on] complete

可选参数:

  • wrrel on :打开写入可靠性
  • enh :增强分区(将分区配置为SLC)。
    如果没有此参数,分区将默认采用 pSLC。

您应该将所有三个分区配置为一条“set”命令、一条“check”命令和一条“complete”命令。

对于您的情况,命令大致如下:

=> mmc hwpartition user 688128 enh wrrel on user 4194304 wrrel on user wrrel on set
=> mmc hwpartition user 688128 enh wrrel on user 4194304 wrrel on user wrrel on set
=> mmc hwpartition user 688128 enh wrrel on user 4194304 wrrel on user wrrel on set

笔记:

硬件分区是一次性可编程 (OTP) 的。一旦你这样做了'mmc hwpartition ...完成'并执行电源循环后,您的卡将被编程为您设置的任何分区。

相关内容