mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
7a23b027ec
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: Simon Glass <sjg@chromium.org> Acked-by: Masahiro Yamada <masahiroy@kernel.org> Link: https://lore.kernel.org/r/20240329032836.141899-3-sjg@chromium.org Signed-off-by: Will Deacon <will@kernel.org>
55 lines
1.4 KiB
Makefile
55 lines
1.4 KiB
Makefile
#
|
|
# arch/arm64/boot/Makefile
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies.
|
|
#
|
|
# This file is subject to the terms and conditions of the GNU General Public
|
|
# License. See the file "COPYING" in the main directory of this archive
|
|
# for more details.
|
|
#
|
|
# Copyright (C) 2012, ARM Ltd.
|
|
# Author: Will Deacon <will.deacon@arm.com>
|
|
#
|
|
# Based on the ia64 boot/Makefile.
|
|
#
|
|
|
|
OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
|
|
|
|
targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo \
|
|
Image.zst image.fit
|
|
|
|
$(obj)/Image: vmlinux FORCE
|
|
$(call if_changed,objcopy)
|
|
|
|
$(obj)/Image.bz2: $(obj)/Image FORCE
|
|
$(call if_changed,bzip2)
|
|
|
|
$(obj)/Image.gz: $(obj)/Image FORCE
|
|
$(call if_changed,gzip)
|
|
|
|
$(obj)/Image.lz4: $(obj)/Image FORCE
|
|
$(call if_changed,lz4)
|
|
|
|
$(obj)/Image.lzma: $(obj)/Image FORCE
|
|
$(call if_changed,lzma)
|
|
|
|
$(obj)/Image.lzo: $(obj)/Image FORCE
|
|
$(call if_changed,lzo)
|
|
|
|
$(obj)/Image.zst: $(obj)/Image FORCE
|
|
$(call if_changed,zstd)
|
|
|
|
$(obj)/image.fit: $(obj)/Image $(obj)/dts/dtbs-list FORCE
|
|
$(call if_changed,fit)
|
|
|
|
EFI_ZBOOT_PAYLOAD := Image
|
|
EFI_ZBOOT_BFD_TARGET := elf64-littleaarch64
|
|
EFI_ZBOOT_MACH_TYPE := ARM64
|
|
EFI_ZBOOT_FORWARD_CFI := $(CONFIG_ARM64_BTI_KERNEL)
|
|
|
|
EFI_ZBOOT_OBJCOPY_FLAGS = --add-symbol zboot_code_size=0x$$( \
|
|
$(NM) vmlinux|grep _kernel_codesize|cut -d' ' -f1)
|
|
|
|
include $(srctree)/drivers/firmware/efi/libstub/Makefile.zboot
|