linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
       [not found] <1258729323-16318-1-git-send-email-albin.tonnerre@free-electrons.com>
@ 2010-03-11 19:24 ` Albin Tonnerre
  2010-03-11 19:27   ` Albin Tonnerre
  2010-03-25  8:56   ` Paulius Zaleckas
  0 siblings, 2 replies; 8+ messages in thread
From: Albin Tonnerre @ 2010-03-11 19:24 UTC (permalink / raw)
  To: linux-arm-kernel

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:
Gzip: Data Size:    1586352 Bytes = 1549.17 kB = 1.51 MB
LZMA: Data Size:    2135916 Bytes = 2085.86 kB = 2.04 MB

Signed-off-by: Albin Tonnerre <albin.tonnerre@free-electrons.com>
Tested-by: Martin Michlmayr <tbm@cyrius.com>
---
v2: Updated to apply on top of 2.6.34-rc1

 arch/arm/Kconfig                      |    1 +
 arch/arm/boot/compressed/Makefile     |    1 +
 arch/arm/boot/compressed/decompress.c |    4 ++++
 arch/arm/boot/compressed/piggy.lzma.S |    6 ++++++
 4 files changed, 12 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/boot/compressed/piggy.lzma.S

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3b18128..3ebc7c3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -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
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 97c89e7..53faa90 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -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 \
diff --git a/arch/arm/boot/compressed/decompress.c b/arch/arm/boot/compressed/decompress.c
index 0da382f..d554df6 100644
--- a/arch/arm/boot/compressed/decompress.c
+++ b/arch/arm/boot/compressed/decompress.c
@@ -39,6 +39,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);
diff --git a/arch/arm/boot/compressed/piggy.lzma.S b/arch/arm/boot/compressed/piggy.lzma.S
new file mode 100644
index 0000000..d7e69cf
--- /dev/null
+++ b/arch/arm/boot/compressed/piggy.lzma.S
@@ -0,0 +1,6 @@
+	.section .piggydata,#alloc
+	.globl	input_data
+input_data:
+	.incbin	"arch/arm/boot/compressed/piggy.lzma"
+	.globl	input_data_end
+input_data_end:
-- 
1.7.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-03-11 19:24 ` [PATCH v2] ARM: Add support for LZMA-compressed kernel images Albin Tonnerre
@ 2010-03-11 19:27   ` Albin Tonnerre
  2010-03-25  8:56   ` Paulius Zaleckas
  1 sibling, 0 replies; 8+ messages in thread
From: Albin Tonnerre @ 2010-03-11 19:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 11 Mar 2010 20:24 +0100, Albin Tonnerre wrote :
> 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:
> Gzip: Data Size:    1586352 Bytes = 1549.17 kB = 1.51 MB
> LZMA: Data Size:    2135916 Bytes = 2085.86 kB = 2.04 MB

Meh. That should of course be:
LZMA ... 1.51MB
Gzip ... 2.04MB
-- 
Albin Tonnerre, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-03-11 19:24 ` [PATCH v2] ARM: Add support for LZMA-compressed kernel images Albin Tonnerre
  2010-03-11 19:27   ` Albin Tonnerre
@ 2010-03-25  8:56   ` Paulius Zaleckas
  2010-05-06  9:04     ` Andrea Adami
  1 sibling, 1 reply; 8+ messages in thread
From: Paulius Zaleckas @ 2010-03-25  8:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 03/11/2010 09:24 PM, Albin Tonnerre wrote:
> 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:
> Gzip: Data Size:    1586352 Bytes = 1549.17 kB = 1.51 MB
> LZMA: Data Size:    2135916 Bytes = 2085.86 kB = 2.04 MB
>
> Signed-off-by: Albin Tonnerre<albin.tonnerre@free-electrons.com>
> Tested-by: Martin Michlmayr<tbm@cyrius.com>

You can add
Tested-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>

I think you should submit this patch to Russell's patch system.

