payloads/Kconfig: Allow compression for Linux payloads

Linux (bzImage) payloads used to be totally not compressed with
cbfstool. However, only bzImage is already compressed and initrd is
usually compressed, but the trampoline, parameter, and kernel command
line should be compressible.

Now cbfstool can copy segments instead when compression fails, so
compression for Linux payloads (including LinuxBoot) could be enabled
for compressible components.

TEST=With LZMA, parameter is compressed from 0x1000 to 0x4c,
     trampoline is compressed from 0x171 to 0x14b, kernel command line
     is not compressed for being too short (0x22), initrd is not
     compressed for being already compressed.

Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Change-Id: I8af3c904de55910a1298673d8ec2925a317bcff5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87935
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
Bill XIE 2025-06-04 08:38:52 +08:00 committed by Matt DeVillier
commit d461627668

View file

@ -68,8 +68,8 @@ config PAYLOAD_FILE
choice
prompt "Payload compression algorithm"
default COMPRESSED_PAYLOAD_LZMA
default COMPRESSED_PAYLOAD_NONE if PAYLOAD_LINUX || PAYLOAD_LINUXBOOT || PAYLOAD_FIT
depends on !PAYLOAD_LINUX && !PAYLOAD_LINUXBOOT && !PAYLOAD_FIT
default COMPRESSED_PAYLOAD_NONE if PAYLOAD_FIT
depends on !PAYLOAD_FIT
help
Choose the compression algorithm for the chosen payloads.
You can choose between None, LZMA, or LZ4.