Atlas 300I A2卡的功耗读取不准问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:NA;
- 涉及功能:传感器;
- 触发条件:传感器值大于255。
- 业务表现:预期Atlas 300I A2的功耗传感器读值正常;实际Atlas 300I A2卡的功耗读取不准。
问题复现步骤
内部压测Atlas 300I A2的过程中发现带外Sensor显示的功耗数据与带内读取的数据不符。
- 带内显示
- BMC Sensor显示:
关键日志信息
通过查看compute组件的debug日志可以看到:
smbus读取到的是0xC92 = 3218,根据带外协议应该是3218 * 0.1 即为321.8,应该是正确读值,实际显示到Sensor确实异常值
定位过程
看一下传感器的reading是多少,最终显示的值是reading值经过公式计算后得出的.
NPU_1_0101010302下显示的是正常值,ThresholdSensor_GPUPower_0101010302的Reading显示的是255
问题原因
spec里是smbus读取到的原始数据乘以0.1作为实际功耗,但compute将原始数据显示在了设备树上,实际应该乘以0.1。
解决方案
reading的最大值为255,所以应该将NPU.Power的读值先缩小一个倍率,将其控制在255以内,然后再通过配置传感器的M、B、RBExp的值放大回原值。