Re: AMD Geode LX WDT (geode-mfgpt)

From: Lennart Sorensen
Date: Wed Apr 14 2010 - 11:35:26 EST


On Wed, Mar 31, 2010 at 10:08:36AM +0200, Arnd Hannemann wrote:
> Am 31.03.2010 06:54, schrieb Martin Teufel:
>
> > I have some ALIX boards (SBC) with AMD Geode LX CPUs and their companion
> > device CS5536 and am using Debian on them. I didn't care about the
> > integrated watchdog timer (in the CS5536) so far. Recently I did, but
> > neither the CONFIG_GEODE_WDT was set in the debian kernel (2.6.26), nor
> > the CONFIG_GEODE_MFGPT_TIMER. So I compiled my own debian 2.6.26 geode
> > kernel (CONFIG_MGEODE_LX=y, CONFIG_GEODE_WDT=y,
> > CONFIG_GEODE_MFGPT_TIMER=y, CONFIG_CRYPTO_DEV_GEODE=y etc.).
> >
> > My problem is that the geode-mfgpt doesn't find any timers:
> >
> > [ 0.204012] geode-mfgpt: 0 MFGPT timers available.
> > [ 0.208013] mfgpt-timer: Could not allocate a MFPGT timer
> > ...
> > [ 2.284029] geodewdt: No timers were available
> >
> > My question is: Why doesn't it? Is this a known bug? If so, is it
> > already fixed in a newer kernel version?
>
> Your BIOS may already use all available timers.
> AFAIR only TinyBios with ALIX leaves timers for the OS.
> Award and CoreBoot both use them all.

The BIOS on the CompuLab CM-iGLX modules leave 5 timers available as
far as I recall. We certainly haven't had any issue getting one for a
watchdog on those modules. The BIOS happens to be a buggy ancient piece
of crap in other ways, but at least its OK for the timer use.

It is unfortunately an amazingly stupid timer design (there is no way to
clear a timer when you are done using it to indicate others can use it).
We had to hack the driver a bit to allow using timers already in use
given we actually start the watchdog from the bootloader and have the
kernel watchdog driver take over later.

--
Len Sorensen
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/