[ofw] Doubts regarding loading of driver components
Jan Bottorff
jbottorff at xsigo.com
Mon Jan 7 00:51:21 PST 2008
>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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20080107/e5f66e2d/attachment.html>
More information about the ofw
mailing list