内核驱动 mlxreg-fan

为以下 Mellanox 系统提供风扇控制

  • QMB700,配备 40 个 200GbE InfiniBand 端口;

  • MSN3700,配备 32 个 200GbE 或 16 个 400GbE 以太网端口;

  • MSN3410,配备 6 个 400GbE 加 48 个 50GbE 以太网端口;

  • MSN3800,配备 64 个 1000GbE 以太网端口;

作者:Vadim Pasternak <vadimp@mellanox.com>

这些是机架顶部系统,配备带有 Mellanox Quantum 或 Spectrume-2 设备的 Mellanox 交换板。风扇控制器由可编程设备逻辑实现。

可编程设备内设置的默认寄存器偏移如下

pwm1

0xe3

fan1 (tacho1)

0xe4

fan2 (tacho2)

0xe5

fan3 (tacho3)

0xe6

fan4 (tacho4)

0xe7

fan5 (tacho5)

0xe8

fan6 (tacho6)

0xe9

fan7 (tacho7)

0xea

fan8 (tacho8)

0xeb

fan9 (tacho9)

0xec

fan10 (tacho10)

0xed

fan11 (tacho11)

0xee

fan12 (tacho12)

0xef

此设置可以使用其他寄存器重新编程。

描述

该驱动程序实现了一个简单的接口,用于驱动连接到 PWM 输出和转速计输入的风扇。该驱动程序根据系统配置获取 PWM 和转速计寄存器位置,并创建 FAN/PWM hwmon 对象和一个冷却设备。PWM 和转速计通过板载可编程设备感应,该设备导出其寄存器映射。此设备可以附加到任何支持寄存器映射的总线类型。单个实例使用一个 PWM 控制、最多 12 个转速计和一个冷却设备创建。可以根据可编程设备支持的数量创建多个实例。该驱动程序通过 hwmon 和 thermal 的 sysfs 接口将风扇暴露给用户空间。

/sys hwmon 子系统中的文件

fan[1-12]_fault

RO

用于转速计 TACH1-TACH12 故障指示的文件

fan[1-12]_input

RO

用于转速计 TACH1-TACH12 输入(以 RPM 为单位)的文件

pwm1

RW

用于 fan[1-12] 目标占空比 (0..255) 的文件

/sys thermal 子系统中的文件

cur_state

RW

用于冷却设备当前冷却状态(0..max_state)的文件

max_state

RO

用于冷却设备最大冷却状态的文件