A
Ann Adamson
In all the documentation and sessions I've ever read/seen, they always talk
about being able to use a .pmq file to produce a platform "Macro" component
which pulls in all the necessary hw components to support your device. This
seems like a GREAT idea, BUT...
When I import .pmq files into Target Designer and Component Designer, I
OFTEN get different results! It seems like the "matching" algorithms must
be different. Does Component Designer just ignore the COMPATIBLEIDS
section? That's what it looks like to me. Isn't this a bug?
For example, from the section that follows from my .pmq file, Target
Desiger matched and brought in the component "PCI Standard PCI-to-PCI
Bridge" (PnPID(819):"PCI\CC_0604"), however, Component Designer did not find
a match and did not bring in any component.
<DEVICE ConfigFlags="0">
<DEVICEDESC>PCI standard PCI-to-PCI bridge</DEVICEDESC>
<HARDWAREIDS>
<DEVICEID
Order="1">PCI\VEN_8086&DEV_0320&SUBSYS_00000000&REV_04</DEVICEID<DEVICEID
Order="2">PCI\VEN_8086&DEV_0320&SUBSYS_00000000</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&DEV_0320&REV_04</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&DEV_0320</DEVICEID>
<DEVICEID Order="5">PCI\VEN_8086&DEV_0320&CC_060400</DEVICEID>
<DEVICEID Order="6">PCI\VEN_8086&DEV_0320&CC_0604</DEVICEID>
</HARDWAREIDS>
<COMPATIBLEIDS>
<DEVICEID Order="1">PCI\VEN_8086&CC_060400</DEVICEID>
<DEVICEID Order="2">PCI\VEN_8086&CC_0604</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086</DEVICEID>
<DEVICEID Order="4">PCI\CC_060400</DEVICEID>
<DEVICEID Order="5">PCI\CC_0604</DEVICEID>
</COMPATIBLEIDS>
</DEVICE>
In other cases, if there is a specific Intel Driver that has not yet been
componentized, but a "standard" component will do, Target Designer can make
a match, but Component Designer does not. In the following example, TD
brought in the component "Standard Universal PCI to USB Host Controller"
(PnPID(819):"PCI\CC_0C0300") but CD made no match. PLUS CD does not give
errors when it cannot find a match!!
<DEVICE ConfigFlags="0">
<DEVICEDESC>Intel(R) 82801EB USB Universal Host Controller -
24D2</DEVICEDESC>
<HARDWAREIDS>
<DEVICEID
Order="1">PCI\VEN_8086&DEV_24D2&SUBSYS_10798086&REV_02</DEVICEID<DEVICEID
Order="2">PCI\VEN_8086&DEV_24D2&SUBSYS_10798086</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&DEV_24D2&CC_0C0300</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&DEV_24D2&CC_0C03</DEVICEID>
</HARDWAREIDS>
<COMPATIBLEIDS>
<DEVICEID Order="1">PCI\VEN_8086&DEV_24D2&REV_02</DEVICEID>
<DEVICEID Order="2">PCI\VEN_8086&DEV_24D2</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&CC_0C0300</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&CC_0C03</DEVICEID>
<DEVICEID Order="5">PCI\VEN_8086</DEVICEID>
<DEVICEID Order="6">PCI\CC_0C0300</DEVICEID>
<DEVICEID Order="7">PCI\CC_0C03</DEVICEID>
</COMPATIBLEIDS>
</DEVICE>
So, it seems this idea of a "Platform Macro Component" built with Component
Designer is pretty shaky right now. You have to do a lot of manual fiddling
to get it right.
Ann
about being able to use a .pmq file to produce a platform "Macro" component
which pulls in all the necessary hw components to support your device. This
seems like a GREAT idea, BUT...
When I import .pmq files into Target Designer and Component Designer, I
OFTEN get different results! It seems like the "matching" algorithms must
be different. Does Component Designer just ignore the COMPATIBLEIDS
section? That's what it looks like to me. Isn't this a bug?
For example, from the section that follows from my .pmq file, Target
Desiger matched and brought in the component "PCI Standard PCI-to-PCI
Bridge" (PnPID(819):"PCI\CC_0604"), however, Component Designer did not find
a match and did not bring in any component.
<DEVICE ConfigFlags="0">
<DEVICEDESC>PCI standard PCI-to-PCI bridge</DEVICEDESC>
<HARDWAREIDS>
<DEVICEID
Order="1">PCI\VEN_8086&DEV_0320&SUBSYS_00000000&REV_04</DEVICEID<DEVICEID
Order="2">PCI\VEN_8086&DEV_0320&SUBSYS_00000000</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&DEV_0320&REV_04</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&DEV_0320</DEVICEID>
<DEVICEID Order="5">PCI\VEN_8086&DEV_0320&CC_060400</DEVICEID>
<DEVICEID Order="6">PCI\VEN_8086&DEV_0320&CC_0604</DEVICEID>
</HARDWAREIDS>
<COMPATIBLEIDS>
<DEVICEID Order="1">PCI\VEN_8086&CC_060400</DEVICEID>
<DEVICEID Order="2">PCI\VEN_8086&CC_0604</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086</DEVICEID>
<DEVICEID Order="4">PCI\CC_060400</DEVICEID>
<DEVICEID Order="5">PCI\CC_0604</DEVICEID>
</COMPATIBLEIDS>
</DEVICE>
In other cases, if there is a specific Intel Driver that has not yet been
componentized, but a "standard" component will do, Target Designer can make
a match, but Component Designer does not. In the following example, TD
brought in the component "Standard Universal PCI to USB Host Controller"
(PnPID(819):"PCI\CC_0C0300") but CD made no match. PLUS CD does not give
errors when it cannot find a match!!
<DEVICE ConfigFlags="0">
<DEVICEDESC>Intel(R) 82801EB USB Universal Host Controller -
24D2</DEVICEDESC>
<HARDWAREIDS>
<DEVICEID
Order="1">PCI\VEN_8086&DEV_24D2&SUBSYS_10798086&REV_02</DEVICEID<DEVICEID
Order="2">PCI\VEN_8086&DEV_24D2&SUBSYS_10798086</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&DEV_24D2&CC_0C0300</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&DEV_24D2&CC_0C03</DEVICEID>
</HARDWAREIDS>
<COMPATIBLEIDS>
<DEVICEID Order="1">PCI\VEN_8086&DEV_24D2&REV_02</DEVICEID>
<DEVICEID Order="2">PCI\VEN_8086&DEV_24D2</DEVICEID>
<DEVICEID Order="3">PCI\VEN_8086&CC_0C0300</DEVICEID>
<DEVICEID Order="4">PCI\VEN_8086&CC_0C03</DEVICEID>
<DEVICEID Order="5">PCI\VEN_8086</DEVICEID>
<DEVICEID Order="6">PCI\CC_0C0300</DEVICEID>
<DEVICEID Order="7">PCI\CC_0C03</DEVICEID>
</COMPATIBLEIDS>
</DEVICE>
So, it seems this idea of a "Platform Macro Component" built with Component
Designer is pretty shaky right now. You have to do a lot of manual fiddling
to get it right.
Ann