访问所需设备
为了测试特定设备,该设备不得被系统的其他部分使用。为此,你可以采用以下两种方法:
防止其他驱动程序绑定到设备。这可能涉及通过以下方式构建系统:为通常绑定到所需设备的驱动程序构建经过修改的绑定规则,或者传递内核命令行参数以停用该驱动程序。
解除绑定到所需设备的绑定设备。
例如,为了使用测试工具测试核心 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