Grant Likely | 75b57ec | 2014-02-20 18:02:11 +0000 | [diff] [blame] | 1 | What: /sys/firmware/devicetree/* |
| 2 | Date: November 2013 |
Frank Rowand | 5e1743c | 2017-06-28 15:21:46 -0700 | [diff] [blame] | 3 | Contact: Grant Likely <grant.likely@arm.com>, devicetree@vger.kernel.org |
Grant Likely | 75b57ec | 2014-02-20 18:02:11 +0000 | [diff] [blame] | 4 | Description: |
| 5 | When using OpenFirmware or a Flattened Device Tree to enumerate |
| 6 | hardware, the device tree structure will be exposed in this |
| 7 | directory. |
| 8 | |
| 9 | It is possible for multiple device-tree directories to exist. |
| 10 | Some device drivers use a separate detached device tree which |
| 11 | have no attachment to the system tree and will appear in a |
| 12 | different subdirectory under /sys/firmware/devicetree. |
| 13 | |
| 14 | Userspace must not use the /sys/firmware/devicetree/base |
| 15 | path directly, but instead should follow /proc/device-tree |
| 16 | symlink. It is possible that the absolute path will change |
| 17 | in the future, but the symlink is the stable ABI. |
| 18 | |
| 19 | The /proc/device-tree symlink replaces the devicetree /proc |
| 20 | filesystem support, and has largely the same semantics and |
| 21 | should be compatible with existing userspace. |
| 22 | |
| 23 | The contents of /sys/firmware/devicetree/ is a |
| 24 | hierarchy of directories, one per device tree node. The |
| 25 | directory name is the resolved path component name (node |
| 26 | name plus address). Properties are represented as files |
| 27 | in the directory. The contents of each file is the exact |
| 28 | binary data from the device tree. |
Frank Rowand | 5e1743c | 2017-06-28 15:21:46 -0700 | [diff] [blame] | 29 | |
| 30 | What: /sys/firmware/fdt |
| 31 | Date: February 2015 |
| 32 | KernelVersion: 3.19 |
| 33 | Contact: Frank Rowand <frowand.list@gmail.com>, devicetree@vger.kernel.org |
| 34 | Description: |
| 35 | Exports the FDT blob that was passed to the kernel by |
| 36 | the bootloader. This allows userland applications such |
| 37 | as kexec to access the raw binary. This blob is also |
| 38 | useful when debugging since it contains any changes |
| 39 | made to the blob by the bootloader. |
| 40 | |
| 41 | The fact that this node does not reside under |
| 42 | /sys/firmware/device-tree is deliberate: FDT is also used |
| 43 | on arm64 UEFI/ACPI systems to communicate just the UEFI |
| 44 | and ACPI entry points, but the FDT is never unflattened |
| 45 | and used to configure the system. |
| 46 | |
| 47 | A CRC32 checksum is calculated over the entire FDT |
| 48 | blob, and verified at late_initcall time. The sysfs |
| 49 | entry is instantiated only if the checksum is valid, |
| 50 | i.e., if the FDT blob has not been modified in the mean |
| 51 | time. Otherwise, a warning is printed. |
| 52 | Users: kexec, debugging |