On 2006/09/17 12:18, Rolf Sommerhalder wrote:
> However, I find that no watchdog is available, as geodesc (Geode
> SC1100/SCx200 IAOC driver) does not get loaded, although it is in the
> default GENERIC kernel config.

SC1100 has the Geode GX1 CPU and some supporting devices on one chip:
http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_9863_10524%5E10525,00.html

Some other Geode-based systems use separate components for these.
The watchdog is presumably in the parts of the SC1100 other than the
CPU. If your board has a watchdog at all, it's not likely to emulate
the SC1100 watchdog.

> One motivation for me trying to use
>  'sysctl kern.watchdog.auto=1',
>  'sysctl kern.watchdog.period=30', and
>  start 'watchdogd'

Careful with watchdogs on Geode systems, under heavy PCI load you'll
end up with the CPU running VSA code all the time (showing as high
%cpu in interrupt - there's no standard PCI controller, it appears
to be done in software [1]). If the system is very busy with the
network (or other PCI devices) you can end up with the watchdog
reset being delayed long enough that you get unwanted reboots.

(OS supporting polling instead of IRQs seem to have an easier time
of things).

> Can anyone please provide me guidance how I could debug the watchdog
> (and eventually the reboot) problems further?

Reboot may be easier. Looking at /usr/src/sys/arch/i386/i386/machdep.c,
there's a Geode-specific reset operation used, but there's a chance it
is an SC1100-only function that won't work on a plain Geode system.
If that's the case, and seeing as you appear to have a standard PC
keyboard controller (which is used to reset normal systems but is
absent from some Geode boards, notably WRAP, hence the alternative
function), you can try editing this file and commenting-out
"cpuresetfn = natsem6x86_cpureset;" from natsem6x86_cpu_setup()
and rebuilding the kernel; this way it will use the normal PC methods
instead.

If this does the trick, the outl/outb are probably hanging your
system, in which case the natsem6x86_cpu_setup needs to do additional
CPU detection and only use the alternative reset function on SC1100
systems.

[1] http://www.linuxbios.org/pipermail/linuxbios/2006-March/013623.html

Reply via email to