diff options
author | Jérôme Carretero <cJ-uboot@zougloub.eu> | 2022-03-16 15:35:36 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-03-28 08:22:17 -0400 |
commit | 408e2d5a224d8c62beae4cb1e7a3804abbbb123f (patch) | |
tree | d8ca5ddacd741cd875a513fcbbf2962b0cd62c0b | |
parent | d66b0f5dd7a9662f8c9c3d11e6ad351acc1ce630 (diff) | |
download | u-boot-408e2d5a224d8c62beae4cb1e7a3804abbbb123f.zip u-boot-408e2d5a224d8c62beae4cb1e7a3804abbbb123f.tar.gz u-boot-408e2d5a224d8c62beae4cb1e7a3804abbbb123f.tar.bz2 |
boot: image: fixup zstd decompression buffer initialization typo
The code was mistakenly initializing the input buffer twice.
Tested to be working on BeagleBone by adjusting CONFIG_SYS_BOOTM_LEN to
64MiB (probably works with less) and preparing uImage with:
cat arch/arm/boot/Image \
| zstd --ultra -22 --zstd=windowLog=22 \
> linux.bin.zst
mkimage -A arm -T kernel uImage -C zstd -d linux.bin.zst \
-a 0x80008000 -e 0x80008000
Without the windowLog restriction, bootm fails with a zstd decompression
error 7 (window too large), which I haven't troubleshooted.
There should be a bit more documentation on the feature...
Reviewed-by: Simon Glass <sjg@chromium.org>
Fixes: 458b30af66c image: Update image_decomp() to avoid ifdefs
-rw-r--r-- | boot/image.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/boot/image.c b/boot/image.c index 07fa2d3..121df0c 100644 --- a/boot/image.c +++ b/boot/image.c @@ -500,7 +500,7 @@ int image_decomp(int comp, ulong load, ulong image_start, int type, struct abuf in, out; abuf_init_set(&in, image_buf, image_len); - abuf_init_set(&in, load_buf, unc_len); + abuf_init_set(&out, load_buf, unc_len); ret = zstd_decompress(&in, &out); if (ret >= 0) { image_len = ret; |