Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e8699f7 authored by Albin Tonnerre's avatar Albin Tonnerre Committed by Russell King
Browse files

ARM: 6026/1: ARM: Add support for LZMA-compressed kernel images



This patch allows using a kernel image compressed with LZMA on ARM.
Extracting the image is fairly slow, but it might be useful on machines
with a very limited amount of storage, as the size benefit is quite
significant (about 25% smaller with LZMA compared to GZIP)

Tested-by: default avatarMartin Michlmayr <tbm@cyrius.com>
Tested-by: default avatarPaulius Zaleckas <paulius.zaleckas@gmail.com>
Signed-off-by: default avatarAlbin Tonnerre <albin.tonnerre@free-electrons.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 5cfc8ee0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ config ARM
	select HAVE_GENERIC_DMA_COHERENT
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_LZMA
	select HAVE_PERF_EVENTS
	select PERF_USE_VMALLOC
	help
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/

suffix_$(CONFIG_KERNEL_GZIP) = gzip
suffix_$(CONFIG_KERNEL_LZO)  = lzo
suffix_$(CONFIG_KERNEL_LZMA) = lzma

targets       := vmlinux vmlinux.lds \
		 piggy.$(suffix_y) piggy.$(suffix_y).o \
+4 −0
Original line number Diff line number Diff line
@@ -40,6 +40,10 @@ extern void error(char *);
#include "../../../../lib/decompress_unlzo.c"
#endif

#ifdef CONFIG_KERNEL_LZMA
#include "../../../../lib/decompress_unlzma.c"
#endif

void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
{
	decompress(input, len, NULL, NULL, output, NULL, error);
+6 −0
Original line number Diff line number Diff line
	.section .piggydata,#alloc
	.globl	input_data
input_data:
	.incbin	"arch/arm/boot/compressed/piggy.lzma"
	.globl	input_data_end
input_data_end: