summaryrefslogtreecommitdiff
path: root/boot/bootm.c
diff options
context:
space:
mode:
Diffstat (limited to 'boot/bootm.c')
-rw-r--r--boot/bootm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/boot/bootm.c b/boot/bootm.c
index d0656fbdf08..4c260a5f5ce 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -626,14 +626,14 @@ static int bootm_load_os(struct bootm_headers *images, int boot_progress)
/*
* For a "noload" compressed kernel we need to allocate a buffer large
* enough to decompress in to and use that as the load address now.
- * Assume that the kernel compression is at most a factor of 4 since
- * zstd almost achieves that.
+ * Allow up to 8x compression: this comfortably covers what zstd and xz
+ * achieve on real kernels, with headroom for well-compressed payloads.
* Use an alignment of 2MB since this might help arm64
*/
if (os.type == IH_TYPE_KERNEL_NOLOAD && os.comp != IH_COMP_NONE) {
phys_addr_t addr;
- decomp_len = ALIGN(image_len * 4, SZ_1M);
+ decomp_len = ALIGN(image_len * 8, SZ_1M);
err = lmb_alloc_mem(LMB_MEM_ALLOC_ANY, SZ_2M, &addr,
decomp_len, LMB_NONE);
if (err)