
Hi Marcus,
On Sun, Sep 8, 2019 at 9:19 PM Marcus Comstedt marcus@mc.pp.se wrote:
Bin Meng bmeng.cn@gmail.com writes:
OpenSBI v0.4 works fine if you supply the the Linux DTB via FW_PAYLOAD_FDT_PATH when building OpenSBI.
And which "Linux DTB" should that be? Since RISC-V seems to be going
The one in arch/riscv/boot/dts/sifive.
the same annoying way as ARM with a requirement that you switch DTB every time you switch kernel version even though the hardware the DTB describes stays the same, because the syntax of the nodes keep changing, it's necessary to decide on a specific firmware DTB which is decoupled from the Linux DTB (which can be loaded separately from U-Boot as long as the ethernet/MMC drivers are working :-).
Yes, it's annoying for ARM. Hence I believer on RISC-V the goal is to use the firmware provided DTB for all the software on the boot chain: OpenSBI, U-Boot, kernel. That's why U-Boot RISC-V is currently using OF_PRIOR_STAGE.
As for the syntax of the nodes keep changing, I would say that's inevitable because of the upstreaming process. Everything in vendor's DT that does not get merged in Linux will remain potentially changed by later upstreaming reviews.
If U-Boot needs a specific DTB, shouldn't it be shipped in u-boot/arch/riscv/dts/?
This can be done by adding OF_SEPERATE support to RISC-V. But so far OF_PRIOR_STAGE already works hence adding that would be of low priority.
Regards, Bin