diff --git a/README b/README
index a745d0b..af76b0c 100644
--- a/README
+++ b/README
@@ -1483,6 +1483,12 @@
 		can be displayed via the splashscreen support or the
 		bmp command.
 
+- Do compresssing for memory range:
+		CONFIG_CMD_ZIP
+
+		If this option is set, it would use zlib deflate method
+		to compress the specified memory at its best effort.
+
 - Compression support:
 		CONFIG_BZIP2
 
diff --git a/common/Makefile b/common/Makefile
index b56df1d..125b2be 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -170,6 +170,7 @@
 COBJS-$(CONFIG_CMD_XIMG) += cmd_ximg.o
 COBJS-$(CONFIG_YAFFS2) += cmd_yaffs2.o
 COBJS-$(CONFIG_CMD_SPL) += cmd_spl.o
+COBJS-$(CONFIG_CMD_ZIP) += cmd_zip.o
 COBJS-$(CONFIG_CMD_ZFS) += cmd_zfs.o
 
 # others
diff --git a/common/cmd_zip.c b/common/cmd_zip.c
new file mode 100644
index 0000000..a73c86d
--- /dev/null
+++ b/common/cmd_zip.c
@@ -0,0 +1,60 @@
+/*
+ * (C) Copyright 2012
+ * Lei Wen <leiwen@marvell.com>, Marvell Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int do_zip(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	unsigned long src, dst;
+	unsigned long src_len, dst_len = ~0UL;
+	char buf[32];
+
+	switch (argc) {
+		case 5:
+			dst_len = simple_strtoul(argv[4], NULL, 16);
+			/* fall through */
+		case 4:
+			src = simple_strtoul(argv[1], NULL, 16);
+			src_len = simple_strtoul(argv[2], NULL, 16);
+			dst = simple_strtoul(argv[3], NULL, 16);
+			break;
+		default:
+			return cmd_usage(cmdtp);
+	}
+
+	if (gzip((void *) dst, &dst_len, (void *) src, src_len) != 0)
+		return 1;
+
+	printf("Compressed size: %ld = 0x%lX\n", dst_len, dst_len);
+	sprintf(buf, "%lX", dst_len);
+	setenv("filesize", buf);
+
+	return 0;
+}
+
+U_BOOT_CMD(
+	zip,	5,	1,	do_zip,
+	"zip a memory region",
+	"srcaddr srcsize dstaddr [dstsize]"
+);
