remarkable-linux/drivers/watchdog
Wim Van Sebroeck 55e8ddecec [WATCHDOG] iTCO_wdt: Fix ICH7+ reboot issue.
Bugzilla: 9868 & 10195.
There seems to be a bug into the SMM code that handles TCO Timeout SMI.
Andriy Gapon found that the code on his DG33TL system does the following:
> The handler is quite simple - it tests value in TCO1_CNT against 0x800, i.e.
> checks TCO_TMR_HLT. If the bit is set the handler goes into an infinite loop,
> apparently to allow the second timeout and reboot. Otherwise it simply clears
> TIMEOUT bit in TCO1_STS and that's it.
> So the logic seems to be reversed, because it is hard to see how TIMEOUT can
> get set to 1 and SMI generated when TCO_TMR_HLT is set (other than a
> transitional effect).

The only trick we have is to bypass the SMM code by turning of the generation
of the SMI#. The trick can only be enabled by setting the vendorsupport module
parameter to 911. This trick doesn't work well on laptop's.

Note: this is a dirty hack. Please handle with care. The only real fix is that
the bug in the SMM bios code get's fixed.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-06-18 07:31:58 +00:00
..
acquirewdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
advantechwdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
alim1535_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
alim7101_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
ar7_wdt.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
at32ap700x_wdt.c
at91rm9200_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
at91sam9_wdt.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
bfin_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
booke_wdt.c
cpu5wdt.c
cpwd.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
davinci_wdt.c [WATCHDOG] move platform probe and remove function to devinit and devexit 2009-06-18 07:30:44 +00:00
ep93xx_wdt.c
eurotechwdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
gef_wdt.c
geodewdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
hpwdt.c dmi: Let dmi_walk() users pass private data 2009-03-30 21:46:44 +02:00
i6300esb.c [WATCHDOG] i6300esb.c: Restructure initialization of the device 2009-04-08 06:06:50 +00:00
ib700wdt.c
ibmasr.c
indydog.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
iop_wdt.c trivial: typo (en|dis|avail|remove)bale -> (en|dis|avail|remove)able 2009-06-12 18:01:45 +02:00
it87_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
it8712f_wdt.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
iTCO_vendor.h
iTCO_vendor_support.c [WATCHDOG] iTCO_wdt: Fix ICH7+ reboot issue. 2009-06-18 07:31:58 +00:00
iTCO_wdt.c [WATCHDOG] iTCO_wdt: fix memory corruption when RCBA is disabled by hardware 2009-06-18 07:31:44 +00:00
ixp4xx_wdt.c
ixp2000_wdt.c
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
ks8695_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
machzwd.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
Makefile [ARM] Orion/Kirkwood: rename orion5x_wdt to orion_wdt 2009-06-08 13:05:00 -04:00
mixcomwd.c
mpc8xxx_wdt.c
mpc5200_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
mpcore_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
mtx-1_wdt.c [WATCHDOG] move platform probe and remove function to devinit and devexit 2009-06-18 07:30:44 +00:00
mv64x60_wdt.c
omap_wdt.c [WATCHDOG] omap_wdt.c: move probe function to .devinit.text 2009-04-08 06:21:57 +00:00
omap_wdt.h
orion_wdt.c [ARM] Orion/Kirkwood: rename orion5x_wdt to orion_wdt 2009-06-08 13:05:00 -04:00
pc87413_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
pcwd.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
pcwd_pci.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
pcwd_usb.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
pika_wdt.c
pnx4008_wdt.c [WATCHDOG] move platform probe and remove function to devinit and devexit 2009-06-18 07:30:44 +00:00
rc32434_wdt.c [WATCHDOG] struct file_operations should be const 2009-03-25 09:06:18 +00:00
rdc321x_wdt.c [WATCHDOG] move platform probe and remove function to devinit and devexit 2009-06-18 07:30:44 +00:00
riowd.c [WATCHDOG] Fix io.h & uaccess.h includes. 2009-03-25 09:07:34 +00:00
rm9k_wdt.c [WATCHDOG] move platform probe and remove function to devinit and devexit 2009-06-18 07:30:44 +00:00
s3c2410_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
sa1100_wdt.c Merge branch 'origin' into devel 2009-03-28 20:29:51 +00:00
sb_wdog.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
sbc60xxwdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
sbc7240_wdt.c
sbc8360.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
sbc_epx_c3.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
sc520_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
sc1200wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
sch311x_wdt.c
scx200_wdt.c [WATCHDOG] Correct WDIOF_MAGICCLOSE flag 2009-06-18 07:30:57 +00:00
shwdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
smsc37b787_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
softdog.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
txx9wdt.c
w83627hf_wdt.c
w83697hf_wdt.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
w83697ug_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
w83877f_wdt.c
w83977f_wdt.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
wafer5823wdt.c
wd501p.h [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
wdrtas.c [WATCHDOG] Some more general cleanup 2009-06-18 07:30:30 +00:00
wdt.c [WATCHDOG] wdt.c: remove #ifdef CONFIG_WDT_501 2009-03-25 09:08:16 +00:00
wdt285.c
wdt977.c [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
wdt_pci.c
wm8350_wdt.c