Skip to contentSkip to conversation

pbl: factorise decompress code and add none compress support

PATCH Applied Jean-Christophe PLAGNIOL-VILLARD 2 participants 5 messages Jan 28, 2013 – Jan 30, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover pbl: factorise decompress code and add none compress support

HI,

The following changes since commit cd1c289b2a4949e8acb235d4847419bde784a9d6:

Merge branch 'for-next/misc' into next (2013-01-25 19:51:11 +0100)

are available in the git repository at:

git://git.jcrosoft.org/barebox.git delivery/pbl

for you to fetch changes up to c71c520fe4fc180c4546a37105ce2ed4fc674383:

pbl: add none compression support (2013-01-24 06:30:57 +0800)

----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (3):
pbl: move configs to pbl/Kconfig
pbl: factorise decompressor
pbl: add none compression support

 arch/arm/cpu/start-pbl.c        |   21 ++-------------------
 arch/arm/pbl/Makefile           |    3 ++-
 arch/arm/pbl/piggy.shipped.S    |    6 ++++++
 arch/mips/boot/main_entry-pbl.c |   23 +----------------------
 arch/mips/pbl/Makefile          |    3 ++-
 arch/mips/pbl/piggy.shipped.S   |    6 ++++++
 common/Kconfig                  |   42 +-----------------------------------------
 include/pbl.h                   |   15 +++++++++++++++
 pbl/Kconfig                     |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 pbl/Makefile                    |    1 +
 pbl/decomp.c                    |   44 ++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 126 insertions(+), 84 deletions(-)
 create mode 100644 arch/arm/pbl/piggy.shipped.S
 create mode 100644 arch/mips/pbl/piggy.shipped.S
 create mode 100644 include/pbl.h
 create mode 100644 pbl/Kconfig
 create mode 100644 pbl/decomp.c

Best Regards,
J.

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw

PATCH 1/3 pbl: move configs to pbl/Kconfig

so it more easy to add new entry and to maintain

---
 common/Kconfig |   42 +-----------------------------------------
 pbl/Kconfig    |   43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 41 deletions(-)
 create mode 100644 pbl/Kconfig
common/Kconfig +1 -41
index eccae4c..21c061c 100644
@@ -105,47 +105,7 @@ config ENVIRONMENT_VARIABLES
 
 menu "memory layout"
 
-config HAVE_PBL_IMAGE
-	bool
-
-config HAVE_IMAGE_COMPRESSION
-	bool
-
-config PBL_IMAGE
-	bool "Pre-Bootloader image"
-	depends on HAVE_PBL_IMAGE
-
-config PBL_FORCE_PIGGYDATA_COPY
-	bool
-	help
-	  In some case we need to copy the PIGGYDATA as the link address
-	  as example we run from SRAM and shutdown the SDRAM/DDR for
-	  reconfiguration but most of the time we just need to copy the
-	  executable code.
-
-if PBL_IMAGE
-
-config IMAGE_COMPRESSION
-	bool
-	depends on HAVE_IMAGE_COMPRESSION
-	default y
-
-if IMAGE_COMPRESSION
-
-choice
-	prompt "Compression"
-
-config IMAGE_COMPRESSION_LZO
-	bool "lzo"
-
-config IMAGE_COMPRESSION_GZIP
-	bool "gzip"
-
-endchoice
-
-endif
-
-endif
+source "pbl/Kconfig"
 
 config MMU
 	bool "Enable MMU"
pbl/Kconfig new file +43 -0

43 lines not on this page · raw message

Signature · 7 lines
1.7.10.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#2 lore raw

PATCH 2/3 pbl: factorise decompressor

---
 arch/arm/cpu/start-pbl.c        |   21 ++-------------------
 arch/mips/boot/main_entry-pbl.c |   23 +----------------------
 include/pbl.h                   |   15 +++++++++++++++
 pbl/Makefile                    |    1 +
 pbl/decomp.c                    |   32 ++++++++++++++++++++++++++++++++
 5 files changed, 51 insertions(+), 41 deletions(-)
 create mode 100644 include/pbl.h
 create mode 100644 pbl/decomp.c
arch/arm/cpu/start-pbl.c +2 -19
index c5f9705..f506792 100644
@@ -24,6 +24,7 @@
 #include <common.h>
 #include <init.h>
 #include <sizes.h>
+#include <pbl.h>
 #include <asm/barebox-arm.h>
 #include <asm/barebox-arm-head.h>
 #include <asm-generic/memory_layout.h>
@@ -59,16 +60,6 @@ void __naked __bare_init reset(void)
 extern void *input_data;
 extern void *input_data_end;
 
-#define STATIC static
-
-#ifdef CONFIG_IMAGE_COMPRESSION_LZO
-#include "../../../lib/decompress_unlzo.c"
-#endif
-
-#ifdef CONFIG_IMAGE_COMPRESSION_GZIP
-#include "../../../lib/decompress_inflate.c"
-#endif
-
 static unsigned long *ttb;
 
 static void create_sections(unsigned long addr, int size_m, unsigned int flags)
