[PATCH v2 1/2] board: sifive: unmatched: use zero copy for initrd

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Tue Nov 9 15:46:00 CET 2021


Booting Ubuntu Impish showed the following output:

    relocaddr   = 0x00000000fff60000

    Loading Ramdisk to fa118000, end fffff19d ...

The initrd is overwriting the U-Boot binary. Booting fails.

There is no need to copy the initrd from $ramdisk_addr_r.
Set init_high = ~0UL to use zero copy. Do the same for the device tree.

Same for the devicetree.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
v2:
	Don't copy fdt either.
---
 include/configs/sifive-unmatched.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/configs/sifive-unmatched.h b/include/configs/sifive-unmatched.h
index f68d7d7676..69a4eb2f2a 100644
--- a/include/configs/sifive-unmatched.h
+++ b/include/configs/sifive-unmatched.h
@@ -59,6 +59,8 @@
 	"name=system,size=-,bootable,type=${type_guid_gpt_system};"
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	"fdt_high=0xffffffffffffffff\0" \
+	"initrd_high=0xffffffffffffffff\0" \
 	"kernel_addr_r=0x84000000\0" \
 	"fdt_addr_r=0x88000000\0" \
 	"scriptaddr=0x88100000\0" \
-- 
2.32.0



More information about the U-Boot mailing list