ichwd on ich9 attach failing ?
Mike Tancsa
mike at sentex.net
Mon Mar 16 08:01:58 PDT 2009
At 09:57 AM 3/15/2009, Harald Schmalzbauer wrote:
>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.
Hi,
No luck. I have a X58 board that also does not work, but in
a different way
ichwd module loaded
ichwd0: <Intel ICH10R watchdog timer> on isa0
ichwd0: Intel ICH10R watchdog timer (ICH10 or equivalent)
ppc0: parallel port not found.
watchdogd starts up fine, but a kill -9 to it does not result in the
box resetting.
isab0 at pci0:0:31:0: class=0x060100 card=0x4f538086
chip=0x3a168086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
class = bridge
subclass = PCI-ISA
cap 09[e0] = vendor (length 12) Intel cap 1 version 0
features: SATA RAID-5, 4 PCI-e x1 slots
---Mike
More information about the freebsd-current
mailing list