内核驱动 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 交换板和 Mellanox Quantum 或 Spectrume-2 设备的机架顶部系统。风扇控制器由可编程设备逻辑实现。

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

pwm1

0xe3

风扇1 (转速计1)

0xe4

风扇2 (转速计2)

0xe5

风扇3 (转速计3)

0xe6

风扇4 (转速计4)

0xe7

风扇5 (转速计5)

0xe8

风扇6 (转速计6)

0xe9

风扇7 (转速计7)

0xea

风扇8 (转速计8)

0xeb

风扇9 (转速计9)

0xec

风扇10 (转速计10)

0xed

风扇11 (转速计11)

0xee

风扇12 (转速计12)

0xef

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

描述

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

hwmon 子系统中的 /sys 文件

fan[1-12]_fault

只读

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

fan[1-12]_input

只读

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

pwm1

读写

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

thermal 子系统中的 /sys 文件

cur_state

读写

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

max_state

只读

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