SD 和 MMC 块设备属性

这些属性是为与 SD 或 MMC 设备关联的块设备定义的。

以下属性是可读/写的。

force_ro

即使写保护开关关闭,也强制只读访问。

SD 和 MMC 设备属性

所有属性都是只读的。

cid

卡片识别寄存器

csd

卡片特定数据寄存器

scr

SD 卡配置寄存器(仅限 SD)

date

生产日期(来自 CID 寄存器)

fwrev

固件/产品修订版本(来自 CID 寄存器)(仅限 SD 和 MMCv1)

hwrev

硬件/产品修订版本(来自 CID 寄存器)(仅限 SD 和 MMCv1)

manfid

制造商 ID(来自 CID 寄存器)

name

产品名称(来自 CID 寄存器)

oemid

OEM/应用程序 ID(来自 CID 寄存器)

prv

产品修订版本(来自 CID 寄存器)(仅限 SD 和 MMCv4)

serial

产品序列号(来自 CID 寄存器)

erase_size

擦除组大小

preferred_erase_size

首选擦除大小

raw_rpmb_size_mult

RPMB 分区大小

rel_sectors

可靠写入扇区计数

ocr

操作条件寄存器

dsr

驱动程序阶段寄存器

cmdq_en

命令队列已启用

1 => 已启用,0 => 未启用

关于擦除大小和首选擦除大小的说明

“erase_size”是以字节为单位的擦除操作的最小大小。对于 MMC,“erase_size”是卡报告的擦除组大小。请注意,“erase_size”不适用于 trim 或 secure trim 操作,其中最小大小始终为一个 512 字节扇区。对于 SD,如果卡是块寻址的,则 “erase_size” 为 512,否则为 0。

SD/MMC 卡可以擦除任意大的区域,直到包括整张卡。当擦除大面积区域时,出于以下三个原因,最好将其分成较小的块进行擦除:

  1. 单个擦除命令将使卡上的所有其他 I/O 等待。如果要擦除整张卡,这不是问题,但是擦除一个分区将使同一张卡上另一个分区的 I/O 在擦除期间等待,这可能需要几分钟。

  2. 能够告知用户擦除进度。

  3. 擦除超时时间变得太大而没有太大用处。因为擦除超时时间包含一个乘以擦除区域大小的余量,所以对于大区域,该值最终可能会达到几分钟。

“erase_size”不是擦除的最有效单元(特别是对于 SD,它只是一个扇区),因此 “preferred_erase_size” 为擦除大区域提供了良好的块大小。

对于 MMC,如果卡指定了高容量擦除大小,则 “preferred_erase_size” 为该大小,否则它基于卡的容量。

对于 SD,“preferred_erase_size” 是卡指定的分配单元大小。

“preferred_erase_size” 以字节为单位。

关于 raw_rpmb_size_mult 的说明

“raw_rpmb_size_mult” 是 128kB 块的倍数。

RPMB 大小(以字节为单位)通过以下公式计算

RPMB 分区大小 = 128kB x raw_rpmb_size_mult