Mellanox 看門狗驅動¶
用於基於 x86 的系統交換機¶
此驅動程式為各種 Mellanox 乙太網和 Infiniband 交換機系統提供看門狗功能。
Mellanox 看門狗裝置在可程式設計邏輯器件中實現。
有 2 種類型的 HW 看門狗實現。
- 型別 1
實際的 HW 超時可以定義為 2 毫秒的冪。例如,超時 20 秒將四捨五入到 32768 毫秒。 最大超時時間為 32 秒(32768 毫秒)。不支援獲取剩餘時間
- 型別 2
實際的 HW 超時以秒為單位定義,它與使用者定義的超時相同。 最大超時時間為 255 秒。 支援獲取剩餘時間。
- 型別 3
與型別 2 相同,但具有更長的最大超時時間。 最大超時時間為 65535 秒。
型別 1 HW 看門狗實現在舊系統中存在,所有新系統都具有型別 2 HW 看門狗。 兩種型別的 HW 實現也具有不同的暫存器對映。
型別 3 HW 看門狗實現可以存在於具有新程式設計邏輯器件的所有 Mellanox 系統上。 它透過 WD 功能位區分。 舊系統仍然只有一個主看門狗。
Mellanox 系統可以有 2 個看門狗:主看門狗和輔助看門狗。 主看門狗和輔助看門狗裝置可以在同一系統上一起啟用。 看門狗中可以定義幾種操作:系統重置、全速啟動風扇和增加暫存器計數器。 最後 2 個操作在沒有系統重置的情況下執行。 沒有重置的操作是為輔助看門狗裝置提供的,它是可選的。 看門狗可以在探測期間啟動,在這種情況下,在使用者空間應用程式開啟看門狗裝置之前,它將被看門狗核心 ping。 看門狗可以以 nowayout 方式初始化,即一旦啟動就無法停止。
此 mlx-wdt 驅動程式支援兩種 HW 看門狗實現。
看門狗驅動程式是從公共 mlx_platform 驅動程式探測的。 Mlx_platform 驅動程式為 Mellanox 看門狗裝置提供了一組適當的暫存器、標識名稱(mlx-wdt-main 或 mlx-wdt-aux)、初始超時、到期時執行的操作和配置標誌。 看門狗配置標誌:nowayout 和 start_at_boot,hw 看門狗版本 - type1 或 type2。 驅動程式在初始化期間檢查先前的系統重置是否由看門狗完成。 如果是,它會發出關於此事件的通知。
對 HW 暫存器的訪問是透過通用 regmap 介面執行的。 可程式設計邏輯器件暫存器具有小端順序。