diff mbox

[v3,-next,4/5] x86: Add support for LZ4-compressed kernel

Message ID 1362484056-9778-5-git-send-email-kyungsik.lee@lge.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kyungsik Lee March 5, 2013, 11:47 a.m. UTC
This patch integrates the LZ4 decompression code to the x86 pre-boot code.
And it depends on two patchs below

lib: Add support for LZ4-compressed kernel
decompressor: Add LZ4 decompressor module

Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>
---
 arch/x86/Kconfig                  | 1 +
 arch/x86/boot/compressed/Makefile | 5 ++++-
 arch/x86/boot/compressed/misc.c   | 4 ++++
 3 files changed, 9 insertions(+), 1 deletion(-)

Comments

H. Peter Anvin March 5, 2013, 4:13 p.m. UTC | #1
Please add the new magic to Documentation/x86/boot.txt as well.

Kyungsik Lee <kyungsik.lee@lge.com> wrote:

>This patch integrates the LZ4 decompression code to the x86 pre-boot
>code.
>And it depends on two patchs below
>
>lib: Add support for LZ4-compressed kernel
>decompressor: Add LZ4 decompressor module
>
>Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>
>---
> arch/x86/Kconfig                  | 1 +
> arch/x86/boot/compressed/Makefile | 5 ++++-
> arch/x86/boot/compressed/misc.c   | 4 ++++
> 3 files changed, 9 insertions(+), 1 deletion(-)
>
>diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>index 225543b..ab916fd 100644
>--- a/arch/x86/Kconfig
>+++ b/arch/x86/Kconfig
>@@ -63,6 +63,7 @@ config X86
> 	select HAVE_KERNEL_LZMA
> 	select HAVE_KERNEL_XZ
> 	select HAVE_KERNEL_LZO
>+	select HAVE_KERNEL_LZ4
> 	select HAVE_HW_BREAKPOINT
> 	select HAVE_MIXED_BREAKPOINTS_REGS
> 	select PERF_EVENTS
>diff --git a/arch/x86/boot/compressed/Makefile
>b/arch/x86/boot/compressed/Makefile
>index 8a84501..c275db5 100644
>--- a/arch/x86/boot/compressed/Makefile
>+++ b/arch/x86/boot/compressed/Makefile
>@@ -4,7 +4,7 @@
> # create a compressed vmlinux image from the original vmlinux
> #
> 
>-targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz
>vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo
>head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o
>+targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz
>vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo
>vmlinux.bin.lz4 head_$(BITS).o misc.o string.o cmdline.o
>early_serial_console.o piggy.o
> 
> KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
> KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
>@@ -64,12 +64,15 @@ $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
> 	$(call if_changed,xzkern)
> $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
> 	$(call if_changed,lzo)
>+$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
>+	$(call if_changed,lz4)
> 
> suffix-$(CONFIG_KERNEL_GZIP)	:= gz
> suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
> suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
> suffix-$(CONFIG_KERNEL_XZ)	:= xz
> suffix-$(CONFIG_KERNEL_LZO) 	:= lzo
>+suffix-$(CONFIG_KERNEL_LZ4) 	:= lz4
> 
> quiet_cmd_mkpiggy = MKPIGGY $@
>       cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false )
>diff --git a/arch/x86/boot/compressed/misc.c
>b/arch/x86/boot/compressed/misc.c
>index 88f7ff6..166a0a8 100644
>--- a/arch/x86/boot/compressed/misc.c
>+++ b/arch/x86/boot/compressed/misc.c
>@@ -145,6 +145,10 @@ static int lines, cols;
> #include "../../../../lib/decompress_unlzo.c"
> #endif
> 
>+#ifdef CONFIG_KERNEL_LZ4
>+#include "../../../../lib/decompress_unlz4.c"
>+#endif
>+
> static void scroll(void)
> {
> 	int i;
Kyungsik Lee March 6, 2013, 6:37 a.m. UTC | #2
On Tue, Mar 05, 2013 at 08:13:38AM -0800, H. Peter Anvin wrote:
> Please add the new magic to Documentation/x86/boot.txt as well.

Ok, I will update it as soon as the patch set is stabilized.

Thanks,
Kyungsik

> >This patch integrates the LZ4 decompression code to the x86 pre-boot
> >code.
> >And it depends on two patchs below
> >
> >lib: Add support for LZ4-compressed kernel
> >decompressor: Add LZ4 decompressor module
> >
> >Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>
> >---
> > arch/x86/Kconfig                  | 1 +
> > arch/x86/boot/compressed/Makefile | 5 ++++-
> > arch/x86/boot/compressed/misc.c   | 4 ++++
> > 3 files changed, 9 insertions(+), 1 deletion(-)
> >
> >diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> >index 225543b..ab916fd 100644
> >--- a/arch/x86/Kconfig
> >+++ b/arch/x86/Kconfig
> >@@ -63,6 +63,7 @@ config X86
> > 	select HAVE_KERNEL_LZMA
> > 	select HAVE_KERNEL_XZ
> > 	select HAVE_KERNEL_LZO
> >+	select HAVE_KERNEL_LZ4
> > 	select HAVE_HW_BREAKPOINT
> > 	select HAVE_MIXED_BREAKPOINTS_REGS
> > 	select PERF_EVENTS
> >diff --git a/arch/x86/boot/compressed/Makefile
> >b/arch/x86/boot/compressed/Makefile
> >index 8a84501..c275db5 100644
> >--- a/arch/x86/boot/compressed/Makefile
> >+++ b/arch/x86/boot/compressed/Makefile
> >@@ -4,7 +4,7 @@
> > # create a compressed vmlinux image from the original vmlinux
> > #
> > 
> >-targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz
> >vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo
> >head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o
> >+targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz
> >vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo
> >vmlinux.bin.lz4 head_$(BITS).o misc.o string.o cmdline.o
> >early_serial_console.o piggy.o
> > 
> > KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
> > KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
> >@@ -64,12 +64,15 @@ $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
> > 	$(call if_changed,xzkern)
> > $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
> > 	$(call if_changed,lzo)
> >+$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
> >+	$(call if_changed,lz4)
> > 
> > suffix-$(CONFIG_KERNEL_GZIP)	:= gz
> > suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
> > suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
> > suffix-$(CONFIG_KERNEL_XZ)	:= xz
> > suffix-$(CONFIG_KERNEL_LZO) 	:= lzo
> >+suffix-$(CONFIG_KERNEL_LZ4) 	:= lz4
> > 
> > quiet_cmd_mkpiggy = MKPIGGY $@
> >       cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false )
> >diff --git a/arch/x86/boot/compressed/misc.c
> >b/arch/x86/boot/compressed/misc.c
> >index 88f7ff6..166a0a8 100644
> >--- a/arch/x86/boot/compressed/misc.c
> >+++ b/arch/x86/boot/compressed/misc.c
> >@@ -145,6 +145,10 @@ static int lines, cols;
> > #include "../../../../lib/decompress_unlzo.c"
> > #endif
> > 
> >+#ifdef CONFIG_KERNEL_LZ4
> >+#include "../../../../lib/decompress_unlz4.c"
> >+#endif
> >+
> > static void scroll(void)
> > {
> > 	int i;
> 
> -- 
> Sent from my mobile phone. Please excuse brevity and lack of formatting.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andrew Morton April 25, 2013, 10:43 p.m. UTC | #3
On Wed, 6 Mar 2013 15:37:38 +0900 Kyungsik Lee <kyungsik.lee@lge.com> wrote:

> On Tue, Mar 05, 2013 at 08:13:38AM -0800, H. Peter Anvin wrote:
> > Please add the new magic to Documentation/x86/boot.txt as well.
> 
> Ok, I will update it as soon as the patch set is stabilized.

It's been six weeks.  Please send the update asap.
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 225543b..ab916fd 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -63,6 +63,7 @@  config X86
 	select HAVE_KERNEL_LZMA
 	select HAVE_KERNEL_XZ
 	select HAVE_KERNEL_LZO
+	select HAVE_KERNEL_LZ4
 	select HAVE_HW_BREAKPOINT
 	select HAVE_MIXED_BREAKPOINTS_REGS
 	select PERF_EVENTS
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 8a84501..c275db5 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -4,7 +4,7 @@ 
 # create a compressed vmlinux image from the original vmlinux
 #
 
-targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o
+targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o
 
 KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
 KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
@@ -64,12 +64,15 @@  $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,xzkern)
 $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,lzo)
+$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
+	$(call if_changed,lz4)
 
 suffix-$(CONFIG_KERNEL_GZIP)	:= gz
 suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
 suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
 suffix-$(CONFIG_KERNEL_XZ)	:= xz
 suffix-$(CONFIG_KERNEL_LZO) 	:= lzo
+suffix-$(CONFIG_KERNEL_LZ4) 	:= lz4
 
 quiet_cmd_mkpiggy = MKPIGGY $@
       cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false )
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index 88f7ff6..166a0a8 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -145,6 +145,10 @@  static int lines, cols;
 #include "../../../../lib/decompress_unlzo.c"
 #endif
 
+#ifdef CONFIG_KERNEL_LZ4
+#include "../../../../lib/decompress_unlz4.c"
+#endif
+
 static void scroll(void)
 {
 	int i;