| What: /sys/firmware/devicetree/* |
| Date: November 2013 |
| Contact: Grant Likely <grant.likely@arm.com>, devicetree@vger.kernel.org |
| Description: |
| When using OpenFirmware or a Flattened Device Tree to enumerate |
| hardware, the device tree structure will be exposed in this |
| directory. |
| |
| It is possible for multiple device-tree directories to exist. |
| Some device drivers use a separate detached device tree which |
| have no attachment to the system tree and will appear in a |
| different subdirectory under /sys/firmware/devicetree. |
| |
| Userspace must not use the /sys/firmware/devicetree/base |
| path directly, but instead should follow /proc/device-tree |
| symlink. It is possible that the absolute path will change |
| in the future, but the symlink is the stable ABI. |
| |
| The /proc/device-tree symlink replaces the devicetree /proc |
| filesystem support, and has largely the same semantics and |
| should be compatible with existing userspace. |
| |
| The contents of /sys/firmware/devicetree/ is a |
| hierarchy of directories, one per device tree node. The |
| directory name is the resolved path component name (node |
| name plus address). Properties are represented as files |
| in the directory. The contents of each file is the exact |
| binary data from the device tree. |
| |
| What: /sys/firmware/fdt |
| Date: February 2015 |
| KernelVersion: 3.19 |
| Contact: Frank Rowand <frowand.list@gmail.com>, devicetree@vger.kernel.org |
| Description: |
| Exports the FDT blob that was passed to the kernel by |
| the bootloader. This allows userland applications such |
| as kexec to access the raw binary. This blob is also |
| useful when debugging since it contains any changes |
| made to the blob by the bootloader. |
| |
| The fact that this node does not reside under |
| /sys/firmware/device-tree is deliberate: FDT is also used |
| on arm64 UEFI/ACPI systems to communicate just the UEFI |
| and ACPI entry points, but the FDT is never unflattened |
| and used to configure the system. |
| |
| A CRC32 checksum is calculated over the entire FDT |
| blob, and verified at late_initcall time. The sysfs |
| entry is instantiated only if the checksum is valid, |
| i.e., if the FDT blob has not been modified in the mean |
| time. Otherwise, a warning is printed. |
| Users: kexec, debugging |