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