Nand Testing

访问所需的设备

为了测试特定设备,其他设备不得在使用该设备 系统自身的功能您可以采用下列两种方法:

  • 阻止其他驱动程序绑定到设备。这可能涉及 为通常绑定的驱动程序修改了绑定规则的系统 或传递内核命令行参数以停用 该驾驶员。

  • 解除绑定至所需设备的绑定。

例如,要对核心 Nand 驱动程序 nandpart 使用测试工具, 可能会按如下方式移除设备:

$ unbind /dev/sys/platform/raw_nand/aml-raw_nand/nand/fvm

请注意,还必须移除 nandpart 创建的所有其他设备。使用 driver dump,用于检查设备树。

协议测试

nand-test 是一种集成测试,可执行 nand 协议的基本测试 。

例如,此命令将测试现有的 ram-nand 设备, 测试不会修改除块 [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/raw_nand/aml-raw_nand/nand --info
$ nand-util --device /dev/sys/platform/raw_nand/aml-raw_nand/nand/fvm --read --block 1 --page 2

抓取图片

nand-util 也可用于获取 nand 内容的图片:

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

将图片文件传输到主机:

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

重放

可以使用 nand-loader 在 RAM-nand 设备上加载已保存的 Nand 映像。

首先,将映像传输到运行 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