This is a blog article written by Dan Mick, http://blogs.sun.com/dmick/entry/title_pci_device_identification_and
A PCI device has a bunch of device identification numbers associated
with it, which generic code can retrieve. I've listed them here in
most-specific to least-specific order, by their Solaris property name
(shown in the prtconf -pv
output, which is why we always always always
ask for that when diagnosing driver-binding problems):
- revision (not useful on its own)
- vendor-id, device-id (the usual lone source of driver binding)
- subsystem-vendor-id, subsystem-id (the usual source of the "name" property,
and hence the usual source of the /devices node name)
- class-code
The revision number is only useful in conjunction with vendor-id, device-id.
Entry 3, the subsystem, is nearly useless for every purpose, as many
machines now use the same
subsystem ID for every
motherboard device, and if not, at least the same subsystem-vendor-id.
Sun had originally interpreted subsystem to be more specific than
vendor-id, device-id, but that's not how the industry ended up adopting
it. (as usual, the spec was unclear as to its intent).
The only things Solaris normally uses for binding device drivers are 2 and 4.
The way Solaris driver binding works is: for every element in the compatible
property, in order, a) look for a same-named driver; if it's there, use
it; if not, b) look for a same-named device alias, and get the driver
field out of it; if it's there, use it. That's it. (Note that I'm
specifically talking about Solaris, nothing to do with bootconf or the
DCA.)
So most devices are bound through the vendor-id, device-id pair.
Some devices and drivers are generic enough so that one driver is able
to run an entire class of devices (say, for instance, pci-ide); in that
case, the class-code can be used. But for the most part,
vendor-id,device-id is what you want in /etc/driver_aliases, and it's
always
the right thing to talk about when you're trying to describe
which device you have to someone else.
The Broadcom device aliases were added with both
vendor-id, device-id and
subsystem-vendor-id,
subsystem-id, the intent being to try to bind the bge device driver
only
to particular boards and motherboards we had tested
explicitly. (Opinions differed as to whether this was a good idea.)
Since then, I believe the motion is back to just vendor-id,device-id,
but if you see device aliases for bge with four numbers, that's why.
They'll still work with two numbers, just not as pickily.
Now obviously this opens up the possibility that more than one alias
might match for a particular set of numbers in the PCI device...but
that's why we specify what's in the compatible property, not what's in
the device. The compatible property is always constructed in a
specific order, and as of s10_37, contains the following
(intentionally-redundant) elements for PCI devices:
* (possibly) node-name (0)
* pciVVVV,DDDD.SSSS.ssss.RR (1)
* pciVVVV,DDDD.SSSS.ssss (2)
* pciSSSS,ssss (3)
* pciVVVV,DDDD.RR (4)
* pciVVVV,DDDD (5)
* pciclass,CCSSPP (6)
* pciclass,CCSS (7)
(VVVV is vendor-id, DDDD is device-id, SSSS is subsystem-vendor-id,
ssss is subsystem-id, RR revision, CC major class number, SS subclass
number, PP programming-interface-byte)
Form 0 is there for certain special devices, to "override" the
normal matching, mostly older devices. Then, as you can see, we
sorta
go from most-specific to least-specific, which is the intent of
the compatible property on any bus, PCI being no exception. The
exception to that order is number 3, which had to be where it is
because of the original definition of the compatible property in the
original IEEE1275 spec, which all this is based on. But it's OK,
because we (as noted above) virtually never use it for binding drivers
anyway; we almost-always use 5 or 6/7, and sometimes 2.
分享到:
相关推荐
作者参考Windows驱动模型的一些概念介绍了EFI driver model的一些概念,以及具体Driver binding的实现过程。适合有Windows WDM/DDK开发经验的学习研究使用
20701:2020 Health informatics — Device interoperability — Part 20701:Point-of-care medical device communication — Service oriented medical device exchange architecture and protocol binding -...
PLATELET BINDING, ELECTROPHORESIS AND BIOASSAY BASED IDENTIFICATION OF THE BAOACTIVE COMPONENT IN SNAKE VENOM ,杨坚,赵明,Crude Venom of Agkistrodon halys palls (f0) were separated by use of sepadex...
A-PUF-FSM-Binding-Scheme-for-FPGA-IP-Protection-and-Pay-per-Device-Licensing
Approaches and Best Practices in Web Service Style, Data Binding and Validation.pdf
In this study, we propose a deep-learning based model that uses only sequence information of both targets and drugs to predict DT interaction binding affinities. The few studies that focus on DT ...
果蝇TRP离子通道C端一个新钙调蛋白结合位点的鉴定和分析,郑云华,刘伟,TRP离子通道广泛表达于从果蝇到人的各种动物细胞中,与视觉、味觉、嗅觉、温度感受、细胞生长与死亡、细胞癌变等息息相关。...
CXL Type 3 Device Component Command Interface over MCTP Binding Specification
超导铜氧化物系的电子态的网络结构及结合能,李强,,铜氧化物超导体系中的电子态的一种结构模型,其中存在由多个交叉环路构成的网络,并产生了对电子态建立条件的显著容差。结合能不
Identification of DNA-binding Proteins by Incorporating Evolutionary Information into Pseudo Amino Acid Composition via the Top-n-gram Approach
Reduce the amount of code in your user interface by letting the WPF and Silverlights binding system eliminate your need to do things like casting controls and dispatching Best practices for dealing ...
The intended audience of this project is members of the community interested in binding, who want to see where we're headed and to provide feedback. So that's exactly what we're looking for at this ...
Data Structures and Algorithms in Java (2nd Edition) By Robert Lafore Publisher: Sams Number Of Pages: 800 Publication Date: 2002-11-16 ISBN-10 / ASIN: 0672324539 ISBN-13 / EAN: 9780672324536 ...
win32-ia-32-48_binding.node插件去掉node不报错win32-ia-32-48_binding.node插件去掉node不报错win32-ia-32-48_binding.node插件去掉node不报错win32-ia-32-48_binding.node插件去掉node不报错win32-ia-32-48_...
Get up to speed on the C# language, from the basics of syntax and variables to advanced topics such as pointers, operator overloading, and dynamic binding Dig deep into LINQ via three chapters ...
主要介绍了C#应用BindingSource实现数据同步的方法,需要的朋友可以参考下
The identification of potential regulatory motifs in new sequence data is increasingly important for experimental design. Those motifs are commonly located by matches to IUPAC strings derived from ...
WPF的binding代码实例 总结的几个binding的基础运用
This book is all about the what and the why of binding to data sources in a Windows Forms application built using Visual Studio 2005. The book goes into great detail in explaining the rationale behind...
C# MVVM Binding demo