From 47dd96db9739a534eaf7df63a7d7b4b7cfc220c0 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Wed, 7 Feb 2018 13:01:43 +0100 Subject: payloads: Add an option to compress secondary payloads Both GRUB and SeaBIOS can chainload lzma compressed payloads. Therefore it is beneficial 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 Reviewed-on: https://review.coreboot.org/23639 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- payloads/Kconfig | 7 +++++++ payloads/Makefile.inc | 2 ++ payloads/external/Makefile.inc | 2 ++ 3 files changed, 11 insertions(+) (limited to 'payloads') diff --git a/payloads/Kconfig b/payloads/Kconfig index 125ca61ae4..2a329ac08f 100644 --- a/payloads/Kconfig +++ b/payloads/Kconfig @@ -82,6 +82,13 @@ config PAYLOAD_IS_FLAT_BINARY 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 they can be compressed using the LZMA algorithm. + menu "Secondary Payloads" config COREINFO_SECONDARY_PAYLOAD diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc index b27d7fe23e..d894dec4a7 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 62d8a440fa..ec7d9a83ba 100644 --- a/payloads/external/Makefile.inc +++ b/payloads/external/Makefile.inc @@ -185,12 +185,14 @@ payloads/external/tint/tint/tint.elf tint: 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 \ -- cgit v1.2.3