Nand 測試

存取所需裝置

為了測試特定裝置,系統的其他部分不得使用該裝置。方法有兩種:

  • 避免其他驅動程式繫結到裝置。這可能包括針對驅動程式 (通常會繫結至所需裝置) 的驅動程式修改繫結規則來建構系統,或是傳遞核心指令列引數以停用該驅動程式庫。

  • 為繫結至所需裝置的裝置解除繫結。

例如,為了對核心和驅動程式庫使用測試工具,可能會移除 nandpart 裝置,如下所示:

$ unbind /dev/sys/platform/05:00:f/aml-raw_nand/nand/fvm

注意:您必須一併移除 nandpart 所建立的所有其他裝置。使用 driver dump 檢查裝置樹狀結構。

通訊協定測試

nand-test 是一項整合測試,用於執行 n 和通訊協定驅動程式的基本測試。

舉例來說,這個指令會測試現有的 RAM 和裝置,確保測試不會修改任何外區塊 [100, 109] 以外的任何內容:

$ /boot/test/sys/nand-test --device /dev/sys/platform/00:00:2e/nand-ctl/ram-nand-0 --first-block 100 --num-blocks 10

正確性測試

nand-util 是一項疑難排解工具,可執行簡單的讀取可靠性測試。

$ nand-util --device /dev/sys/platform/00:00:2e/nand-ctl/ram-nand-0 --check

檢查 / 操弄

$ nand-util --device /dev/sys/platform/05:00:f/aml-raw_nand/nand --info
$ nand-util --device /dev/sys/platform/05:00:f/aml-raw_nand/nand/fvm --read --block 1 --page 2

擷取圖片

nand-util 也可用來擷取 N 和內容的圖片:

$ unbind /dev/sys/platform/05:00:f/aml-raw_nand/nand/fvm/ftl/block
$ unbind /dev/sys/platform/05:00:f/aml-raw_nand/nand/fvm/ftl
$ nand-util --device /dev/sys/platform/05:00:f/aml-raw_nand/nand/fvm --save --file /tmp/image

將圖片檔傳輸到主機:

$ out/default/host-tools/netcp :/tmp/image /tmp/saved_image_file

重播

您可以使用 nand-loader 將已儲存的 nand 圖片載入在 RAM 和裝置之上。

首先,請將圖像傳輸到執行 Zircon 的裝置。例如,在主機上:

echo /nand.dmp=/tmp/saved_image_file > /tmp/manifest.txt
out/default/host-tools/minfs /tmp/image.dsk create --manifest /tmp/manifest.txt
fx set bringup.x64
fx build
fx qemu -k -- -hda /tmp/image.dsk

接著,在 zircon 中:

$ mkdir data/a
$ mount /dev/class/block/000 data/a
$ nand-loader data/a/nand.dmp