核心驅動 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

只讀

用於冷卻裝置最大冷卻狀態的檔案