aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2013-09-16 11:55:20 -0400
committerRalf Baechle <ralf@linux-mips.org>2013-10-29 16:24:34 -0400
commit31c4867d6c75450f98398a1172f03383c4881c98 (patch)
tree0fb7a8527321eea61e8254acec0d7b1d8de3c4f4
parente970a72ec1e5d6aa3c03da7970450bc37777ba52 (diff)
MIPS: ZBOOT: Support LZ4 compression scheme
Add support for the LZ4 compression scheme in the ZBOOT decompression stub, in order to support it we need to: - select the "lz4" compression tool to compress the vmlinux.bin payload - memcpy() is also required for decompress_unlz4.c so we share the implementation between GZIP, XZ and now LZ4 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: james.hogan@imgtec.com Patchwork: https://patchwork.linux-mips.org/patch/5829/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/boot/compressed/Makefile1
-rw-r--r--arch/mips/boot/compressed/decompress.c7
3 files changed, 8 insertions, 1 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index a749defb1582..0cff92315ac4 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1489,6 +1489,7 @@ config SYS_SUPPORTS_ZBOOT
1489 bool 1489 bool
1490 select HAVE_KERNEL_GZIP 1490 select HAVE_KERNEL_GZIP
1491 select HAVE_KERNEL_BZIP2 1491 select HAVE_KERNEL_BZIP2
1492 select HAVE_KERNEL_LZ4
1492 select HAVE_KERNEL_LZMA 1493 select HAVE_KERNEL_LZMA
1493 select HAVE_KERNEL_LZO 1494 select HAVE_KERNEL_LZO
1494 select HAVE_KERNEL_XZ 1495 select HAVE_KERNEL_XZ
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index c1f8f0753cc8..ca0c343c9ea5 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -48,6 +48,7 @@ $(obj)/vmlinux.bin: $(KBUILD_IMAGE) FORCE
48 48
49tool_$(CONFIG_KERNEL_GZIP) = gzip 49tool_$(CONFIG_KERNEL_GZIP) = gzip
50tool_$(CONFIG_KERNEL_BZIP2) = bzip2 50tool_$(CONFIG_KERNEL_BZIP2) = bzip2
51tool_$(CONFIG_KERNEL_LZ4) = lz4
51tool_$(CONFIG_KERNEL_LZMA) = lzma 52tool_$(CONFIG_KERNEL_LZMA) = lzma
52tool_$(CONFIG_KERNEL_LZO) = lzo 53tool_$(CONFIG_KERNEL_LZO) = lzo
53tool_$(CONFIG_KERNEL_XZ) = xzkern 54tool_$(CONFIG_KERNEL_XZ) = xzkern
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c
index cff7b7d1ff45..a8c6fd6a4406 100644
--- a/arch/mips/boot/compressed/decompress.c
+++ b/arch/mips/boot/compressed/decompress.c
@@ -43,7 +43,8 @@ void error(char *x)
43/* activate the code for pre-boot environment */ 43/* activate the code for pre-boot environment */
44#define STATIC static 44#define STATIC static
45 45
46#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_XZ) 46#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_XZ) || \
47 defined(CONFIG_KERNEL_LZ4)
47void *memcpy(void *dest, const void *src, size_t n) 48void *memcpy(void *dest, const void *src, size_t n)
48{ 49{
49 int i; 50 int i;
@@ -72,6 +73,10 @@ void *memset(void *s, int c, size_t n)
72#include "../../../../lib/decompress_bunzip2.c" 73#include "../../../../lib/decompress_bunzip2.c"
73#endif 74#endif
74 75
76#ifdef CONFIG_KERNEL_LZ4
77#include "../../../../lib/decompress_unlz4.c"
78#endif
79
75#ifdef CONFIG_KERNEL_LZMA 80#ifdef CONFIG_KERNEL_LZMA
76#include "../../../../lib/decompress_unlzma.c" 81#include "../../../../lib/decompress_unlzma.c"
77#endif 82#endif