> ---
> v2: Updated to apply on top of 2.6.34-rc1
>
>   arch/arm/Kconfig                      |    1 +
>   arch/arm/boot/compressed/Makefile     |    1 +
>   arch/arm/boot/compressed/decompress.c |    4 ++++
>   arch/arm/boot/compressed/piggy.lzma.S |    6 ++++++
>   4 files changed, 12 insertions(+), 0 deletions(-)
>   create mode 100644 arch/arm/boot/compressed/piggy.lzma.S
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 3b18128..3ebc7c3 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -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
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index 97c89e7..53faa90 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -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 \
> diff --git a/arch/arm/boot/compressed/decompress.c b/arch/arm/boot/compressed/decompress.c
> index 0da382f..d554df6 100644
> --- a/arch/arm/boot/compressed/decompress.c
> +++ b/arch/arm/boot/compressed/decompress.c
> @@ -39,6 +39,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);
> diff --git a/arch/arm/boot/compressed/piggy.lzma.S b/arch/arm/boot/compressed/piggy.lzma.S
> new file mode 100644
> index 0000000..d7e69cf
> --- /dev/null
> +++ b/arch/arm/boot/compressed/piggy.lzma.S
> @@ -0,0 +1,6 @@
> +	.section .piggydata,#alloc
> +	.globl	input_data
> +input_data:
> +	.incbin	"arch/arm/boot/compressed/piggy.lzma"
> +	.globl	input_data_end
> +input_data_end:

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-03-25  8:56   ` Paulius Zaleckas
@ 2010-05-06  9:04     ` Andrea Adami
  2010-05-06 13:30       ` Albin Tonnerre
  2010-05-06 18:09       ` Russell King - ARM Linux
  0 siblings, 2 replies; 8+ messages in thread
From: Andrea Adami @ 2010-05-06  9:04 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Mar 25, 2010 at 10:56 AM, Paulius Zaleckas
<paulius.zaleckas@gmail.com> wrote:
> On 03/11/2010 09:24 PM, Albin Tonnerre wrote:
>>
>> 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:
>> Gzip: Data Size: ? ?1586352 Bytes = 1549.17 kB = 1.51 MB
>> LZMA: Data Size: ? ?2135916 Bytes = 2085.86 kB = 2.04 MB
>>
>> Signed-off-by: Albin Tonnerre<albin.tonnerre@free-electrons.com>
>> Tested-by: Martin Michlmayr<tbm@cyrius.com>
>
> You can add
> Tested-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
>
> I think you should submit this patch to Russell's patch system.
>
>> ---
>> v2: Updated to apply on top of 2.6.34-rc1
>>
>> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ? ? ?| ? ?1 +
>> ?arch/arm/boot/compressed/Makefile ? ? | ? ?1 +
>> ?arch/arm/boot/compressed/decompress.c | ? ?4 ++++
>> ?arch/arm/boot/compressed/piggy.lzma.S | ? ?6 ++++++
>> ?4 files changed, 12 insertions(+), 0 deletions(-)
>> ?create mode 100644 arch/arm/boot/compressed/piggy.lzma.S
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 3b18128..3ebc7c3 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -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
>> diff --git a/arch/arm/boot/compressed/Makefile
>> b/arch/arm/boot/compressed/Makefile
>> index 97c89e7..53faa90 100644
>> --- a/arch/arm/boot/compressed/Makefile
>> +++ b/arch/arm/boot/compressed/Makefile
>> @@ -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 \
>> diff --git a/arch/arm/boot/compressed/decompress.c
>> b/arch/arm/boot/compressed/decompress.c
>> index 0da382f..d554df6 100644
>> --- a/arch/arm/boot/compressed/decompress.c
>> +++ b/arch/arm/boot/compressed/decompress.c
>> @@ -39,6 +39,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);
>> diff --git a/arch/arm/boot/compressed/piggy.lzma.S
>> b/arch/arm/boot/compressed/piggy.lzma.S
>> new file mode 100644
>> index 0000000..d7e69cf
>> --- /dev/null
>> +++ b/arch/arm/boot/compressed/piggy.lzma.S
>> @@ -0,0 +1,6 @@
>> + ? ? ? .section .piggydata,#alloc
>> + ? ? ? .globl ?input_data
>> +input_data:
>> + ? ? ? .incbin "arch/arm/boot/compressed/piggy.lzma"
>> + ? ? ? .globl ?input_data_end
>> +input_data_end:
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

