[PATCH 2/4] RISC-V: fix crash on start if CONFIG_IMAGE_COMPRESSION_NONE=y
Antony Pavlov
antonynpavlov at gmail.com
Thu Jun 6 17:12:57 PDT 2024
Use the same approach as ARM barebox uses.
See also 6c03bdf8f99 ("kbuild: pbl: use same compression algo for both
barebox and DTB").
Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
---
arch/riscv/boot/start.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/riscv/boot/start.c b/arch/riscv/boot/start.c
index 2e18105bbfb..ab9bb6f320f 100644
--- a/arch/riscv/boot/start.c
+++ b/arch/riscv/boot/start.c
@@ -35,7 +35,7 @@ static unsigned long barebox_boarddata_size;
void *barebox_riscv_boot_dtb(void)
{
void *dtb;
- int ret;
+ int ret = 0;
struct barebox_boarddata_compressed_dtb *compressed_dtb;
static void *boot_dtb;
@@ -58,8 +58,13 @@ void *barebox_riscv_boot_dtb(void)
if (!dtb)
return NULL;
- ret = uncompress(compressed_dtb->data, compressed_dtb->datalen,
- NULL, NULL, dtb, NULL, NULL);
+ if (IS_ENABLED(CONFIG_IMAGE_COMPRESSION_NONE))
+ memcpy(dtb, compressed_dtb->data,
+ compressed_dtb->datalen_uncompressed);
+ else
+ ret = uncompress(compressed_dtb->data, compressed_dtb->datalen,
+ NULL, NULL, dtb, NULL, NULL);
+
if (ret) {
pr_err("uncompressing dtb failed\n");
free(dtb);
--
2.39.0
More information about the barebox
mailing list