PINE64
Need help in understanding Yocto and U-boot build process for Star64 - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: General (https://forum.pine64.org/forumdisplay.php?fid=1)
+--- Forum: General (https://forum.pine64.org/forumdisplay.php?fid=74)
+--- Thread: Need help in understanding Yocto and U-boot build process for Star64 (/showthread.php?tid=19189)



Need help in understanding Yocto and U-boot build process for Star64 - InterestedinFOSS - 04-23-2024

Like many of you, I came across the work that @Fishwaldo did to get Linux working on the Star64.

I'm new to Yocto and the lower level of building Linux for embedded systems. I would love it if someone/Fishwaldo could do an ELI5 on what he did for the `meta-pine64` layer (btw, there seems to be a different `meta-pine64` layer mentioned on the openembedded page but that's specifically for ARM chips).

From what I understand:

1. He forked/branched off the Linux kernel.
2. Applied OEM drivers as patches from StarFive.
3. Used that in the new Yocto layer he built.

My questions (for now) are:

1. How did he/you guys find the U-boot partition map? I have seen the JH7110 Boot User Guide, but I haven't been able to figure out how U-boot mentions the partition sizes in their documentation.
2. I couldn't quite find where StarFive mentions that their drivers are not compatible with the newer 6.1xx Linux kernel, forcing @Fishwaldo to use the 5.1xx kernel. Ideally, one would be able to download the source tree and place the patches in the tree to compile it with bitbake in Yocto, yes?

Would greatly appreciate any replies to this thread! I'm very new to this, and I would like to be a part of the effort to take RISC-V forward, even if I'm only doing it for myself. I'm looking at the Star64 alongside the OSEdge as an alternative to Coral.ai's TPUs and would like to learn to build my images for both of them.

Thanks!


RE: Need help in understanding Yocto and U-boot build process for Star64 - tllim - 05-13-2024

(04-23-2024, 10:37 AM)InterestedinFOSS Wrote: Like many of you, I came across the work that @Fishwaldo did to get Linux working on the Star64.

I'm new to Yocto and the lower level of building Linux for embedded systems. I would love it if someone/Fishwaldo could do an ELI5 on what he did for the `meta-pine64` layer (btw, there seems to be a different `meta-pine64` layer mentioned on the openembedded page but that's specifically for ARM chips).

From what I understand:

1. He forked/branched off the Linux kernel.
2. Applied OEM drivers as patches from StarFive.
3. Used that in the new Yocto layer he built.

My questions (for now) are:

1. How did he/you guys find the U-boot partition map? I have seen the JH7110 Boot User Guide, but I haven't been able to figure out how U-boot mentions the partition sizes in their documentation.
2. I couldn't quite find where StarFive mentions that their drivers are not compatible with the newer 6.1xx Linux kernel, forcing @Fishwaldo to use the 5.1xx kernel. Ideally, one would be able to download the source tree and place the patches in the tree to compile it with bitbake in Yocto, yes?

Would greatly appreciate any replies to this thread! I'm very new to this, and I would like to be a part of the effort to take RISC-V forward, even if I'm only doing it for myself. I'm looking at the Star64 alongside the OSEdge as an alternative to Coral.ai's TPUs and would like to learn to build my images for both of them.

Thanks!

Fishweldo often appear at Star64 and Nutcracker chatroom, you may able to seek advise with him on these two chatroom.


RE: Need help in understanding Yocto and U-boot build process for Star64 - yogo1212 - 06-05-2024

[quote pid="122119" dateline="1713890250"]
1. How did he/you guys find the U-boot partition map? I have seen the JH7110 Boot User Guide, but I haven't been able to figure out how U-boot mentions the partition sizes in their documentation.
2. I couldn't quite find where StarFive mentions that their drivers are not compatible with the newer 6.1xx Linux kernel, forcing @Fishwaldo to use the 5.1xx kernel. Ideally, one would be able to download the source tree and place the patches in the tree to compile it with bitbake in Yocto, yes?
[/quote]

You found the right doc but not everything is documented.

Regarding emmc/sd card:
BootROM loads from the GPT partition with type ID 2E54B353-1271-4842-806F-E436D6AF6985.
Upstream OpenSBI loads the second partition but you can do anything you want if you compile your own.
Upstream U-Boot is still looking for the right way to do a standardized boot - again, it's up to you.
Search for extlinux.conf in the U-Boot docs if your interested.

I've collected some information in this script:
https://github.com/yogo1212/arch-linux-star64/blob/main/compile_image#L52

You should be able to create an image using your own OpenSBI and U-Boot:

Code:
ROOTFS_IMG=.. UBOOT_ITB=.. UBOOT_SPL=.. ./compile_image /dev/mmcblk0

Just remember to give U-Boot something to work with (e.g. /boot/extlinux/extlinux.conf)