我在使用焊接在 i.MX6 嵌入式模块上的 eMMC 存储的 U-Boot mmc hwpartition 时遇到一些问题:
TX6UL U-Boot > mmc info
Device: FSL_SDHC
Manufacturer ID: 11
OEM: 100
Name: 004G6
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 8 MiB
Bus Width: 4-bit
Erase Group Size: 4 MiB
HC WP Group Size: 4 MiB
User Capacity: 8 MiB WRREL
Boot Capacity: 2 MiB ENH
RPMB Capacity: 512 KiB ENH
GP1 Capacity: 8 MiB WRREL
GP2 Capacity: 1.8 GiB ENH WRREL
TX6UL U-Boot > mmc hwpartition set user wrrel on complete
Partition configuration:
No enhanced user data area
User partition write reliability: on
No GP1 partition
No GP2 partition
No GP3 partition
No GP4 partition
Card already partitioned
Failed!
看来mmc之前已经进行了硬件分区。根据修补一旦硬件分区,就不可逆。
焊好的eMMC真的没有办法再重新分区吗?如果我需要其他硬件分区,是否必须扔掉整个 i.MX6 模块并购买一个新模块?
答案1
是的 — 硬件分区是一项永久性操作,只能执行一次。如果您想重新进行硬件分区,则需要更换 eMMC 或购买新板。
硬件分区(不要与使用 fdisk 等程序的“正常”分区混淆)包括:
- 进入增强模式(MLC->SLC)
- 对 GPP(通用分区)进行分区
- 启用写入可靠性模式。
这些设置存储在 eMMC 的 ECSD(扩展 CSD)寄存器中,uBoot 从中读取这些设置。
来自 4.51 JEDEC 标准(第 19 页):
引导和 RPMB 区域分区的大小和属性由存储器制造商定义(只读),而通用区域分区的大小和属性只能由主机在设备生命周期中编程一次(一次性可编程) 。
查看您的输出,似乎已经设置了写入可靠性,因此无法重新分区是有道理的。