RK3588 配置、DTS 与实际启用矩阵
1. Defconfig明确项
三份主要Rockchip defconfig均包含:
1 | CONFIG_HW_RANDOM=y |
这说明HWRNG Core、Rockchip RNG和TPM Core/Infineon transport被编入,但设备是否出现仍取决于DTS与硬件。
2. 固定构建
无论上述选项,drivers/char/Makefile固定构建:
mem.o;random.o;misc.o。
实际node还受:
CONFIG_DEVMEM;CONFIG_DEVPORT;CONFIG_PRINTK;- devtmpfs/udev;
- security policy。
3. Rockchip TRNG
rk3588s.dtsi定义rng@fe378000:
rockchip,trngv1;- secure SCMI clock/reset;
- 默认disabled。
rk3588-linux.dtsi和rk3588-android.dtsi将&rng设为okay。使用这些include的板型通常会probe rockchip-rng。
4. TRNG运行链
1 | DT rng node |
/dev/random不是直接映射TRNG寄存器。
5. TPM
Defconfig启用TPM不代表RK3588 SoC内建离散TPM。SoC DTS未提供TPM设备;具体板必须有:
- I2C TPM节点;
- 实际Infineon芯片;
- 电源/reset/IRQ;
- 正确compatible和address。
无节点时TPM Core存在但无/dev/tpm0。
6. 未显式启用
Rockchip主要defconfig未显式包含:
VIRTIO_CONSOLE;TTY_PRINTK;PRINTER/PPDEV;- IPMI;
- Xillybus;
- TPM SPI/generic I2C/fTPM;
- OP-TEE RNG;
- SMCCC TRNG。
最终配置可能由fragment/select改变,应以构建后的.config为准。
7. 与其它子系统边界
| 目标 | 实际目录 |
|---|---|
| UART/console | drivers/tty/serial |
| RK watchdog | drivers/watchdog |
| OP-TEE | drivers/tee |
| Crypto accelerator | drivers/crypto/rockchip |
| OTP/eFuse | nvmem driver |
| GPIO | drivers/gpio |
| DRM/GPU | drivers/gpu |
不要因为这些设备提供字符node就认为实现位于drivers/char。
8. 运行时核对
1 | zcat /proc/config.gz | grep -E 'HW_RANDOM|TCG_TPM|DEVMEM|VIRTIO_CONSOLE|IPMI' |
9. DTB核对
1 | dtc -I fs -O dts /sys/firmware/devicetree/base | \ |
检查status和clock/reset phandle是否指向运行固件支持的SCMI provider。
TPM应在最终DTB中搜索tpm@及实际compatible。
10. 随机数启动验证
1 | cat /proc/sys/kernel/random/entropy_avail |
量产测试应覆盖cold boot、无网络、无存储seed、低温和重复重启,确认CRNG能及时初始化且输出不重复。
11. 安全建议
- 保留Rockchip TRNG但验证quality与健康状态;
- 可信bootloader注入唯一seed;
- 应用使用getrandom;
-限制/dev/hwrng普通用户访问; - 开启STRICT_DEVMEM或关闭DEVMEM;
- TPM只启用实际transport;
- 未使用的legacy字符驱动关闭。
12. 结论
RK3588在本目录的主路径是“内核CRNG + Rockchip TRNG + 可选板载TPM”。其它大量驱动主要用于跨平台源码共享,不能由文件存在推断为RK3588功能。
正在加载留言…