diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2013-09-16 11:55:20 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-10-29 16:24:34 -0400 |
commit | 31c4867d6c75450f98398a1172f03383c4881c98 (patch) | |
tree | 0fb7a8527321eea61e8254acec0d7b1d8de3c4f4 | |
parent | e970a72ec1e5d6aa3c03da7970450bc37777ba52 (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/Kconfig | 1 | ||||
-rw-r--r-- | arch/mips/boot/compressed/Makefile | 1 | ||||
-rw-r--r-- | arch/mips/boot/compressed/decompress.c | 7 |
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 | ||
49 | tool_$(CONFIG_KERNEL_GZIP) = gzip | 49 | tool_$(CONFIG_KERNEL_GZIP) = gzip |
50 | tool_$(CONFIG_KERNEL_BZIP2) = bzip2 | 50 | tool_$(CONFIG_KERNEL_BZIP2) = bzip2 |
51 | tool_$(CONFIG_KERNEL_LZ4) = lz4 | ||
51 | tool_$(CONFIG_KERNEL_LZMA) = lzma | 52 | tool_$(CONFIG_KERNEL_LZMA) = lzma |
52 | tool_$(CONFIG_KERNEL_LZO) = lzo | 53 | tool_$(CONFIG_KERNEL_LZO) = lzo |
53 | tool_$(CONFIG_KERNEL_XZ) = xzkern | 54 | tool_$(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) | ||
47 | void *memcpy(void *dest, const void *src, size_t n) | 48 | void *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 |