内核驱动 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。