cvs commit: src/sys/dev/pci pci.c

Nate Lawson nate at root.org
Mon May 24 10:06:45 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-all mailing list