返回所有文章
工程 / TSENGCHEN BLOG

RV1126B-NPU-Temperature-Limit-Verification

09_Engineering/RV1126B NPU temputure monitor · RV1126B-NPU-Temperature-Limit-Verification

09_Engineering · 第 6 / 7 篇

保留原笔记正文与技术内容,仅脱敏敏感信息。配图按作者要求保留原样。

RV1126B NPU 温度限频验证

本验证基于 thermal_test_report.md 的客户工况:pose_terminal_demo、IMX415 视频流、NPU 原先锁定 700 MHz、每 10 秒采样一次。

验证目标

确认已烧写的新 DTB 包含 rockchip,temp-freq-table,并确认温度超过阈值后,NPU 实际频率不高于表中限制。

本次临时表为:

rockchip,temp-freq-table = <
	50000  600000
	60000  510000
	70000  396000
>;
温度严格超过NPU 最高频率
50°C600 MHz
60°C510 MHz
70°C396 MHz

报告中的基线是 NPU+视频稳态约 75.2°C、NPU 700 MHz,因此这组临时阈值能覆盖实际发热场景。

测试脚本

本地脚本:

/home/user/workspace/docs/private-docs/Engineering/Linux内核/RV1126B/verify_npu_temp_limit.sh

脚本在板端完成以下检查:

  1. 查找 cpu-thermal 和 NPU devfreq 节点。
  2. 从运行中的 DTB 读取并解析 npu-opp-table/rockchip,temp-freq-table。
  3. 每 10 秒记录温度、NPU cur_freq、RKNPU 负载和应有频率上限。
  4. 温度超过阈值且频率不高于上限时标记 PASS,否则标记 FAIL。

temp-freq-table 的频率单位是 kHz;NPU cur_freq 通常为 Hz,脚本会自动换算为 kHz 再比较。

执行

将脚本推送到已烧写的板卡。把 <板卡IP> 替换为目标板的 ADB 地址:

hadb -s <板卡IP>:5555 push \
  /home/user/workspace/docs/private-docs/Engineering/Linux内核/RV1126B/verify_npu_temp_limit.sh \
  /tmp/verify_npu_temp_limit.sh

终端一启动采样脚本:

hadb -s <板卡IP>:5555 shell \
  'sh /tmp/verify_npu_temp_limit.sh -d 600 -i 10'

终端二启动与报告相同的客户场景:

hadb -s <板卡IP>:5555 shell pose_terminal_demo

脚本会在板端生成:

/tmp/npu-temp-freq.log

取回日志:

hadb -s <板卡IP>:5555 pull /tmp/npu-temp-freq.log .

结果判定

日志每行末尾为结果:

结果含义
BELOW_THRESHOLD温度尚未超过第一档,不能判断限频功能。
PASS温度已超过阈值,NPU 频率未超过对应上限。
FAIL温度已超过阈值,但 NPU 频率仍高于对应上限。

脚本结尾的 SUMMARY 中 fail=0 且 active_samples 大于 0,即为通过。

不要以报告中的 cool1 是否变化判断本次结果。cool1 属于原 thermal cooling-map 通道;本次验证的是 temp-freq-table 经 System Monitor 对 NPU Devfreq 的直接限制。

失败时检查

若脚本提示运行中 DTB 不存在 temp-freq-table,说明新 DTB 没有随内核镜像生效。

若出现 FAIL,保留 /tmp/npu-temp-freq.log,并读取:

hadb -s <板卡IP>:5555 shell \
  "dmesg | grep -Ei 'system.monitor|rknpu|devfreq'"

同时确认压测期间 /sys/kernel/debug/rknpu/load 有非零负载;空载时频率较低不能证明温度限频生效。

09_Engineering · 文档目录
上一篇RV1126B-NPU-Temperature-Limit-Test-Result下一篇RV1126B-System-Monitor-Overview