The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "DeviceTree"
m (Updating) |
|||
Line 1: | Line 1: | ||
The '''device tree''' is a representation of hardware used by the boot loaders (iOS's [[iBoot (Bootloader)|iBoot]] and OS X's <code>boot.efi</code>) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (<code>/devices</code>), and Linux's <code>/sys/devices</code> (see [https://en.wikipedia.org/wiki/Device_tree device tree on Wikipedia] for more context). It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to [[kernelcache|XNU]] (the kernel). XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware. |
The '''device tree''' is a representation of hardware used by the boot loaders (iOS's [[iBoot (Bootloader)|iBoot]] and OS X's <code>boot.efi</code>) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (<code>/devices</code>), and Linux's <code>/sys/devices</code> (see [https://en.wikipedia.org/wiki/Device_tree device tree on Wikipedia] for more context). It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to [[kernelcache|XNU]] (the kernel). XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware. |
||
− | The device tree is packaged as an [[IMG3 File Format|IMG3]] file and is located in the [[IPSW File Format|IPSW]] at <code>/Firmware/all_flash/all_flash.{BoardCode}.production/DeviceTree.{BoardCode}.img3</code> on production devices. They are the same for every firmware for the device they are for, however, the [[Firmware Keys|keys]] are different every build. |
+ | The device tree is packaged as an [[IMG3 File Format|IMG3]] file and is located in the [[IPSW File Format|IPSW]] at <code>/Firmware/all_flash/all_flash.{BoardCode}.production/DeviceTree.{BoardCode}.RELEASE.img3/im4p</code> on production devices or <code>/Firmware/all_flash/all_flash.{BoardCode}.factoryfa/DeviceTree.{BoardCode}.DEVELOPMENT.img3/im4p</code> on development devices. They are the same for every firmware for the device they are for, however, the [[Firmware Keys|keys]] are different every build. |
== See Also == |
== See Also == |
Revision as of 20:04, 21 July 2016
The device tree is a representation of hardware used by the boot loaders (iOS's iBoot and OS X's boot.efi
) to provide the kernel with a mapping of hardware. The tree is a hierarchical representation of devices by connection, somewhat similar to Solaris's device tree (/devices
), and Linux's /sys/devices
(see device tree on Wikipedia for more context). It is used extensively by the boot loader, as it populates the various entries of the tree, and then passes it to XNU (the kernel). XNU's platform expert then maps these addresses and uses them to communicate with the I/O buses and other low level hardware.
The device tree is packaged as an IMG3 file and is located in the IPSW at /Firmware/all_flash/all_flash.{BoardCode}.production/DeviceTree.{BoardCode}.RELEASE.img3/im4p
on production devices or /Firmware/all_flash/all_flash.{BoardCode}.factoryfa/DeviceTree.{BoardCode}.DEVELOPMENT.img3/im4p
on development devices. They are the same for every firmware for the device they are for, however, the keys are different every build.