cvs commit: src/sys/dev/pci pci.c
M. Warner Losh
imp at bsdimp.com
Fri May 21 07:22:01 PDT 2004
In message: <20040521134038.GE90068 at empiric.dek.spc.org>
Bruce M Simpson <bms at spc.org> writes:
: On Fri, May 21, 2004 at 02:21:41AM -0600, Scott Long wrote:
: > Well, the 8.3.3 paragraph only specifically mentions the command
: > register and the BARs. I'm just worried that by touching stuff outside
: > of this range that you open up the risk of tickling latent buggy
: > silicon. Exception cases like the ATA hardware doing magic things with
: > the progif register should be left up to the ATA driver. It's exactly
: > those kinds of bent-rules that makes me nervous =-)
This isn't ata specific. That was just the example that made me think
of updating the cache and saving/restoring those registers. I can
understand that it makes you nervous, but I don't think we'll find any
silicon that's that brain damaged given that the standard specifically
says that writes to read-only registered must succeed (although it
says so in a round about way).
Also, it specifically said 'but not limited to' which implies more
needs to be done.
: Maybe this behaviour could be enabled or disabled with an instance variable?
: I can think of one example of hardware which might need this. I owned an
: IBM ThinkPad T22 with an xl(4) NIC for about a year, and one of the things
: which annoyed me about suspend/resume was the tendency for it to lose its
: PCI configuration.
No. That's even worse. The code is going to be uniform accross all
devices until someone can produce a legitimate example of a real
device that breaks and that we care about supporting.
The linux code and the Windows code I'm told, behaves in a similar
manner to what we're doing. All I added was a few more registers that
we save/restore that are defined in the spec.
Having said all that, I'm still contemplating not doing the
vendor/subvendor registers.
Warner
More information about the cvs-src
mailing list