访问所需的设备
为了测试特定设备,其他设备不得在使用该设备 系统自身的功能您可以采用下列两种方法:
阻止其他驱动程序绑定到设备。这可能涉及 为通常绑定的驱动程序修改了绑定规则的系统 或传递内核命令行参数以停用 该驾驶员。
解除绑定至所需设备的绑定。
例如,要对核心 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