内核驱动 adm9240

支持的芯片

作者

接口

上面列出的 I2C 地址假定 BIOS 没有更改芯片 MSB 5 位地址。每个芯片都会报告唯一的制造商识别码以及芯片修订版/步进级别。

描述

[来自 ADM9240] ADM9240 是一个完整的基于微处理器的系统硬件监控器,可提供最多四个电源和两个处理器内核电压的测量和限制比较,以及温度、两个风扇速度和机箱入侵。测量值可以通过与 I2C 兼容的串行系统管理总线读出,并且可以在同一串行总线上编程用于限制比较的值。高速逐次逼近 ADC 允许频繁采样所有模拟通道,以确保对任何超出限制的测量做出快速中断响应。

ADM9240、DS1780 和 LM81 寄存器兼容,以下详细信息是这三个芯片通用的。芯片差异在本节之后描述。

测量

测量周期

adm9240 驱动程序将以不快于每两秒一次的速度进行测量读取。用户空间可以比测量更新速率更快地读取 sysfs 接口,并且将收到来自最近测量的缓存数据。

ADM9240 具有非常快的 320us 温度和电压测量周期,以及独立的风扇速度测量周期,计算风扇转速输入的交替上升沿。

DS1780 测量周期大约为每秒一次,包括风扇速度。

LM81 测量周期大约为每 400 毫秒一次,包括风扇速度。不支持 LM81 12 位扩展温度测量模式。

温度

片上温度以摄氏度报告,作为 9 位有符号数据,分辨率为 0.5 摄氏度。高温和低温限制是 8 位有符号数据,分辨率为 1 摄氏度。

一旦温度超过上限,就会发出温度警报,并且当温度降至 temp1_max_hyst 值以下时,警报就会清除。

风扇速度

提供两个风扇转速输入,ADM9240 通过一个分频器将内部 22.5kHz 时钟门控到 8 位计数器。风扇速度 (rpm) 的计算公式为

rpm = (22500 * 60) / (计数 * 分频器)

自动风扇时钟分频器

  • 用户将 0 设置为 fan_min 限制

    • 禁用低速警报

    • 风扇时钟分频器未更改

    • 启用自动风扇时钟调节器以获得有效的风扇速度读数

  • 用户将 fan_min 限制设置得太低

    • 启用低速警报

    • 风扇时钟分频器设置为最大值

    • fan_min 设置为寄存器值 254,对应于 adm9240 上的 664 rpm

    • 如果风扇速度低于最小可测量速度,则会发出低速警报

    • 禁用自动风扇时钟调节器

  • 用户设置合理的风扇速度

    • 启用低速警报

    • 设置风扇时钟分频器以适合 fan_min

    • 启用自动风扇时钟调节器:调整 fan_min

  • 用户设置不合理的高低风扇速度限制

    • 可能会降低低速限制的分辨率

    • 将发出警报

    • 启用自动风扇时钟调节器:调整 fan_min

  • 在自动风扇时钟分频器调节器将风扇速度时钟分频器带回芯片测量范围之前,风扇速度可能会显示为零,这将在几个测量周期内发生。

模拟输出

模拟输出提供 0 到 1.25 伏特的信号,用于外部风扇速度放大器电路。模拟输出在电源开启或复位时设置为最大值。这在测试 Intel SE440BX-2 上没有多大作用。

电压监控器


电压 (IN) 测量在内部缩放

nr

标签

标称值

mV

最大值

mV

分辨率

mV

0

+2.5V

2500

3320

13.0

1

Vccp1

2700

3600

14.1

2

+3.3V

3300

4380

17.2

3

+5V

5000

6640

26.0

4

+12V

12000

15940

62.5

5

Vccp2

2700

3600

14.1

读取值是一个无符号的 8 位值,标称电压测量值用读取值 192 表示,即测量范围的 3/4。

任何电压低于或高于设定限制都会发出警报。

驱动程序报告并接受缩放到上表的电压限制。

VID 监控器

该芯片有五个输入来读取 5 位 VID,并根据检测到的 CPU 类型报告 mV 值。

机箱入侵

当 CI 引脚变为高电平时,会发出警报。ADM9240 数据手册中有一个由外部温度传感器驱动该引脚的示例。在 Intel SE440BX-2 上,机箱入侵接头连接到常开开关。

ADM9240 在此线上提供内部开漏,并且可以输出 20 毫秒的低电平有效脉冲来重置外部机箱入侵锁存器。

通过将值 0 写入 sysfs intrusion0_alarm 文件来清除 CI 锁存器。

警报标志报告为 16 位字

标签

评论

0

+2.5 V_Error

超出上限或下限

1

VCCP_Error

超出上限或下限

2

+3.3 V_Error

超出上限或下限

3

+5 V_Error

超出上限或下限

4

Temp_Error

温度错误

6

FAN1_Error

超出风扇低速限制

7

FAN2_Error

超出风扇低速限制

8

+12 V_Error

超出上限或下限

9

VCCP2_Error

超出上限或下限

12

Chassis_Error

CI 引脚变为高电平

其余位保留,因此未定义。重要的是要注意,警报位可以在读取时清除,用户空间可以锁定警报并为最终用户提供清除警报内存的方法。