In FreeBSD new-bus architecture, all devices are linked into a device
tree. The root of the tree is root_bus, it has a child called nexus0 added
during the device configuration phase.  I have two questions about this
new-bus code:

(1) What is the usage of this "nexus0" device?  Its parent (root_bus) does
not declare the probe method, so probing nexus0 can only return ENXIO for
us (from error_method()). 

(2) I guess that the probe process of all devices on the tree is triggered
by root_bus_configure() in subr_bus.c.  It is done from top to bottom,
i.e. the probe process should be propagated down the device tree from
root_bus. Am I right? How does this tree structure achieve the dynamic
feature of device configuring (adding/removing devices on the fly)? 

Having a pig picture often helps to understand the details more readily.

Any help is appreciated.

--------------------------------------------------
Zhihui Zhang.  Please visit http://www.freebsd.org
--------------------------------------------------



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to