mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-18 02:44:37 +00:00
imxtract: add support for zstd-compressed images
Allow extraction of zstd-compressed images from FIT using imxtract command. This is especially useful when one has to load an image via some interface (e.g. SPI) rather that just to the memory. Signed-off-by: Dmitry Gerasimov <di.gerasimov@gmail.com>
This commit is contained in:
parent
b993bd65ec
commit
822911d574
1 changed files with 23 additions and 0 deletions
23
cmd/ximg.c
23
cmd/ximg.c
|
@ -15,6 +15,9 @@
|
|||
#include <cpu_func.h>
|
||||
#include <env.h>
|
||||
#include <gzip.h>
|
||||
#if IS_ENABLED(CONFIG_ZSTD)
|
||||
#include <linux/zstd.h>
|
||||
#endif
|
||||
#include <image.h>
|
||||
#include <malloc.h>
|
||||
#include <mapmem.h>
|
||||
|
@ -237,6 +240,26 @@ do_imgextract(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||
}
|
||||
break;
|
||||
#endif /* CONFIG_BZIP2 */
|
||||
#if IS_ENABLED(CONFIG_ZSTD)
|
||||
case IH_COMP_ZSTD:
|
||||
{
|
||||
int ret;
|
||||
struct abuf in, out;
|
||||
|
||||
printf(" Uncompressing part %d ... ", part);
|
||||
|
||||
abuf_init_set(&in, (void *)data, len);
|
||||
abuf_init_set(&out, (void *)dest, unc_len);
|
||||
ret = zstd_decompress(&in, &out);
|
||||
if (ret < 0) {
|
||||
printf("ZSTD ERROR %d - "
|
||||
"image not loaded\n", ret);
|
||||
return 1;
|
||||
}
|
||||
len = ret;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("Unimplemented compression type %d\n", comp);
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue