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.