内核驱动 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 |
用于冷却设备最大冷却状态的文件 |