• Wim Van Sebroeck's avatar
    watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearing · deb9197b
    Wim Van Sebroeck authored
    Redhat Bugzilla: Bug 727875 - TCO_EN bit is disabled by TCO driver
    Jiri Slaby: 28d41f53 broke temperature sensors on a ICH10 chipset
    
    The iTCO_wdt driver disables the SMI. This breaks good working of newer hardware.
    The disabling of the SMI by the TCO logic dates back from the i810-tco driver
    from Nils Faerber (around 28 July 2000). The reason for this was that some BIOSes
    install handlers reset or disable the watchdog timer instead of resetting the system.
    The trick to fix this was to disable the SMI (by clearing the SMI_TCO_EN bit of the
    SMI_EN register) to prevent this from happening.
    
    This however has strange effects on newer hardware. So we are in a situation that
    a fix for broken old hardware affects newer hardware.
    
    The correct solution is to make this fix an option (with the new module parameter:
    turn_SMI_watchdog_clear_off) so that the default behaviour is the unfixed version.
    
    the next patch will be to move this in the start and stop functions of the driver
    and to add a new module parameter for the global_smi_en bit and to get rid of the
    vendor_support code.
    
    This fix can have an effect on old (typical ICH & ICH2 chipsets) motherboards that
    have a broken BIOS implementation concerning TCO logic. In these case the module
    parameter turn_SMI_watchdog_clear_off=1 will need to be added.
    Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
    deb9197b
iTCO_wdt.c 27.5 KB