我必须对eMMC的UDA(用户数据区)进行分区(即硬件分区),如下所示:
- 第一个 336MB 区域应位于 pSLC 中。
- 接下来的 2GB 区域作为 MLC 分区。
- 其余区域应再次处于 pSLC 模式。
我已经将完整的 eMMC 区域作为 pSLC 完成,并使用以下命令进行工作:
mmc hwpartition user enh <start> <size> wrrel on complete
但是,我不知道如何用相同的命令实现上述 MLC 和 pSLC 的组合。
我已经尝试过以下命令,但它们都没有按预期工作。
- 两个地区都与完全的旗帜:
mmc hwpartition 用户 enh "first_region_start" "first_region_size" wrrel on完全的
mmc hwpartition 用户 enh "second_region_start" "second_region_size" wrrel on完全的
在这种情况下,它会失败,因为第一个完成标志将不允许第二个 pSLC 区域更新。
- 第一个区域放标志和第二个区域完全的旗帜:
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 ...完成'并执行电源循环后,您的卡将被编程为您设置的任何分区。