Any reason to further delay the LZMA adoption?
It will not be the fastest decompressor, but gives the smallest kernel size.
Tested on various Zaurus models (pxa255, pxa270, armv4).

Regards

Andrea Adami

P.S. Fixes to .gitignore would need to be added for lzma.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-05-06  9:04     ` Andrea Adami
@ 2010-05-06 13:30       ` Albin Tonnerre
  2010-05-06 15:54         ` Eric Miao
  2010-05-06 18:09       ` Russell King - ARM Linux
  1 sibling, 1 reply; 8+ messages in thread
From: Albin Tonnerre @ 2010-05-06 13:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, May 6, 2010 at 11:04 AM, Andrea Adami <andrea.adami@gmail.com> wrote:
> Any reason to further delay the LZMA adoption?
> It will not be the fastest decompressor, but gives the smallest kernel size.
> Tested on various Zaurus models (pxa255, pxa270, armv4).

It's in the devel branch of Russell's tree already, so it should find
its way to mainline :)

Regards,
Albin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-05-06 13:30       ` Albin Tonnerre
@ 2010-05-06 15:54         ` Eric Miao
  2010-05-07  6:54           ` Gadiyar, Anand
  0 siblings, 1 reply; 8+ messages in thread
From: Eric Miao @ 2010-05-06 15:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, May 6, 2010 at 9:30 PM, Albin Tonnerre <albin.tonnerre@gmail.com> wrote:
> On Thu, May 6, 2010 at 11:04 AM, Andrea Adami <andrea.adami@gmail.com> wrote:
>> Any reason to further delay the LZMA adoption?
>> It will not be the fastest decompressor, but gives the smallest kernel size.
>> Tested on various Zaurus models (pxa255, pxa270, armv4).
>
> It's in the devel branch of Russell's tree already, so it should find
> its way to mainline :)
>

Tested on my zaurus, worked just out of the box. Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-05-06  9:04     ` Andrea Adami
  2010-05-06 13:30       ` Albin Tonnerre
@ 2010-05-06 18:09       ` Russell King - ARM Linux
  1 sibling, 0 replies; 8+ messages in thread
From: Russell King - ARM Linux @ 2010-05-06 18:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, May 06, 2010 at 11:04:31AM +0200, Andrea Adami wrote:
> Any reason to further delay the LZMA adoption?

Only due process; it'll be merged when the next merge window opens.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ARM: Add support for LZMA-compressed kernel images
  2010-05-06 15:54         ` Eric Miao
@ 2010-05-07  6:54           ` Gadiyar, Anand
  0 siblings, 0 replies; 8+ messages in thread
From: Gadiyar, Anand @ 2010-05-07  6:54 UTC (permalink / raw)
  To: linux-arm-kernel

Eric Miao wrote:
> On Thu, May 6, 2010 at 9:30 PM, Albin Tonnerre <albin.tonnerre@gmail.com> wrote:
> > On Thu, May 6, 2010 at 11:04 AM, Andrea Adami <andrea.adami@gmail.com> wrote:
> >> Any reason to further delay the LZMA adoption?
> >> It will not be the fastest decompressor, but gives the smallest kernel size.
> >> Tested on various Zaurus models (pxa255, pxa270, armv4).
> >
> > It's in the devel branch of Russell's tree already, so it should find
> > its way to mainline :)
> >
> 
> Tested on my zaurus, worked just out of the box. Thanks.

And tested on a couple of OMAP3 boards too. Works great. Thanks!

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-05-07  6:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1258729323-16318-1-git-send-email-albin.tonnerre@free-electrons.com>
2010-03-11 19:24 ` [PATCH v2] ARM: Add support for LZMA-compressed kernel images Albin Tonnerre
2010-03-11 19:27   ` Albin Tonnerre
2010-03-25  8:56   ` Paulius Zaleckas
2010-05-06  9:04     ` Andrea Adami
2010-05-06 13:30       ` Albin Tonnerre
2010-05-06 15:54         ` Eric Miao
2010-05-07  6:54           ` Gadiyar, Anand
2010-05-06 18:09       ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).