Mellanox 看门狗驱动程序

适用于基于 x86 的系统交换机

此驱动程序为各种 Mellanox 以太网和 InfiniBand 交换机系统提供看门狗功能。

Mellanox 看门狗设备在可编程逻辑器件中实现。

有 2 种类型的硬件看门狗实现。

类型 1

实际的硬件超时可以定义为 2 毫秒的幂。例如,超时 20 秒将被四舍五入到 32768 毫秒。最大超时时间为 32 秒(32768 毫秒),不支持获取剩余时间。

类型 2

实际的硬件超时以秒为单位定义,并且与用户定义的超时相同。最大超时时间为 255 秒。支持获取剩余时间。

类型 3

与类型 2 相同,但具有扩展的最大超时时间。最大超时时间为 65535 秒。

类型 1 硬件看门狗实现存在于旧系统中,所有新系统都具有类型 2 硬件看门狗。两种类型的硬件实现也具有不同的寄存器映射。

类型 3 硬件看门狗实现可以存在于所有具有新编程逻辑设备的 Mellanox 系统上。它通过 WD 功能位进行区分。旧系统仍然只有一个主看门狗。

Mellanox 系统可以有 2 个看门狗:主看门狗和辅助看门狗。主看门狗和辅助看门狗设备可以在同一系统上一起启用。可以在看门狗中定义几个操作:系统重置、全速启动风扇和增加寄存器计数器。最后 2 个操作在不进行系统重置的情况下执行。不进行重置的操作是为辅助看门狗设备提供的,这是可选的。看门狗可以在探测期间启动,在这种情况下,它将在用户空间应用程序打开看门狗设备之前由看门狗核心进行 ping 操作。看门狗可以以 nowayout 方式初始化,即一旦启动就无法停止。

此 mlx-wdt 驱动程序支持这两种硬件看门狗实现。

看门狗驱动程序从通用的 mlx_platform 驱动程序探测。Mlx_platform 驱动程序为 Mellanox 看门狗设备提供一组适当的寄存器、标识名称(mlx-wdt-main 或 mlx-wdt-aux)、初始超时时间、过期时执行的操作和配置标志。看门狗配置标志:nowayout 和 start_at_boot,硬件看门狗版本 - type1 或 type2。驱动程序在初始化期间检查以前的系统重置是否由看门狗完成。如果是,它会发出关于此事件的通知。

对硬件寄存器的访问通过通用 regmap 接口执行。可编程逻辑器件寄存器具有小端字节顺序。