From ce78c4cd6e8f5cd5e2322a026cc2d333f500781b Mon Sep 17 00:00:00 2001
From: Bin Meng <bmeng.cn@gmail.com>
Date: Tue, 24 May 2022 12:31:13 +0800
Subject: [PATCH] riscv: sifive: unleashed: Set kernel_comp_addr_r for
 compressed kernel

Set kernel_comp_addr_r and kernel_comp_size for compressed kernel.
Adjust existing addresses for ramdisk, so that kernel_comp_addr_r
comes before the ramdisk image, since the decompressed kernel size
is known to us. This way we can allow big ramdisk image to be loaded.

Update unleashed.rst to remove the manual environment configuration
for compressed kernel boot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
---
 doc/board/sifive/unleashed.rst     |  2 --
 include/configs/sifive-unleashed.h | 10 ++++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/doc/board/sifive/unleashed.rst b/doc/board/sifive/unleashed.rst
index c8a62068a7..ce38b701d7 100644
--- a/doc/board/sifive/unleashed.rst
+++ b/doc/board/sifive/unleashed.rst
@@ -216,8 +216,6 @@ Or if you want to use a compressed kernel image file such as Image.gz
             1.2 MiB/s
    done
    Bytes transferred = 4809458 (4962f2 hex)
-   =>setenv kernel_comp_addr_r 0x90000000
-   =>setenv kernel_comp_size 0x500000
 
 By this time, correct kernel image is loaded and required environment variables
 are set. You can proceed to load the ramdisk and device tree from the tftp server
diff --git a/include/configs/sifive-unleashed.h b/include/configs/sifive-unleashed.h
index 920f3140f6..96e2eb6798 100644
--- a/include/configs/sifive-unleashed.h
+++ b/include/configs/sifive-unleashed.h
@@ -61,12 +61,14 @@
 	"fdt_high=0xffffffffffffffff\0" \
 	"initrd_high=0xffffffffffffffff\0" \
 	"kernel_addr_r=0x84000000\0" \
-	"fdt_addr_r=0x88000000\0" \
-	"scriptaddr=0x88100000\0" \
+	"kernel_comp_addr_r=0x88000000\0" \
+	"kernel_comp_size=0x4000000\0" \
+	"fdt_addr_r=0x8c000000\0" \
+	"scriptaddr=0x8c100000\0" \
 	"script_offset_f=0x1fff000\0" \
 	"script_size_f=0x1000\0" \
-	"pxefile_addr_r=0x88200000\0" \
-	"ramdisk_addr_r=0x88300000\0" \
+	"pxefile_addr_r=0x8c200000\0" \
+	"ramdisk_addr_r=0x8c300000\0" \
 	"type_guid_gpt_loader1=" TYPE_GUID_LOADER1 "\0" \
 	"type_guid_gpt_loader2=" TYPE_GUID_LOADER2 "\0" \
 	"type_guid_gpt_system=" TYPE_GUID_SYSTEM "\0" \
-- 
2.39.5