0001 What: /sys/firmware/devicetree/*
0002 Date: November 2013
0003 Contact: Grant Likely <grant.likely@arm.com>, devicetree@vger.kernel.org
0004 Description:
0005 When using OpenFirmware or a Flattened Device Tree to enumerate
0006 hardware, the device tree structure will be exposed in this
0007 directory.
0008
0009 It is possible for multiple device-tree directories to exist.
0010 Some device drivers use a separate detached device tree which
0011 have no attachment to the system tree and will appear in a
0012 different subdirectory under /sys/firmware/devicetree.
0013
0014 Userspace must not use the /sys/firmware/devicetree/base
0015 path directly, but instead should follow /proc/device-tree
0016 symlink. It is possible that the absolute path will change
0017 in the future, but the symlink is the stable ABI.
0018
0019 The /proc/device-tree symlink replaces the devicetree /proc
0020 filesystem support, and has largely the same semantics and
0021 should be compatible with existing userspace.
0022
0023 The contents of /sys/firmware/devicetree/ is a
0024 hierarchy of directories, one per device tree node. The
0025 directory name is the resolved path component name (node
0026 name plus address). Properties are represented as files
0027 in the directory. The contents of each file is the exact
0028 binary data from the device tree.
0029
0030 What: /sys/firmware/fdt
0031 Date: February 2015
0032 KernelVersion: 3.19
0033 Contact: Frank Rowand <frowand.list@gmail.com>, devicetree@vger.kernel.org
0034 Description:
0035 Exports the FDT blob that was passed to the kernel by
0036 the bootloader. This allows userland applications such
0037 as kexec to access the raw binary. This blob is also
0038 useful when debugging since it contains any changes
0039 made to the blob by the bootloader.
0040
0041 The fact that this node does not reside under
0042 /sys/firmware/device-tree is deliberate: FDT is also used
0043 on arm64 UEFI/ACPI systems to communicate just the UEFI
0044 and ACPI entry points, but the FDT is never unflattened
0045 and used to configure the system.
0046
0047 A CRC32 checksum is calculated over the entire FDT
0048 blob, and verified at late_initcall time. The sysfs
0049 entry is instantiated only if the checksum is valid,
0050 i.e., if the FDT blob has not been modified in the mean
0051 time. Otherwise, a warning is printed.
0052 Users: kexec, debugging