8.1.4. 测试指南

8.1.4.1. 测试的配置

  1. 需要按照 调试指南 使能调试开关

  2. 编译 mtd-util 中的 Flash 工具

8.1.4.2. 测试的命令

查看分区的信息:

mtd_debug info <device>

e.g.
mtd_debug info /dev/mtd0

擦除数据:

mtd_debug erase <device> <offset> <len>

e.g.
mtd_debug erase /dev/mtd0 0x0 0x40000

写入数据:

mtd_debug write <device> <offset> <len> <source-filename>

e.g.
mtd_debug write /dev/mtd0/ 0 0x40000 data.bin

读取数据:

mtd_debug read <device> <offset> <len> <dest-filename>

e.g.
mtd_debug read /dev/mtd0/ 0 0x40000 data.bin

8.1.4.3. 读写的测试

测试写入到 Flash 的数据是否被加密:

  1. 写之前注意确认 SPI_ENC 没有被 Bypass

    cat /sys/devices/platform/soc/18100000.spienc/bypass
    

    应得到

    bypass = 0
    
  2. 写入测试数据

    mtd_debug write /dev/mtd0/ 0 0x40000 data.bin
    
  3. Bypass SPI_ENC 然后读取 Flash Raw data

    echo "1" > /sys/devices/platform/soc/18100000.spienc/bypass
    mtd_debug read /dev/mtd0/ 0 0x40000 raw_data.bin
    
  4. 对比两份数据,应该不同

测试 Bypass 写入的数据没有被加密:

  1. 设置 Bypass

    echo "1" > /sys/devices/platform/soc/18100000.spienc/bypass
    
  1. 写入测试数据

    mtd_debug write /dev/mtd0/ 0 0x40000 data.bin
    
  2. 读取数据

    mtd_debug read /dev/mtd0/ 0 0x40000 raw_data.bin
    
  3. 对比两份数据,应该相同