8.1.3. 调试指南
8.1.3.1. 调试开关
可通过内核配置使能 SPI_ENC 模块的 DEBUG 选项。(参考:快速入门 - 编译概述 - Kernel配置):
make menuconfig
进入内核的配置界面:
Linux
Kernel hacking
ZX Debug
[*] SPI ENC driver debug
勾选使能该 DEBUG 选项后:
SPI_ENC 的驱动源码将以
-O0
编译SPI_ENC 驱动中的 pr_dbg() 和 dev_dbg() 调试信息会被编译
Sysfs 中新增
/sys/devices/platform/soc/18100000.spienc/bypass
节点
如果需要看到 pr_dbg() 和 dev_dbg() 的打印信息,还需要设置 loglevel=8
。
若需要在启动过程中即可看到打印,需要在 env.txt
中修改 bootargs,增加 loglevel=8
。
若仅需要在板子启动到 Linux shell 后使能相关打印,可以通过下列命令调整 loglevel:
echo 8 > /proc/sys/kernel/printk
8.1.3.2. Sysfs 节点
SPI_ENC 驱动在 /sys/devices/platform/soc/
目录下创建了 Sysfs 节点 18100000.spienc/
其中通过下列命令可读取当前硬件状态:
cat /sys/devices/platform/soc/18100000.spienc/status
如果按照上一节的指引,使能了调试开关,还可以看到节点:
/sys/devices/platform/soc/18100000.spienc/bypass
通过下列命令,可以开关 ByPass SPIENC 加密功能:
echo "1" > /sys/devices/platform/soc/18100000.spienc/bypass
echo "0" > /sys/devices/platform/soc/18100000.spienc/bypass
ByPass 之后,读写 SPI 存储的数据都是原始数据,不会做加密或者解密。
小技巧
Bypass 是一个调试功能,如果没有按照上节的指引勾选 [*] SPI ENC driver debug,则 Sysfs 中没有 bypass 文件节点。