>When are ibbus.sys and ibiou.sys comes into the picture.
 
The driver iibus.sys is a root enumerated driver. This means the OS just 
creates a device pdo on the root bus at system boot time. The driver then is 
called at DriverEntry based on the "start" entry in the service registry key. 
It's currently set to be loaded as needed by the PnP manager, although to boot 
over the fabric it needs to become a boot start driver. The AddDevice routine 
is called by the PnP managed when it matches up the instance id reported by the 
root bus enumerated pdo with the installed driver instance. This happens early.

 

There isn't a PnP parent child relationship between the ibbus and mthca 
drivers. It's actually a very strange relationship, which there has been some 
discussion of changing. The mthca and ibbus find out about each other via the 
PnP interface notifications, and then the mthca driver uses the ibbus driver to 
implement some of the common functionality (via a function call interface). The 
OS thinks (as displayed by devicetree) the mthca driver is a bus driver, 
because it responds to query relationship PnP irps, although the actual work is 
done by ibbus.

 

The registry entry that causes the root bus enumerator to create the pdo for 
ibbus is created by the mthca device coinstaller using driver setup apis. The 
mthca driver is found on the PCI bus by the PCI bus enumerator.

 

Jan

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to