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

Commit f9b493ac authored by Kyungsik Lee's avatar Kyungsik Lee Committed by Linus Torvalds
Browse files

arm: add support for LZ4-compressed kernel



Integrates the LZ4 decompression code to the arm pre-boot code.

Signed-off-by: default avatarKyungsik Lee <kyungsik.lee@lge.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Florian Fainelli <florian@openwrt.org>
Cc: Yann Collet <yann.collet.73@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e76e1fdf
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -657,8 +657,9 @@ Protocol: 2.08+
  uncompressed data should be determined using the standard magic
  numbers.  The currently supported compression formats are gzip
  (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A), LZMA
  (magic number 5D 00), and XZ (magic number FD 37).  The uncompressed
  payload is currently always ELF (magic number 7F 45 4C 46).
  (magic number 5D 00), XZ (magic number FD 37), and LZ4 (magic number
  02 21).  The uncompressed payload is currently always ELF (magic
  number 7F 45 4C 46).

Field name:	payload_length
Type:		read
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ config ARM
	select HAVE_IDE if PCI || ISA || PCMCIA
	select HAVE_IRQ_TIME_ACCOUNTING
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_LZ4
	select HAVE_KERNEL_LZMA
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_XZ
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ piggy.gzip
piggy.lzo
piggy.lzma
piggy.xzkern
piggy.lz4
vmlinux
vmlinux.lds

+2 −1
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ suffix_$(CONFIG_KERNEL_GZIP) = gzip
suffix_$(CONFIG_KERNEL_LZO)  = lzo
suffix_$(CONFIG_KERNEL_LZMA) = lzma
suffix_$(CONFIG_KERNEL_XZ)   = xzkern
suffix_$(CONFIG_KERNEL_LZ4)  = lz4

# Borrowed libfdt files for the ATAG compatibility mode

@@ -115,7 +116,7 @@ targets := vmlinux vmlinux.lds \
		 font.o font.c head.o misc.o $(OBJS)

# Make sure files are removed during clean
extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern \
extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern piggy.lz4 \
		 lib1funcs.S ashldi3.S $(libfdt) $(libfdt_hdrs) \
		 hyp-stub.S

+4 −0
Original line number Diff line number Diff line
@@ -51,6 +51,10 @@ extern char * strstr(const char * s1, const char *s2);
#include "../../../../lib/decompress_unxz.c"
#endif

#ifdef CONFIG_KERNEL_LZ4
#include "../../../../lib/decompress_unlz4.c"
#endif

int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
{
	return decompress(input, len, NULL, NULL, output, NULL, error);
Loading