• Simon Glass's avatar
    arm64: boot: Support Flat Image Tree · 7a23b027
    Simon Glass authored
    Add a script which produces a Flat Image Tree (FIT), a single file
    containing the built kernel and associated devicetree files.
    Compression defaults to gzip which gives a good balance of size and
    performance.
    
    The files compress from about 86MB to 24MB using this approach.
    
    The FIT can be used by bootloaders which support it, such as U-Boot
    and Linuxboot. It permits automatic selection of the correct
    devicetree, matching the compatible string of the running board with
    the closest compatible string in the FIT. There is no need for
    filenames or other workarounds.
    
    Add a 'make image.fit' build target for arm64, as well.
    
    The FIT can be examined using 'dumpimage -l'.
    
    This uses the 'dtbs-list' file but processes only .dtb files, ignoring
    the overlay .dtbo files.
    
    This features requires pylibfdt (use 'pip install libfdt'). It also
    requires compression utilities for the algorithm being used. Supported
    compression options are the same as the Image.xxx files. Use
    FIT_COMPRESSION to select an algorithm other than gzip.
    
    While FIT supports a ramdisk / initrd, no attempt is made to support
    this here, since it must be built separately from the Linux build.
    Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
    Acked-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Link: https://lore.kernel.org/r/20240329032836.141899-3-sjg@chromium.orgSigned-off-by: default avatarWill Deacon <will@kernel.org>
    7a23b027
Makefile.lib 21.7 KB