Date: Sun, 15 Mar 2009 14:57:23 +0100 From: Harald Schmalzbauer <h.schmalzbauer@OmniLAN.de> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-current@freebsd.org, Mike Tancsa <mike@sentex.net> Subject: Re: ichwd on ich9 attach failing ? Message-ID: <49BD0943.3000400@OmniLAN.de> In-Reply-To: <200810011121.21908.jhb@freebsd.org> References: <200810011405.m91E5ugg028685@lava.sentex.ca> <200810011121.21908.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
John Baldwin schrieb am 01.10.2008 17:21 (localtime):
> On Wednesday 01 October 2008 10:05:48 am Mike Tancsa wrote:
>> Does anyone have a board with this chipset where ichwd attaches properly ?
>>
>> When I try to load the driver I get
>>
>> ichwd module loaded
>> isab0: found ICH9 or equivalent chipset: Intel ICH9R watchdog timer
>> ichwd0: <Intel ICH9R watchdog timer> on isa0
>> isab0: found ICH9 or equivalent chipset: Intel ICH9R watchdog timer
>> ichwd0: ICH WDT present but disabled in BIOS or hardware
>> device_attach: ichwd0 attach returned 6
>> ppc0: parallel port not found.
>>
>> the ppc0 error seems normal, as on other boards I see the same error
>> and things attach just fine
>>
>> It is enabled in the BIOS as the box will automatically reboot after
>> 5 min, since the watchdog is not set by the OS
>
> Hmm, looks like the test to clear a bit is failing. Maybe some quality time
> with the ICH9 datasheet (you should be able to find it on
> developer.intel.com) can help resolve this. Here is the relevant code:
>
> static __inline int
> ichwd_clear_noreboot(struct ichwd_softc *sc)
> {
> uint32_t status;
> int rc = 0;
>
> /* try to clear the NO_REBOOT bit */
> if (sc->ich_version <= 5) {
> status = pci_read_config(sc->ich, ICH_GEN_STA, 1);
> status &= ~ICH_GEN_STA_NO_REBOOT;
> pci_write_config(sc->ich, ICH_GEN_STA, status, 1);
> status = pci_read_config(sc->ich, ICH_GEN_STA, 1);
> if (status & ICH_GEN_STA_NO_REBOOT)
> rc = EIO;
> } else {
> status = ichwd_read_gcs_4(sc, 0);
> status &= ~ICH_GCS_NO_REBOOT;
> ichwd_write_gcs_4(sc, 0, status);
> status = ichwd_read_gcs_4(sc, 0);
> if (status & ICH_GCS_NO_REBOOT)
> rc = EIO;
> }
>
> if (rc)
> device_printf(sc->device,
> "ICH WDT present but disabled in BIOS or hardware\n");
>
> return (rc);
> }
Hello,
has anybody had time to look at it? I have a new server board with ich9
and can't any longer use the watchdog. Unfortunately I'm not able to
solve it myself.
Any help appreciated.
Best regards,
-Harry
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (FreeBSD)
iEYEARECAAYFAkm9CVQACgkQLDqVQ9VXb8hFPACcDpFnOqkyHy1W0eAzNjNqS4ty
MqYAnilm8txsFh2kYSIxKIggTZnrRU+2
=mSaa
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BD0943.3000400>
