内核驱动 bt1-pvt¶
支持的芯片
Baikal-T1 PVT 传感器 (片上系统内置)
前缀: ‘bt1-pvt’
扫描地址: -
数据手册: 根据请求并遵守 NDA 由 BAIKAL ELECTRONICS 提供
- 作者
Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru> Serge Semin <Sergey.Semin@baikalelectronics.ru>
描述¶
此驱动程序实现了对 Baikal-T1 内置的工艺、电压和温度传感器的硬件监控功能的支持。PVT IP 核由一个温度传感器和四个电压传感器组成,可用于监控芯片内部环境,如发热、电源电压和晶体管性能。驱动程序可以选择性地为 PVT 控制器支持的每个传感器提供 hwmon 警报。警报功能在编译时可配置,这是由于硬件接口实现的特殊性,即一次只能转换一个传感器的数据。另一个限制是控制器在数据转换过程同步执行阈值检查。因此,为了自动检测 hwmon 警报,驱动程序代码必须在传感器之间切换,读取转换后的数据并手动检查阈值状态位。根据测量超时设置(update_interval sysfs 节点值),这种设计可能会给系统性能带来额外负担。因此,如果您的系统设计不需要警报,建议禁用它们以防止 PVT 中断周期性地被触发,从而保持数据缓存/警报状态最新。默认情况下,在无警报配置中,数据转换在通过相应的 _input 文件请求读取操作时由驱动程序按需执行。
温度监控¶
温度以 10 位分辨率测量,并以毫摄氏度报告。驱动程序自行执行所有缩放,因此报告的真实温度不需要任何用户空间调整。虽然数据转换公式不是线性的,这导致非线性离散度,但它接近线性,但在更高温度下提供更好的精度。温度输入映射如下(最后一列表示输入范围)
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 |
读写 |
每个传感器的测量更新间隔。 |
temp1_type |
只读 |
传感器类型(始终为 1,作为 CPU 内置二极管)。 |
temp1_label |
只读 |
CPU 核心温度传感器。 |
temp1_input |
只读 |
测量的温度,单位毫摄氏度。 |
temp1_min |
读写 |
温度输入的下限。 |
temp1_max |
读写 |
温度输入的上限。 |
temp1_min_alarm |
只读 |
温度输入警报。如果温度输入低于下限,则返回 1,否则返回 0。 |
temp1_max_alarm |
只读 |
温度输入警报。如果温度输入高于上限,则返回 1,否则返回 0。 |
temp1_offset |
读写 |
芯片在温度读数中添加的温度偏移量,单位毫摄氏度。它可用于手动调整温度测量值,范围在 7.130 摄氏度以内。 |
in[0-3]_label |
只读 |
CPU 电压传感器(核心或低/高/标准阈值)。 |
in[0-3]_input |
只读 |
测量的电压,单位毫伏。 |
in[0-3]_min |
读写 |
电压输入的下限。 |
in[0-3]_max |
读写 |
电压输入的上限。 |
in[0-3]_min_alarm |
只读 |
电压输入警报。如果电压输入低于下限,则返回 1,否则返回 0。 |
in[0-3]_max_alarm |
只读 |
电压输入警报。如果电压输入高于上限,则返回 1,否则返回 0。 |