Re: Geode GX/LX watchdog timer (RESEND)

From: Arnd Hannemann
Date: Mon Jan 21 2008 - 13:36:51 EST


Jordan Crouse schrieb:
> 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?
>>
>> 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.
>
> Resending with Arnd's concern's addressed. Thanks.

I can confirm that it is still working fine :-)

>
> Jordan
>
Greetings,
Arnd
--
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/