summaryrefslogtreecommitdiff
path: root/boot/image.c
diff options
context:
space:
mode:
authorJérôme Carretero <cJ-uboot@zougloub.eu>2022-03-16 22:35:36 +0300
committerTom Rini <trini@konsulko.com>2022-03-28 15:22:17 +0300
commit408e2d5a224d8c62beae4cb1e7a3804abbbb123f (patch)
treed8ca5ddacd741cd875a513fcbbf2962b0cd62c0b /boot/image.c
parentd66b0f5dd7a9662f8c9c3d11e6ad351acc1ce630 (diff)
downloadu-boot-408e2d5a224d8c62beae4cb1e7a3804abbbb123f.tar.xz
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
Diffstat (limited to 'boot/image.c')
-rw-r--r--boot/image.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/boot/image.c b/boot/image.c
index 07fa2d3160..121df0c838 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;