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 或安全 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