@@ -127,11 +118,6 @@ static void mmu_disable(void)
 	__mmu_cache_off();
 }
 
-static void noinline errorfn(char *error)
-{
-	while (1);
-}
-
 static void barebox_uncompress(void *compressed_start, unsigned int len)
 {
 	void (*barebox)(void);
@@ -155,10 +141,7 @@ static void barebox_uncompress(void *compressed_start, unsigned int len)
 	else
 		barebox = (void *)TEXT_BASE;
 
-	decompress((void *)compressed_start,
-			len,
-			NULL, NULL,
-			(void *)TEXT_BASE, NULL, errorfn);
+	pbl_barebox_uncompress((void*)TEXT_BASE, compressed_start, len);
 
 	if (use_mmu)
 		mmu_disable();
arch/mips/boot/main_entry-pbl.c +1 -22
index f39e936..4e87c52 100644
@@ -30,28 +30,10 @@ extern void *input_data_end;
 unsigned long free_mem_ptr;
 unsigned long free_mem_end_ptr;
 
-#define STATIC static
-
-#ifdef CONFIG_IMAGE_COMPRESSION_LZO
-#include "../../../lib/decompress_unlzo.c"
-#endif
-
-#ifdef CONFIG_IMAGE_COMPRESSION_GZIP
-#include "../../../lib/decompress_inflate.c"
-#endif
-
 void pbl_main_entry(void);
 
 static unsigned long *ttb;
 
-static noinline void errorfn(char *error)
-{
-	PUTS_LL(error);
-	PUTC_LL('\n');
-
-	unreachable();
-}
-
 static void barebox_uncompress(void *compressed_start, unsigned int len)
 {
 	/* set 128 KiB at the end of the MALLOC_BASE for early malloc */
@@ -60,10 +42,7 @@ static void barebox_uncompress(void *compressed_start, unsigned int len)
 
 	ttb = (void *)((free_mem_ptr - 0x4000) & ~0x3fff);
 
-	decompress((void *)compressed_start,
-			len,
-			NULL, NULL,
-			(void *)TEXT_BASE, NULL, errorfn);
+	pbl_barebox_uncompress((void*)TEXT_BASE, compressed_start, len);
 }
 
 void __section(.text_entry) pbl_main_entry(void)
include/pbl.h new file +15 -0
new file mode 100644
index 0000000..d041a3f
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
+ *
+ * Under GPLv2
+ */
+
+#ifndef __PBL_H__
+#define __PBL_H__
+
+extern unsigned long free_mem_ptr;
+extern unsigned long free_mem_end_ptr;
+
+void pbl_barebox_uncompress(void *dest, void *compressed_start, unsigned int len);
+
+#endif /* __PBL_H__ */
pbl/Makefile +1 -0
index 7169c6c..a2d7468 100644
@@ -3,3 +3,4 @@
 #
 pbl-y += misc.o
 pbl-y += string.o
+pbl-y += decomp.o
pbl/decomp.c new file +32 -0
new file mode 100644
index 0000000..bd67ed8
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2010-2012 Sascha Hauer <[email protected]>, Pengutronix
+ * Copyright (c) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
+ *
+ * Under GPLv2 only
+ */
+
+#include <common.h>
+#include <pbl.h>
+
+#define STATIC static
+
+#ifdef CONFIG_IMAGE_COMPRESSION_LZO
+#include "../../../lib/decompress_unlzo.c"
+#endif
+
+#ifdef CONFIG_IMAGE_COMPRESSION_GZIP
+#include "../../../lib/decompress_inflate.c"
+#endif
+
+static void noinline errorfn(char *error)
+{
+	while (1);
+}
+
+void pbl_barebox_uncompress(void *dest, void *compressed_start, unsigned int len)
+{
+	decompress((void *)compressed_start,
+			len,
+			NULL, NULL,
+			dest, NULL, errorfn);
+}
Signature · 7 lines
1.7.10.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#3 lore raw

PATCH 3/3 pbl: add none compression support

In reply to Jean-Christophe PLAGNIOL-VILLARD
---
 arch/arm/pbl/Makefile         |    3 ++-
 arch/arm/pbl/piggy.shipped.S  |    6 ++++++
 arch/mips/pbl/Makefile        |    3 ++-
 arch/mips/pbl/piggy.shipped.S |    6 ++++++
 pbl/Kconfig                   |    3 +++
 pbl/decomp.c                  |   12 ++++++++++++
 6 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/pbl/piggy.shipped.S
 create mode 100644 arch/mips/pbl/piggy.shipped.S
arch/arm/pbl/Makefile +2 -1
index 7faa51a..6eeee73 100644
@@ -1,6 +1,7 @@
 
 suffix_$(CONFIG_IMAGE_COMPRESSION_GZIP) = gzip
 suffix_$(CONFIG_IMAGE_COMPRESSION_LZO)	= lzo
+suffix_$(CONFIG_IMAGE_COMPRESSION_NONE)	= shipped
 
 OBJCOPYFLAGS_zbarebox.bin = -O binary
 piggy_o := piggy.$(suffix_y).o
@@ -9,7 +10,7 @@ targets := zbarebox.lds zbarebox zbarebox.bin zbarebox.S \
 	   $(piggy_o) piggy.$(suffix_y)
 
 # Make sure files are removed during clean
-extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern zbarebox.map
+extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern piggy.shipped zbarebox.map
 
 $(obj)/zbarebox.bin:	$(obj)/zbarebox FORCE
 	$(call if_changed,objcopy)
arch/arm/pbl/piggy.shipped.S new file +6 -0
new file mode 100644
index 0000000..dbc2569
@@ -0,0 +1,6 @@
+	.section .piggydata,#alloc
+	.globl  input_data
+input_data:
+	.incbin "arch/arm/pbl/piggy.shipped"
+	.globl  input_data_end
+input_data_end:
arch/mips/pbl/Makefile +2 -1
index 7faa51a..6eeee73 100644
@@ -1,6 +1,7 @@
 
 suffix_$(CONFIG_IMAGE_COMPRESSION_GZIP) = gzip
 suffix_$(CONFIG_IMAGE_COMPRESSION_LZO)	= lzo
+suffix_$(CONFIG_IMAGE_COMPRESSION_NONE)	= shipped
 
 OBJCOPYFLAGS_zbarebox.bin = -O binary
 piggy_o := piggy.$(suffix_y).o
@@ -9,7 +10,7 @@ targets := zbarebox.lds zbarebox zbarebox.bin zbarebox.S \
 	   $(piggy_o) piggy.$(suffix_y)
 
 # Make sure files are removed during clean
-extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern zbarebox.map
+extra-y       += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern piggy.shipped zbarebox.map
 
 $(obj)/zbarebox.bin:	$(obj)/zbarebox FORCE
 	$(call if_changed,objcopy)
arch/mips/pbl/piggy.shipped.S new file +6 -0
new file mode 100644
index 0000000..963262d
@@ -0,0 +1,6 @@
+	.section .piggydata,#alloc
+	.globl  input_data
+input_data:
+	.incbin "arch/mips/pbl/piggy.shipped"
+	.globl  input_data_end
+input_data_end:
pbl/Kconfig +3 -0
index ea7d227..37e4c4a 100644
@@ -34,6 +34,9 @@ config IMAGE_COMPRESSION_LZO
 config IMAGE_COMPRESSION_GZIP
 	bool "gzip"
 
+config IMAGE_COMPRESSION_NONE
+	bool "none"
+
 endchoice
 
 endif
pbl/decomp.c +12 -0
index bd67ed8..aa6a31e 100644
@@ -18,6 +18,18 @@
 #include "../../../lib/decompress_inflate.c"
 #endif
 
+#ifdef CONFIG_IMAGE_COMPRESSION_NONE
+STATIC int decompress(u8 *input, int in_len,
+				int (*fill) (void *, unsigned int),
+				int (*flush) (void *, unsigned int),
+				u8 *output, int *posp,
+				void (*error) (char *x))
+{
+	memcpy(output, input, in_len);
+	return 0;
+}
+#endif
+
 static void noinline errorfn(char *error)
 {
 	while (1);
Signature · 7 lines
1.7.10.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Applied
#4 lore raw
In reply to Jean-Christophe PLAGNIOL-VILLARD
Quoted 10 lines · Jean-Christophe PLAGNIOL-VILLARD

HI,

The following changes since commit cd1c289b2a4949e8acb235d4847419bde784a9d6:

Merge branch 'for-next/misc' into next (2013-01-25 19:51:11 +0100)

are available in the git repository at:

git://git.jcrosoft.org/barebox.git delivery/pbl

Applied, thanks

Sascha

Quoted 37 lines

for you to fetch changes up to c71c520fe4fc180c4546a37105ce2ed4fc674383:

pbl: add none compression support (2013-01-24 06:30:57 +0800)

----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (3):
pbl: move configs to pbl/Kconfig
pbl: factorise decompressor
pbl: add none compression support

 arch/arm/cpu/start-pbl.c        |   21 ++-------------------
 arch/arm/pbl/Makefile           |    3 ++-
 arch/arm/pbl/piggy.shipped.S    |    6 ++++++
 arch/mips/boot/main_entry-pbl.c |   23 +----------------------
 arch/mips/pbl/Makefile          |    3 ++-
 arch/mips/pbl/piggy.shipped.S   |    6 ++++++
 common/Kconfig                  |   42 +-----------------------------------------
 include/pbl.h                   |   15 +++++++++++++++
 pbl/Kconfig                     |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 pbl/Makefile                    |    1 +
 pbl/decomp.c                    |   44 ++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 126 insertions(+), 84 deletions(-)
 create mode 100644 arch/arm/pbl/piggy.shipped.S
 create mode 100644 arch/mips/pbl/piggy.shipped.S
 create mode 100644 include/pbl.h
 create mode 100644 pbl/Kconfig
 create mode 100644 pbl/decomp.c

Best Regards,
J.

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox