• Ard Biesheuvel's avatar
    of/fdt: export fdt blob as /sys/firmware/fdt · 08d53aa5
    Ard Biesheuvel authored
    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: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
    08d53aa5
fdt.c 28.2 KB