• Paolo Bonzini's avatar
    iTCO_wdt: all versions count down twice · 1fccb730
    Paolo Bonzini authored
    The ICH9 is listed as having TCO v2, and indeed the behavior in the
    datasheet corresponds to v2 (for example the NO_REBOOT flag is
    accessible via the 16KiB-aligned Root Complex Base Address).
    
    However, the TCO counts twice just like in v1; the documentation
    of the SECOND_TO_STS bit says: "ICH9 sets this bit to 1 to indicate
    that the TIMEOUT bit had been (or is currently) set and a second
    timeout occurred before the TCO_RLD register was written. If this
    bit is set and the NO_REBOOT config bit is 0, then the ICH9 will
    reboot the system after the second timeout.  The same can be found
    in the BayTrail (Atom E3800) datasheet, and even HOWTOs around
    the Internet say that it will reboot after _twice_ the specified
    heartbeat.
    
    I did not find the Apollo Lake datasheet, but because v4/v5 has
    a SECOND_TO_STS bit just like the previous version I'm enabling
    this for Apollo Lake as well.
    
    Cc: linux-watchdog@vger.kernel.org
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
    1fccb730
iTCO_wdt.c 17.6 KB