|
|
|
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
|