diff --git a/docs/develop/kernel/device_manager_introduction.rst b/docs/develop/kernel/device_manager_introduction.rst index 93128aff2c..6dcbb6166c 100644 --- a/docs/develop/kernel/device_manager_introduction.rst +++ b/docs/develop/kernel/device_manager_introduction.rst @@ -23,7 +23,8 @@ Structurally, a *device_node* is a set of a module, attributes, and resources, as well as a parent and children. At a minimum, a node must have a module, all other components are optional. -TODO: picture of the device node tree +.. image:: device_tree.svg + :width: 800 When the system starts, there is only a root node registered. Only primary hardware busses register with the root node, such as PCI, and diff --git a/docs/develop/kernel/device_tree.svg b/docs/develop/kernel/device_tree.svg new file mode 100644 index 0000000000..f939a885d5 --- /dev/null +++ b/docs/develop/kernel/device_tree.svg @@ -0,0 +1,121 @@ + + +Device Root + + + + + + + +ACPI Root + + + + + + + +¹PCI Host + + + +Controller + + + +Generic + + + +Random + + + +ISA + + + + + + + + + + + +PCI Bus + + + +²PCI device 1 + + + +PCI device 2 + + + + + + + +PCI device 3 + + + +³Driver child + + + +node + + + +UHCI-PCI + + + +Bridge + + + +UHCI + + + +Controller + + + +UHCI device 1 + + + +UHCI device 2 + + + +¹PCI Host controller may be a child of ACPI root if the detection + + + +mechanism is ACPI instead of Legacy BIOS. Take a look at "busses/pci" for more details. + + + + + + + +B_DEVICE_FIXED_CHILD + + + +²This device is exposed by the PCI bus. + + + +³Your driver registers this node. + +