summaryrefslogtreecommitdiff
path: root/packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch')
-rw-r--r--packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch b/packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch
new file mode 100644
index 0000000000..ee4c1984fc
--- /dev/null
+++ b/packages/uboot/u-boot-mkimage-openmoko-native/cmd-unzip.patch
@@ -0,0 +1,58 @@
+common/cmd_mem.c: new command "unzip srcaddr dstaddr [dstsize]" to unzip from
+ memory to memory, and option CONFIG_UNZIP to enable it
+
+- Werner Almesberger <werner@openmoko.org>
+
+Index: u-boot/common/cmd_mem.c
+===================================================================
+--- u-boot.orig/common/cmd_mem.c
++++ u-boot/common/cmd_mem.c
+@@ -1148,6 +1148,34 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int fl
+ }
+ #endif /* CONFIG_CRC32_VERIFY */
+
++
++#ifdef CONFIG_UNZIP
++int gunzip (void *, int, unsigned char *, unsigned long *);
++
++int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
++{
++ unsigned long src, dst;
++ unsigned long src_len = ~0UL, dst_len = ~0UL;
++ int err;
++
++ switch (argc) {
++ case 4:
++ dst_len = simple_strtoul(argv[3], NULL, 16);
++ /* fall through */
++ case 3:
++ src = simple_strtoul(argv[1], NULL, 16);
++ dst = simple_strtoul(argv[2], NULL, 16);
++ break;
++ default:
++ printf ("Usage:\n%s\n", cmdtp->usage);
++ return 1;
++ }
++
++ return !!gunzip((void *) dst, dst_len, (void *) src, &src_len);
++}
++#endif /* CONFIG_UNZIP */
++
++
+ /**************************************************/
+ #if (CONFIG_COMMANDS & CFG_CMD_MEMORY)
+ U_BOOT_CMD(
+@@ -1251,5 +1279,13 @@ U_BOOT_CMD(
+ );
+ #endif /* CONFIG_MX_CYCLIC */
+
++#ifdef CONFIG_UNZIP
++U_BOOT_CMD(
++ unzip, 4, 1, do_unzip,
++ "unzip - unzip a memory region\n",
++ "srcaddr dstaddr [dstsize]\n"
++);
++#endif /* CONFIG_UNZIP */
++
+ #endif
+ #endif /* CFG_CMD_MEMORY */