Subject: CVS commit: syssrc/sys/dev
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 04/05/2002 02:15:46
Module Name: syssrc
Committed By: thorpej
Date: Thu Apr 4 23:15:45 UTC 2002
Modified Files:
syssrc/sys/dev/ic: i82557.c
syssrc/sys/dev/pci: if_fxp_pci.c
Log Message:
Address Intel 82801BA/82801BAM Specification Update, Errata #30:
The ICH on-board Ethernet and some i82559 chips have a bug which
will cause a PCI protocol violation if the chip receives a CU_RESUME
command as it is entering the IDLE state by deasserting #CLKRUN.
(This is the so-called "resume bug" that we previously had an incomplete
work-around for on ICH chipsets.)
The work-around is to disable Dynamic Standby Mode, such that the
chip will never deasert #CLKRUN. Dynamic Standby Mode is disabled
by clearing a bit in the EEPROM and updating the EEPROM (and EEPROM
checksum).
Unfortunately, the chip will only consult the EEPROM setting after
a PCI bus reset, so a system reboot is required once the EEPROM
has been updated (the EEPROM update only needs to happen once,
and the driver usses a warning instructing the user to reboot the
system once the work-around has been applied).
Issue pointed out by David Brownlee, and code more-or-less lifted
from FreeBSD.
To generate a diff of this commit:
cvs rdiff -r1.62 -r1.63 syssrc/sys/dev/ic/i82557.c
cvs rdiff -r1.21 -r1.22 syssrc/sys/dev/pci/if_fxp_pci.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.