On 9/17/23 00:19, Jonas Karlman wrote:
On 2023-09-06 14:00, Heinrich Schuchardt wrote:
The StarFive VisionFive 2 board cannot load spl/u-boot-spl.bin but needs a
prefixed header. We have referring to a vendor tool (spl_tool) for this
task. 'mkimage -T sfspl' can generate the prefixed file.

Use binman to invoke mkimage for the generation of file
spl/u-boot-spl.bin.normal.out.

Update the documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
Tested-by: Chanho Park <chanho61.p...@samsung.com>
---
v2:
        Fix a typo in a comment in tools/sfspl.c
        Add Tested-by credit
---
  .../dts/jh7110-starfive-visionfive-2-u-boot.dtsi   | 10 ++++++++++
  doc/board/starfive/visionfive2.rst                 | 14 ++------------
  2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi 
b/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
index 13f69da31e..defe2b605f 100644
--- a/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
+++ b/arch/riscv/dts/jh7110-starfive-visionfive-2-u-boot.dtsi
@@ -103,4 +103,14 @@
                        };
                };
        };
+       u-boot-spl {
+               filename = "spl/u-boot-spl.bin.normal.out";
+
+               mkimage {
+                       args = "-T sfspl";
+                       blob {
+                               filename = "spl/u-boot-spl.bin";
+                       };
+               };
+       };

This should probably be:

mkimage {
        filename = "spl/u-boot-spl.bin.normal.out";
        args = "-T sfspl";

        u-boot-spl {
        };
};

@Jonas
If I replace the node u-boot-spl by the suggested mkimage node, I get a file spl/u-boot-spl.bin.normal.out which is identical to spl/u-boot-spl.bin. It lacks the header that mkimage should create.

Replacing the blob node by a u-boot-spl node is possible. Whether it is better readable is a matter of taste.

@Simon:
Could you, please, have a look at doc/develop/package/entries.rst. It seems not to fully describe how binman is controlled via the device-tree.

* A blob sub-node for the mkimage node is not described.
* A mkimage node which is not a direct subnode of binman is not mentioned.
* Why the target filename must be outside of the mkimage node in my case is not evident.

Maybe a more formal description of the schema in a yaml file would help.

Best regards

Heinrich


Regards,
Jonas

  };
diff --git a/doc/board/starfive/visionfive2.rst 
b/doc/board/starfive/visionfive2.rst
index 941899a0a4..f5575ab68b 100644
--- a/doc/board/starfive/visionfive2.rst
+++ b/doc/board/starfive/visionfive2.rst
@@ -65,18 +65,8 @@ Now build the U-Boot SPL and U-Boot proper
        make starfive_visionfive2_defconfig
        make 
OPENSBI=$(opensbi_dir)/opensbi/build/platform/generic/firmware/fw_dynamic.bin
-This will generate spl/u-boot-spl.bin and FIT image (u-boot.itb)
-
-u-boot-spl.bin cannot be used directly on StarFive VisionFive2,we need
-to convert the u-boot-spl.bin to u-boot-spl.bin.normal.out with
-the below command:
-
-       ./spl_tool -c -f $(Uboot_PATH)/spl/u-boot-spl.bin
-
-More detailed description of spl_tool,please refer spl_tool documenation.
-(Note: spl_tool git repo is at 
https://github.com/starfive-tech/Tools/tree/master/spl_tool)
-
-This will generate u-boot-spl.bin.normal.out file.
+This will generate the U-Boot SPL image (spl/u-boot-spl.bin.normal.out) as well
+as the FIT image (u-boot.itb) with OpenSBI and U-Boot.
Flashing
  ~~~~~~~~

Reply via email to