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 接口执行的。 可编程逻辑器件寄存器具有小端顺序。