阅读:2611回复:7
BUS DRIVER对Config Rom信息的处理。
有哪位大虾知道BUS DRIVER对1394设备的Config Rom信息的处理细节。当有设备插入的时候,系统会发下查询DeviceID,InstanceID,HardwareID,CompatibleID的IRB,我们要从到设备的ConfigRom中得到相关的信息并返回给系统。但是,设备的ConfigRom因厂家而异,有些甚至连VendorID和ModelID都会省略掉,那总应该有一个查询的策略在吧,Who knows?maybe only MS knows.
不知道四个都返回CompatibleID是否合适,因为CompatibleID是到现在为止我看到的所有厂家的设备的Config Rom中都必有的信息。 |
|
沙发#
发布于:2002-04-04 13:20
你是在做DRIVER吗?还是在做1394设备?我看着好象是要做DRIVER.可据我所知MS的OS从98到XP都支持1394 OHCI的呀,还要你写什么DIRVER.真要写,也就是照着1394 OHCI的SPEC去写呀,我看你也不说设备与主机的接口方面的问题,而只问1394 上的东东,这些在1394 OHCI的SPEC里都有.但是,MS都做好了呀,干吗还要写?是不是做的1394外接设备的程序呀,不是OHCI的DRIVER?
|
|
|
板凳#
发布于:2002-04-05 08:43
这位大虾先下下火(做硬件的说话也不用这么硬吧),喝杯凉茶,待我慢慢道来:
1.我写的就是Windows 1394 Bus&Ohci Driver.公司有生产1394 host controller硬件,所以需要一层直接控制host controller硬件的软件的支援debug,也可以随1394 host controller一起卖出去,能提高硬件的竞争力。试想当你用微软的driver调试自己的1394 host controller的时候,隔了一层软件,不能提供源码级的调试,效率可能不会太高的。 2.还有,有了这个driver,就可以上通Device driver,下达1394 host controller,对以后编写1394 device driver也提供了很大的方便。 |
|
地板#
发布于:2002-04-05 09:53
Hi Lilo,
你可以试着考虑一下GUIDHi和GUIDLo两个register |
|
地下室#
发布于:2002-04-08 08:52
谢谢CathyLH.
GUIDLO和GUIDHI得到的是硬件的GUID标识,而我要得到的是类似VENDOR ID或者MODEL ID之类的标示,以便在注册表enum分支里标示不同设备。系统会利用这个标示去查找相应的驱动安装文件。根据微软驱动对现有设备的操作分析,现在已经暂时找到了一种不是最好但是可以用的标示策略了。 |
|
5楼#
发布于:2002-04-08 17:46
什么策略?是查表吗?我知道很多人利用这种方法。
|
|
6楼#
发布于:2002-04-09 08:31
真的很不好意思,公司不让往外泄漏这种技术细节信息的,见谅。
|
|
7楼#
发布于:2002-04-12 00:43
小弟不才,又要问弱智问题了。
高手莫笑。 你们讲到的Config Rom 的信息,不知道存放在那里?是在phy芯片的寄存器里面? 我使用的phy芯片是tsb41ab1.里面有几个寄存器叫做Vendor ID Register Configaration. 有Compliance, Vendor_ID , Product_ID.当bus reset之后我是不是可以读这些寄存器来找到我自己需要的挂在1394总线上设备? 万一总线上面有两个设备都使用的 tsb41ab1呢? 另外还有几个寄存器是写的reserved 和reserved for test. 小弟斗胆问一句,reserved 的寄存器我可以写吗?我想用它来表示自己的设备。 我正在读ti王站上面找到的一个资料lynxsoft 1394 software application programer user guid. 里面讲到在bus reset之后 应用程序进行bus enumaration 这时候可以用两种办法找到自己想要通信的设备: 1: configaration rom 2: WWUID 我对后面一种方法一无所知,有人能告诉我吗? |
|
|