Recommendations for good ARM board to work on Genode Project

Hi,

after a (very long) time away from Genode (sorry Norman T_T) I am finally returning to my projects to work on Genode for my PhD, and I am embarking another student in the journey.

We are looking at a capable board to work on, running IMX8M, some NPU for AI workloads and a few goodies like an HDMI output, network etc to get confortable.

Unless we find better recommendations, we would likely go with tthe Verdin iMX8M Plus board:

Verdin iMX8M Plus | Toradex Developer Center
Dahlia Carrier Board | Toradex Developer Center .

I see the processor itself is supported, but there would be a few drivers missing (at a glance, the could be a challenge).

Would you have a good recommendation for us to work on?

Requirements:

  • ARM with Trustzone support (armv8 prefered)
  • Integrated Network (Ethernet preferred, Wifi is a plus)
  • Integrated or on-board NPU / GPU
  • Graphics (we’d like to support SculptOS ^^;)
  • USB, debug, (JTAG or SWD would really help)
  • PCI/miniPCI bus for experimenting

If you have recommendations, let us know :slight_smile: if you forsee any big blocker on the chosen board, I am also interested to learn about it.

Thanks a lot!

Hi fdelizy

  • Integrated Network (Ethernet preferred, Wifi is a plus)

Both integrated Ethernet ports of the SOC are supported (FEC / STMMAC). As far as I can see it you would only have to extract the correct DTB from the BSP of Thoradex, which usually are really good.

For WiFi the question comes down to the type of Module used and if it is already supported by the current driver. If it is already supported, it boils down to enable USB-host support.

  • USB

The USB-host driver of the SOC also is supported, for this you only need to extract the DTB from the BSP.

To extract the DTB for a driver you can use the tool/dts/extract script.

There is a series of posts from Norman on https://genodians.org/ about enabling Genode on the Pinephone which explains enabling new boards in great detail.

There is also https://genode.org/documentation/genode-platforms-23-05.pdf that gives further insights on enabling new boards / SOCs.

Hope this helps.

Thanks Pirmin, it’s been too long since we talked :slight_smile: (sorry for kinda disappearing for a while too ^^;).

Thanks ffor your answer, that doesn’t sound too bad I guess, but will likely be a 2~3 month effort to bring up Scuplt on this, then publish a corresponding repo.

Would you have any other hardware platform suggestion that would require less porting maybe?

Since this is for research purpose, we are quite flexible at the moment :slight_smile:

Welcome back @fdelizy!

your estimation of 1-2 months for enabling another board using the same i.MX8 family is probably right. But I’d argue such an exercise might be quite valuable to get a solid grip on Genode’s low-level code as well as the specific hardware. I think sooner or later, expertise in these topics will be needed anyway. So why not kick off you line of research with it? Let the Platforms book be your guide.

Anyway, regarding i.XM8-based hardware supported by Sculpt OS, we have enabled an armStone board earlier this year. This specific board is supported in the master branch. We presented Sculpt OS on this board at this year’s Embedded World. Here is how it looked like:

Note that this was a one-off use of this board. We don’t use it regularly and it not integrated in our CI. However, if you want to get something up and running on a purchasable i.MX8 board, it is probably the path of least effort.

@fdelizy nice to hear from you again.

We use two boards currently:

  • imx8mp_iot_gate from CompuLab which is in the official genode-imx repository
  • imx8mp_phyboard_pollux which we maintain internally (SoM / carrier board combo)

We do not use the integrated GPU/NPU as we use them as IoT gateways with no GUI.

Thanks for all your suggestions! we will check with our lab if those boards can be used cross team too.

I understand the armStone board isn’t maintained in the CI, so even it works now, there is no guarantee it will continue to be maintained in the future. (At least though, it would be a good starting point, even if we want to port Genode+Sculpt to another platform).

On the side-notes, there might be an avenue to publish something by doing the porting (and becoming the maintainer) of that board. Academics are still very paper-publishing driven :wink: so we need to take this into consideration. :slight_smile:

will report back!

for the record, we were also looking at iMX95 Toradex Verdin Module (which includes other interesting cores like the M33) but I couldn’t find traces of work on the iMX9*… maybe I missed something?

Other precision, we will likely base our effort of seL4, I see that seL4 has something started for iMX93 and supports iMX8M+ as well … hopefully, this should not be too bad :confused: