I am trying to U-Boot in Flash, with TorizonCore Kernel and Rootfs in SATA drive. Apalis iMX8QM 4GB IT V1.1C on a Custom Carrier board based on Ixora V1.1B. As described here, I need a xxx-Image.bootfs.tar.xz and xxx-Image.rootfs.tar.xz. However, when downloading the TorizonCore image (TorizonCore PREEMPT_RT 5.6.0-devel-202203+build.22) and extracting the contents I find:
extracting torizon-core-docker-rt-apalis-imx8.ota.tar.zst shows a filesystem, but it is unclear to me how that will help me follow the two guides available to accomplish this goal.
Obviously the guide is written for a Yocto-based image but I’m trying to accomplish the same task with TorizonCore on the SSD instead. I also understand that the guide is a bit outdated (2018) so correct me if there is a more up-to-date resource to be using for this.
This is already what TorizonCore uses to boot from eMMC. In short it locates a boot script that’s found in the eMMC to then bootstrap and start the Linux Kernel/OS. In theory you’d have to modify the distro-boot command to mount and look at your SSD rather than eMMC.
However this is only in theory. We don’t support booting TorizonCore from alternative medias and honestly no one’s really tried it so far. There could be many issues or implications, we just don’t know.
Furthermore, I believe our default U-Boot doesn’t even have the support enabled to work with SATA. So you’ll need to probably modify U-Boot for this as well.
At a high level it should be possible, but I hope you can understand why we can’t really give further support on such a use-case.
I’ve gotten to the point where I’ve made my own image and placed it on a USB Drive which booted just fine. I then placed the image on a SATA SSD, but I am struggling to know where to begin to modify the default U-boot on the eMMC to support SATA.
When you say “modify” the U-Boot, do you mean the variables and general u-boot setup environment or actually changing rebuilding U-Boot itself from Yocto as described here?
Herein lies the difficult part. I’m not entirely sure all that needs to be changed to support SATA in U-boot. Just theorizing here’s what I imagine needs to be done:
Enable sata command or some equivalent.
Most interfaces have some kind of special command in U-Boot to interact with them. eMMC has the mmc command, and USB has the usb command. I believe there is also one for SATA devices. However, it doesn’t seem to be enabled or built-in to our U-Boot.
Possibly enable special drivers for i.MX.
Here’s the detail I’m really unsure about. It may be the case that special drivers are needed for the i.MX8 module to use SATA in U-Boot. Though I don’t have enough knowledge on this to say for sure. You may need to consult NXP documentation for this.
There may be other things to change as well, but these are the immediate ones that come to mind. These changes will probably require changing and rebuilding the U-Boot source as a whole.
If that’s the case, then this article and this one probably need to be updated since they both state that booting from SATA is possible without including the caveat of rebuilding and modifying U-Boot entirely.