Date: Fri, 21 May 2004 08:20:06 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: bms@spc.org Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/pci pci.c Message-ID: <20040521.082006.70223536.imp@bsdimp.com> In-Reply-To: <20040521134038.GE90068@empiric.dek.spc.org> References: <20040521.020412.118756775.imp@bsdimp.com> <40ADBC15.6040004@freebsd.org> <20040521134038.GE90068@empiric.dek.spc.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20040521134038.GE90068@empiric.dek.spc.org> Bruce M Simpson <bms@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040521.082006.70223536.imp>