diff options
| author | Harald Welte <laforge@gnumonks.org> | 2008-07-06 15:56:38 +0800 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-08-18 22:59:00 +0200 | 
| commit | fe2ce5500ebf43d79d227190bd2370232d5b113d (patch) | |
| tree | 12de408aa40e8c3aaa96a60501dec2167db3c6a7 /common/cmd_mem.c | |
| parent | 07efc9e321619c3dec213310c32e011aa6f02783 (diff) | |
| download | olio-uboot-2014.01-fe2ce5500ebf43d79d227190bd2370232d5b113d.tar.xz olio-uboot-2014.01-fe2ce5500ebf43d79d227190bd2370232d5b113d.zip | |
add 'unzip' command to u-boot commandline
[PATCH] add new 'unzip' command to u-boot commandline
common/cmd_mem.c: new command "unzip srcaddr dstaddr [dstsize]" to unzip from
memory to memory, and option CONFIG_CMD_UNZIP to enable it
Signed-off-by: Werner Almesberger <werner@openmoko.org>
Signed-off-by: Harald Welte <laforge@openmoko.org>
Diffstat (limited to 'common/cmd_mem.c')
| -rw-r--r-- | common/cmd_mem.c | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/common/cmd_mem.c b/common/cmd_mem.c index 2606986db..a78355c93 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -1198,6 +1198,34 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  }  #endif	/* CONFIG_CRC32_VERIFY */ + +#ifdef CONFIG_CMD_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_CMD_UNZIP */ + +  /**************************************************/  #if defined(CONFIG_CMD_MEMORY)  U_BOOT_CMD( @@ -1301,5 +1329,13 @@ U_BOOT_CMD(  );  #endif /* CONFIG_MX_CYCLIC */ +#ifdef CONFIG_CMD_UNZIP +U_BOOT_CMD( +	unzip,	4,	1,	do_unzip, +	"unzip - unzip a memory region\n", +	"srcaddr dstaddr [dstsize]\n" +); +#endif /* CONFIG_CMD_UNZIP */ +  #endif  #endif |