RE: [PATCH v1 00/12] Support OF_UPSTREAM for StarFive JH7110

On 01.10.24 01:56, Heinrich Schuchardt wrote: On 30.09.24 17:59, Hal Feng wrote:
This patchset add OF_STREAM support for StarFive JH7110 based boards. All the JH7110 based boards can use the DT from upstreaming linux kernel. The v1.3b board device tree is set as the default device tree.
This patchset should be applied after the DT from dts/upstream/ updating to the latest version.
Hello Hal,
Thanks a lot for making the move to upstream device-trees for JH7110 based boards.
With the current patchset you suggest to specify the relevant device-tree when building, e.g.
make OPENSBI=$(opensbi_dir)/build/platform/generic/firmware/fw_dynamic.bin \ DEVICE_TREE=starfive/jh7110-milkv-mars
Another approach would be to build all device-trees into U-Boot and use the EEPROM information to select the correct one at runtime.
This approach is selected by Wandboard defconfig and other boards by specifying CONFIG_MULTI_DTB_FIT and CONFIG_OF_LIST. The choice of the device-tree is made in board_fit_config_name_match().
The advantage from the standpoint of a Linux distro would be that one distro image can be provided that will run on all JH7110 boards.
That is a good idea. I will try to do this after my five-day vacation. By the way, I wanna know whether jh7110-milkv-mars-cm.dts and jh7110-milkv-mars-cm-lite.dts are in the process of upstreaming? I don't see them in the kernel mainline.
Thanks for your suggestions.
Best regards, Hal

Hi,
On Thu, Oct 3, 2024 at 10:23 AM Hal Feng hal.feng@starfivetech.com wrote:
On 01.10.24 01:56, Heinrich Schuchardt wrote: Another approach would be to build all device-trees into U-Boot and use the EEPROM information to select the correct one at runtime.
This approach is selected by Wandboard defconfig and other boards by specifying CONFIG_MULTI_DTB_FIT and CONFIG_OF_LIST. The choice of the device-tree is made in board_fit_config_name_match().
The advantage from the standpoint of a Linux distro would be that one distro image can be provided that will run on all JH7110 boards.
That is a good idea. I will try to do this after my five-day vacation. By the way, I wanna know whether jh7110-milkv-mars-cm.dts and jh7110-milkv-mars-cm-lite.dts are in the process of upstreaming? I don't see them in the kernel mainline.
Thanks for your suggestions.
Best regards, Hal
There is not any jh7110-milkv-mars-cm.dts and jh7110-milkv-mars-cmlite.dts patch for Linux kernel upstream yet.
Now may be a good time to do so, since Star64 was accepted and makes use of the common jh7110 dtsi that was introduced with devicetree of Milk-V Mars to Linux kernel. First this can go in U-Boot as the jh7110-milkv-mars.dts is good for Milk-V Mars CM and CM Lite, with addition of some GPIO assignments. This can be stubbed out by including jh7110-milkv-mars.dts until there are accepted upstream devicetree files for Mars CM and CM Lite. There are different GPIO assignments depending if it is U-Boot phase or Linux phase of the boot process; per the vendor sources. It is enough to pass a loaded jh7110-milkv-mars.dts to Linux on Mars CM and CM Lite hardware, if this GPIO assignment was done at U-Boot time and since then there is never any MMC reset while in Linux kernel:
https://github.com/milkv-mars/mars-buildroot-sdk/commit/880a249518f72ecf1e29...
https://github.com/milkv-mars/mars-buildroot-sdk/commit/042ea06598995db99ddb...
Much of the above diff listings can be ignored as already implemented or not needed, however, provided for reference what I am talking about for GPIO assignments 22 24 62 depending on the phase of boot process.
-E
participants (2)
-
E Shattow
-
Hal Feng