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

Warner Losh imp at FreeBSD.org
Mon May 24 08:53:18 PDT 2004


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


More information about the cvs-src mailing list