Edit online

测试指南

5 Nov 2024
Read time: 2 minute(s)

测试的配置

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

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

    mtd-util 的使能方法:

    make menuconfig
    

    然后勾选:

    Third-party packages  --->
        [*] mtd, jffs2 and ubi/ubifs tools  --->
            [*]   mtd_debug
    

测试的命令

查看分区的信息:

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

读写的测试

测试写入到 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
    
  2. 写入测试数据

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

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