diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2018-02-07 13:01:43 +0100 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2018-02-10 23:57:06 +0000 |
commit | 47dd96db9739a534eaf7df63a7d7b4b7cfc220c0 (patch) | |
tree | 6ccdefef10abcf2489adafdcd48815bb32097598 | |
parent | 9be42b59537aa41b483d392e3e00eb3ed653080f (diff) |
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 <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/23639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r-- | Makefile.inc | 5 | ||||
-rw-r--r-- | payloads/Kconfig | 7 | ||||
-rw-r--r-- | payloads/Makefile.inc | 2 | ||||
-rw-r--r-- | payloads/external/Makefile.inc | 2 |
4 files changed, 16 insertions, 0 deletions
diff --git a/Makefile.inc b/Makefile.inc index 0593d31f1f..379215b254 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -350,6 +350,11 @@ ifeq ($(CONFIG_COMPRESSED_PAYLOAD_LZ4),y) 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 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 \ |