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

Tom Rini trini at konsulko.com
Tue Nov 9 16:46:22 CET 2021


On Tue, Nov 09, 2021 at 03:46:00PM +0100, Heinrich Schuchardt wrote:

> 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" \

I know I'm doing this out of order, but I'm going to repeat myself here
too.  You cannot disable device tree relocation.  I cannot count the
number of hours that have been wasted because of this mis-feature due to
misalignment of the device tree or overwriting of the device tree and
then U-Boot not fixing it because it was told not to, and then people
and projects wasting countless hours over it.  It's why checkpatch.pl
throws out an ERROR on this now.  I didn't yell even more loudly
previously at riscv because as it was missing the arch_lmb portion to
avoid overwriting U-Boot at run-time, it still was a problem.  But
that's been fixed.  So, no.  NAK.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20211109/db0517a8/attachment.sig>


More information about the U-Boot mailing list