[U-Boot] [PATCH] Add lzmadec command

Hi,
I needed to be able to uncompress lzma files. I did this command based on unzip command and propose it if it could help. Hopping the patch is correctly done...
Best regards.
Patrice
Signed-off-by: Patrice Bouchand <pbfwdlist_gmail_com>
--- common/Makefile | 3 +++ common/cmd_lzmadec.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 common/cmd_lzmadec.c
diff --git a/common/Makefile b/common/Makefile index d12cba5..b99a6b0 100644 --- a/common/Makefile +++ b/common/Makefile @@ -158,6 +158,9 @@ obj-$(CONFIG_CMD_UBI) += cmd_ubi.o obj-$(CONFIG_CMD_UBIFS) += cmd_ubifs.o obj-$(CONFIG_CMD_UNIVERSE) += cmd_universe.o obj-$(CONFIG_CMD_UNZIP) += cmd_unzip.o +ifdef CONFIG_LZMA +obj-$(CONFIG_CMD_LZMADEC) += cmd_lzmadec.o +endif ifdef CONFIG_CMD_USB obj-y += cmd_usb.o obj-y += usb.o usb_hub.o diff --git a/common/cmd_lzmadec.c b/common/cmd_lzmadec.c new file mode 100644 index 0000000..07103d3 --- /dev/null +++ b/common/cmd_lzmadec.c @@ -0,0 +1,54 @@ +/* + * (C) Copyright 2013 Patrice Bouchand <pbfwdlist_gmail_com> + * lzma uncompress command in Uboot + * + * made from existing cmd_unzip.c file of Uboot + * + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <command.h> + +#include <lzma/LzmaTypes.h> +#include <lzma/LzmaDec.h> +#include <lzma/LzmaTools.h> + +static int do_lzmadec(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + unsigned long src, dst; + unsigned long src_len = ~0UL, dst_len = ~0UL; + int ret; + + 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: + return CMD_RET_USAGE; + } + + ret = lzmaBuffToBuffDecompress((void *) dst, &src_len, + (void *) src, dst_len); + + if (ret != SZ_OK) { + return 1; + } + printf("Uncompressed size: %ld = 0x%lX\n", src_len, src_len); + setenv_hex("filesize", src_len); + + return 0; +} + +U_BOOT_CMD( + lzmadec, 4, 1, do_lzmadec, + "lzma uncompress a memory region", + "srcaddr dstaddr [dstsize]" +);

On Thu, Dec 19, 2013 at 11:10:24AM +0100, Patrice B wrote:
Hi,
I needed to be able to uncompress lzma files. I did this command based on unzip command and propose it if it could help. Hopping the patch is correctly done...
Best regards.
Patrice
Signed-off-by: Patrice Bouchand <pbfwdlist_gmail_com>
The code looks fine, but we don't add code that isn't enabled anywhere. So unless Simon wants to pick this up for sandbox, I'm marking this as deferred in patchwork, thanks!

Hi Patrice,
On 24 January 2014 14:39, Tom Rini trini@ti.com wrote:
On Thu, Dec 19, 2013 at 11:10:24AM +0100, Patrice B wrote:
Hi,
I needed to be able to uncompress lzma files. I did this command based on unzip command and propose it if it could help. Hopping the patch is correctly done...
Best regards.
Patrice
Signed-off-by: Patrice Bouchand <pbfwdlist_gmail_com>
The code looks fine, but we don't add code that isn't enabled anywhere. So unless Simon wants to pick this up for sandbox, I'm marking this as deferred in patchwork, thanks!
It's fine to enable this in sandbox if you want to - just send a separate patch to add the CONFIG to include/configs/sandbox.h, test it in sandbox (make sandbox_config; make; ./u-boot) and Cc me. I will pick it up.
Regards, Simon
-- Tom

Hello,
Here's the patch that enables lzmadec command in sandbox. Should I send it as a new thread or is it fine like that ?
Regards
Patrice
--- include/configs/sandbox.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index a6d5582..c995882 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -131,4 +131,6 @@
#define CONFIG_TPM_TIS_SANDBOX
+#define CONFIG_CMD_LZMADEC + #endif

Hi Patrice,
On 28 January 2014 01:17, Patrice B pbfwdlist@gmail.com wrote:
Hello,
Here's the patch that enables lzmadec command in sandbox. Should I send it as a new thread or is it fine like that ?
Yes I think you should send it as a new thread when its own commit subject.
Regards, Simon
Regards
Patrice
include/configs/sandbox.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index a6d5582..c995882 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -131,4 +131,6 @@
#define CONFIG_TPM_TIS_SANDBOX
+#define CONFIG_CMD_LZMADEC
#endif
2014-01-26 Simon Glass sjg@chromium.org:
Hi Patrice,
On 24 January 2014 14:39, Tom Rini trini@ti.com wrote:
On Thu, Dec 19, 2013 at 11:10:24AM +0100, Patrice B wrote:
Hi,
I needed to be able to uncompress lzma files. I did this command based on unzip command and propose it if it could help. Hopping the patch is correctly done...
Best regards.
Patrice
Signed-off-by: Patrice Bouchand <pbfwdlist_gmail_com>
The code looks fine, but we don't add code that isn't enabled anywhere. So unless Simon wants to pick this up for sandbox, I'm marking this as deferred in patchwork, thanks!
It's fine to enable this in sandbox if you want to - just send a separate patch to add the CONFIG to include/configs/sandbox.h, test it in sandbox (make sandbox_config; make; ./u-boot) and Cc me. I will pick it up.
Regards, Simon
-- Tom
participants (3)
-
Patrice B
-
Simon Glass
-
Tom Rini