of/fdt: export fdt blob as /sys/firmware/fdt
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 14 Nov 2014 17:05:35 +0000 (18:05 +0100)
committerGrant Likely <grant.likely@linaro.org>
Wed, 19 Nov 2014 15:09:49 +0000 (15:09 +0000)
commit08d53aa58cb162e65e25dbe31d28438657cb8e33
tree2fdc4912e8036703fce7c4638ab2a4ea17fac034
parent53a4ab96c61a34d62717b1481f6043e0b4338d74
of/fdt: export fdt blob as /sys/firmware/fdt

Create a new /sys entry '/sys/firmware/fdt' to export the FDT blob
that was passed to the kernel by the bootloader. This allows userland
applications such as kexec to access the raw binary.

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.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
drivers/of/Kconfig
drivers/of/fdt.c