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