Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/23639
Change subject: payloads: Add an option to compress secondary payloads ......................................................................
payloads: Add an option to compress secondary payloads
Both grub and SeaBIOS can chainload lzma compressed payloads. Therefore it is beneficiary to compress secondary payloads like memtest86+, coreinfo, nvramcui,... for both size reasons and often also speed reasons since the limiting factor is generally the IO of the boot device.
Tested with SeaBIOS and memtest86+ master on Thinkpad X220.
Change-Id: Iddfd6fcf4112d255cc7b2b49b99bf5ea4d6f8db4 Signed-off-by: Arthur Heymans arthur@aheymans.xyz --- M Makefile.inc M payloads/Kconfig M payloads/Makefile.inc M payloads/external/Makefile.inc 4 files changed, 16 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/39/23639/1
diff --git a/Makefile.inc b/Makefile.inc index 0593d31..379215b 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -350,6 +350,11 @@ CBFS_PAYLOAD_COMPRESS_FLAG:=LZ4 endif
+CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG:=none +ifeq ($(CONFIG_COMPRESS_SECONDARY_PAYLOAD),y) +CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG:=LZMA +endif + CBFS_PRERAM_COMPRESS_FLAG:=none ifeq ($(CONFIG_COMPRESS_PRERAM_STAGES),y) CBFS_PRERAM_COMPRESS_FLAG:=LZ4 diff --git a/payloads/Kconfig b/payloads/Kconfig index 125ca61..4dd733f 100644 --- a/payloads/Kconfig +++ b/payloads/Kconfig @@ -82,6 +82,13 @@ Add the payload to cbfs as a flat binary type instead of as an elf payload
+config COMPRESS_SECONDARY_PAYLOAD + bool "Use LZMA compression for secondary payloads" + default y + help + In order to reduce the size secondary payloads take up in the + ROM chip coreboot can compress them using the LZMA algorithm. + menu "Secondary Payloads"
config COREINFO_SECONDARY_PAYLOAD diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc index b27d7fe..d894dec 100644 --- a/payloads/Makefile.inc +++ b/payloads/Makefile.inc @@ -16,10 +16,12 @@ cbfs-files-$(CONFIG_COREINFO_SECONDARY_PAYLOAD) += img/coreinfo img/coreinfo-file := payloads/coreinfo/build/coreinfo.elf img/coreinfo-type := payload +img/coreinfo-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
cbfs-files-$(CONFIG_NVRAMCUI_SECONDARY_PAYLOAD) += img/nvramcui img/nvramcui-file := payloads/nvramcui/nvramcui.elf img/nvramcui-type := payload +img/nvramcui-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
PAYLOADS_LIST=\ payloads/coreinfo \ diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index 62d8a44..ec7d9a8 100644 --- a/payloads/external/Makefile.inc +++ b/payloads/external/Makefile.inc @@ -185,12 +185,14 @@ cbfs-files-$(CONFIG_TINT_SECONDARY_PAYLOAD) += img/tint img/tint-file := payloads/external/tint/tint/tint.elf img/tint-type := payload +img/tint-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
# Memtest86+
cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest img/memtest-type := payload +img/memtest-compression := $(CBFS_SECONDARY_PAYLOAD_COMPRESS_FLAG)
ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy) MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \