cvs commit: src/sys/dev/pci pci.c
Nate Lawson
nate at root.org
Mon May 24 10:06:46 PDT 2004
On Mon, 24 May 2004, Warner Losh wrote:
> imp 2004/05/24 08:52:57 PDT
>
> FreeBSD src repository
>
> Modified files:
> sys/dev/pci pci.c
> Log:
> Do not write to those config registers that are unambiguously defined
> in the various pci specifications as readonly. vendor, subvendor,
> device and subdevice are required to be loaded in hardware by some
> means that isn't the system BIOS or other system software (although
> some devices do have ways of accomplishing this). class and subclass
> are defined to be read-only in section 6.2.1 (v2.2). Apart from the
> status register, which we weren't touching, these are the only
> read-only registers I could find in the 2.2 spec.
>
> progif is also defined as being read-only in section 6.2.1. However,
> the PCI IDE programming document specifically states that some of the
> bits are read/write. Since we may have to restore registers before we
> have a driver attached, go ahead and restore this one byte when
> transitioning between D3 and D0.
>
> The PCI spec also says that writes to reserved and unimplemented
> registers must be completed normally. It makes no statements about
> writes to read-only registers, so be as conservative as possible,
> while covering the exception to the rule that is documented in a
> subpart of the standard.
>
> Requested by: socttl
>
> Revision Changes Path
> 1.260 +0 -19 src/sys/dev/pci/pci.c
Excellent, I think this is the right way to go.
-Nate
More information about the cvs-src
mailing list