Nand Testing

访问所需设备

为了测试特定设备,该设备不得被系统的其他部分使用。为此,你可以采用以下两种方法:

  • 防止其他驱动程序绑定到设备。这可能涉及通过以下方式构建系统:为通常绑定到所需设备的驱动程序构建经过修改的绑定规则,或者传递内核命令行参数以停用该驱动程序。

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

例如,为了使用测试工具测试核心 Nand 驱动程序,可以按如下方式移除 Nandpart 设备:

$ unbind /dev/sys/platform/05:00:f/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/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 还可用于获取 nand 内容的图片:

$ 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-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

然后,在锆石内:

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