[U-Boot] [PATCH] qemu-riscv64_smode, sifive-fu540: fix extlinux (define preboot)

Atish Patra Atish.Patra at wdc.com
Thu Aug 29 01:57:48 UTC 2019


On Wed, 2019-08-21 at 12:07 -0700, David Abdurachmanov wrote:
> Commit 37304aaf60bf92a5dc3ef222ba520698bd862a44 removed preboot
> commands in RISC-V targets and broke extlinux support as reported
> by Fu Wei <wefu at redhat.com>.
> 
> The patch finishes migration of CONFIG_USE_PREBOOT and CONFIG_REBOOT
> to Kconfig.
> 
> Signed-off-by: David Abdurachmanov <david.abdurachmanov at sifive.com>
> ---
>  configs/qemu-riscv64_smode_defconfig | 2 ++
>  configs/sifive_fu540_defconfig       | 2 ++
>  include/configs/sifive-fu540.h       | 4 ----
>  3 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/configs/qemu-riscv64_smode_defconfig b/configs/qemu-
> riscv64_smode_defconfig
> index 74743a5ebe..2e1f7fa91f 100644
> --- a/configs/qemu-riscv64_smode_defconfig
> +++ b/configs/qemu-riscv64_smode_defconfig
> @@ -9,3 +9,5 @@ CONFIG_DISPLAY_CPUINFO=y
>  CONFIG_DISPLAY_BOARDINFO=y
>  # CONFIG_CMD_MII is not set
>  CONFIG_OF_PRIOR_STAGE=y
> +CONFIG_USE_PREBOOT=y
> +CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr
> ${fdtcontroladdr};"
> diff --git a/configs/sifive_fu540_defconfig
> b/configs/sifive_fu540_defconfig
> index 48865e5f11..a852579309 100644
> --- a/configs/sifive_fu540_defconfig
> +++ b/configs/sifive_fu540_defconfig
> @@ -9,3 +9,5 @@ CONFIG_MISC_INIT_R=y
>  CONFIG_DISPLAY_CPUINFO=y
>  CONFIG_DISPLAY_BOARDINFO=y
>  CONFIG_OF_PRIOR_STAGE=y
> +CONFIG_USE_PREBOOT=y
> +CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr
> ${fdtcontroladdr};"
> diff --git a/include/configs/sifive-fu540.h b/include/configs/sifive-
> fu540.h
> index 858b7a7da1..ba4aa0652c 100644
> --- a/include/configs/sifive-fu540.h
> +++ b/include/configs/sifive-fu540.h
> @@ -40,8 +40,4 @@
>  	"ramdisk_addr_r=0x88300000\0" \
>  	BOOTENV
>  
> -#define CONFIG_PREBOOT \
> -	"setenv fdt_addr ${fdtcontroladdr};" \
> -	"fdt addr ${fdtcontroladdr};"
> -

As per the README, fdt_addr should be flash location. Why it was done
in the first place ?

Additionally, fdtcontroladdr is set what gdt->fdt_blob is set. On
latest U-boot in HiFive Unleashed, it is set to 0xff76e470. Not sure
the reasong. May be after relocation ?

However, 5.3 kernel possibly ovewriting that address resulting in boot
failures. Using fdt_addr_r works fine though.

As per following patch, we should do a tftpboot dtb to fdt_addr_r or
just using fdt_addr_r will also work as fdt_addr_r is set to the
address where OpenSBI keeps the DT.


>  #endif /* __CONFIG_H */

-- 
Regards,
Atish


More information about the U-Boot mailing list