Re: Geode GX/LX watchdog timer (was 2.6.24-rc8 hangs atmfgpt-timer)

From: Jordan Crouse
Date: Sun Jan 20 2008 - 11:36:54 EST


On 20/01/08 14:22 +0100, Arnd Hannemann wrote:
> Hi,
>
> Jordan Crouse wrote:
> > On 17/01/08 23:52 +0100, Arnd Hannemann wrote:
> >>>> Watchdog for the new API would be great :-)
> >>> Coming soon.
> >
> > As promised, a watchdog driver for the Geode GX/LX processors is attached.
> > I basically just ported the previous patch forward to 2.6.24.
>
> Great work!
>
> >
> > I also have good news or bad news depending on your perspective. I wanted
> > to test this against 2.6.24, and OLPC is stuck at an older kernel version,
> > so I had to test this with coreboot (LinuxBIOS) on another Geode
> > platform. Like all BIOSen execpt for the OLPC firmware, coreboot uses
> > VSA (SMM handler) which consumes all the timers.
> >
> > So I used the magical MSR and surprise! - the timer tick hung.
> > I compiled out the timer tick, and tested the watchdog timer instead,
> > and it worked fine on timer 0. So I don't think the MFGPTs themselves
> > have anything to do with this problem, but I do think it might be
> > related to VSA and possibly interrupts too. I'm going to invoke the
> > strong BIOS fu of our LinuxBIOS / BIOS expert Marc Jones, and see what
> > he comes up with.
> >
> > I don't know how much of a hassle it would be for Andres to get a 2.6.24
> > kernel running on the OLPC to make sure that this isn't a regression
> > in the timer tick code (I suspect it isn't a regression, but you never
> > know). I also think that it would probably be in our best interest to
> > default CONFIG_GEODE_MFGPT_TIMER to 'n' until we get this figured
> > out. Since most BIOSen don't have timers available, that shouldn't affect
> > too many people.
> >
> > So, anyway, enjoy the watchdog timer - I hope it meets everybody's
> > expectations for the 2.6.25 kernel.
>
> Thanks a lot for this, it works great! (with CONFIG_GEODE_MFGPT_TIMER
> not set).
> However some minor issues:
> Could the name of the /dev entry perhaps be changed from
> "geode-watchdog" to "watchdog" instead?
> I think all other watchdogs use "watchdog", and using two different
> watchdogs in the same machine won't work anyway, because of the same
> minor number, right?

Very much yes - complete oversight on my part.

> As a second point my gcc (4.1.2) issues a warning:
>
> drivers/watchdog/geodewdt.c: In function âgeodewdt_removeâ:
> drivers/watchdog/geodewdt.c:256: warning: control reaches end of
> non-void function
>
> which I think is a valid one.

Yes again. I'll refactor. Thanks for your comments.

Jordan
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.


--
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/