内核驱动 bt1-pvt¶
支持的芯片
Baikal-T1 PVT 传感器(在 SoC 中)
前缀: 'bt1-pvt'
扫描地址: -
数据手册:由 BAIKAL ELECTRONICS 应要求提供,并受 NDA 约束
- 作者
Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru> Serge Semin <Sergey.Semin@baikalelectronics.ru>
描述¶
此驱动程序实现对嵌入 Baikal-T1 处理器中的硬件监控功能的支持,包括电压和温度传感器。PVT IP 核由一个温度传感器和四个电压传感器组成,可以用来监控芯片内部环境,如发热、供电电压和晶体管性能。该驱动程序可以选择性地为 PVT 控制器支持的每个传感器提供 hwmon 报警。由于硬件接口实现的特殊性,报警功能是编译时可配置的,这与一次只能转换来自一个传感器的数据的能力有关。另一个限制是控制器在数据转换过程中同步执行阈值检查。因此,为了自动检测 hwmon 报警,驱动程序代码必须从一个传感器切换到另一个传感器,读取转换后的数据并手动检查阈值状态位。根据测量超时设置(update_interval sysfs 节点值),此设计可能会给系统性能带来额外负担。因此,如果系统设计中不需要报警,建议禁用它们,以防止 PVT IRQ 定期被触发以使数据缓存/报警状态保持最新。默认情况下,在无报警配置中,当通过相应的 _input 文件请求读取操作时,驱动程序按需执行数据转换。
温度监控¶
温度以 10 位分辨率测量,并以毫摄氏度报告。驱动程序本身执行所有缩放,因此报告的真实温度不需要任何用户空间调整。虽然数据转换公式不是线性的,这导致非线性离散性,但它接近于 1,但在较高温度下提供了更好的精度。温度输入映射如下(最后一列表示输入范围)
temp1: CPU embedded diode -48.38C - +147.438C
如果在驱动程序中启用了报警内核配置,则温度输入具有关联的最小和最大限制,当超出限制时会触发报警。
电压监控¶
电压输入也以 10 位分辨率采样,并以毫伏报告。但在这种情况下,数据转换公式是线性的,这提供了恒定的测量离散性。数据缩放也由驱动程序执行,因此返回真实的毫伏值。电压输入映射如下(最后一列表示输入范围)
in0: VDD (processor core) 0.62V - 1.168V
in1: Low-Vt (low voltage threshold) 0.62V - 1.168V
in2: High-Vt (high voltage threshold) 0.62V - 1.168V
in3: Standard-Vt (standard voltage threshold) 0.62V - 1.168V
如果在驱动程序中启用了报警配置,则电压输入具有关联的最小和最大限制,当超出限制时会触发报警。
Sysfs 属性¶
以下是驱动程序提供的所有 sysfs 属性的列表,包括它们的权限和简短描述
名称 |
权限 |
描述 |
---|---|---|
update_interval |
RW |
每个传感器的测量更新间隔。 |
temp1_type |
RO |
传感器类型(始终为 1,表示 CPU 嵌入式二极管)。 |
temp1_label |
RO |
CPU 核心温度传感器。 |
temp1_input |
RO |
以毫摄氏度为单位测量的温度。 |
temp1_min |
RW |
温度输入的下限。 |
temp1_max |
RW |
温度输入的上限。 |
temp1_min_alarm |
RO |
温度输入报警。如果温度输入低于下限则返回 1,否则返回 0。 |
temp1_max_alarm |
RO |
温度输入报警。如果温度输入高于上限则返回 1,否则返回 0。 |
temp1_offset |
RW |
以毫摄氏度为单位的温度偏移量,由芯片添加到温度读数中。它可用于在 7.130 摄氏度范围内手动调整温度测量值。 |
in[0-3]_label |
RO |
CPU 电压传感器(可以是核心或低/高/标准阈值)。 |
in[0-3]_input |
RO |
以毫伏为单位测量的电压。 |
in[0-3]_min |
RW |
电压输入的下限。 |
in[0-3]_max |
RW |
电压输入的上限。 |
in[0-3]_min_alarm |
RO |
电压输入报警。如果电压输入低于下限则返回 1,否则返回 0。 |
in[0-3]_max_alarm |
RO |
电压输入报警。如果电压输入高于上限则返回 1,否则返回 0。 |