riscv: sifive: unleashed: Switch to use binman to generate u-boot.itb
authorBin Meng <bmeng.cn@gmail.com>
Mon, 10 May 2021 12:23:35 +0000 (20:23 +0800)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Wed, 19 May 2021 09:01:50 +0000 (17:01 +0800)
At present SiFive Unleashed board uses the Makefile to create the FIT,
using USE_SPL_FIT_GENERATOR, which is deprecated as per the Makefile
warning. Update to use binman instead.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/riscv/dts/binman.dtsi [new file with mode: 0644]
arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi
board/sifive/unleashed/Kconfig
configs/sifive_unleashed_defconfig

diff --git a/arch/riscv/dts/binman.dtsi b/arch/riscv/dts/binman.dtsi
new file mode 100644 (file)
index 0000000..e02597e
--- /dev/null
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
+ */
+
+#include <config.h>
+
+/ {
+       binman: binman {
+               multiple-images;
+       };
+};
+
+&binman {
+       itb {
+               filename = "u-boot.itb";
+
+               fit {
+                       description = "Configuration to load OpenSBI before U-Boot";
+                       #address-cells = <1>;
+                       fit,fdt-list = "of-list";
+
+                       images {
+                               uboot {
+                                       description = "U-Boot";
+                                       type = "standalone";
+                                       os = "U-Boot";
+                                       arch = "riscv";
+                                       compression = "none";
+                                       load = <CONFIG_SYS_TEXT_BASE>;
+
+                                       uboot_blob: blob-ext {
+                                               filename = "u-boot-nodtb.bin";
+                                       };
+                               };
+
+                               opensbi {
+                                       description = "OpenSBI fw_dynamic Firmware";
+                                       type = "firmware";
+                                       os = "opensbi";
+                                       arch = "riscv";
+                                       compression = "none";
+                                       load = <CONFIG_SPL_OPENSBI_LOAD_ADDR>;
+                                       entry = <CONFIG_SPL_OPENSBI_LOAD_ADDR>;
+
+                                       opensbi_blob: opensbi {
+                                               filename = "fw_dynamic.bin";
+                                       };
+                               };
+
+                               @fdt-SEQ {
+                                       description = "NAME";
+                                       type = "flat_dt";
+                                       compression = "none";
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-1";
+
+                               @conf-SEQ {
+                                       description = "NAME";
+                                       firmware = "opensbi";
+                                       loadables = "uboot";
+                                       fdt = "fdt-SEQ";
+                               };
+                       };
+               };
+       };
+};
index 1996149..51b5661 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
  */
 
+#include "binman.dtsi"
 #include "fu540-c000-u-boot.dtsi"
 #include "fu540-hifive-unleashed-a00-ddr.dtsi"
 
index dbffd59..502916e 100644 (file)
@@ -27,6 +27,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        def_bool y
        select SIFIVE_FU540
        select ENV_IS_IN_SPI_FLASH
+       select BINMAN
        imply CMD_DHCP
        imply CMD_EXT2
        imply CMD_EXT4
index 62416a7..dc9313e 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_RISCV_SMODE=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_SPL_LOAD_FIT_ADDRESS=0x84000000
+# CONFIG_USE_SPL_FIT_GENERATOR is not set
 CONFIG_DISPLAY_CPUINFO=y
 CONFIG_DISPLAY_BOARDINFO=y
 CONFIG_MISC_INIT_R=y