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:

Hi Norman,

just a quick update, after pushing for the last few months we finally got the 3 boards (purchasing anything through academics take ages :confused: )

I’ll start looking at the armstone, I understand it’s not in your CI but you made it work at some point.

I am interested to know what tag/version did you test?

For the record, we will start with the armStone, but target to enable the Toradex iMX8 & iMX9 later

Hi @fdelizy,

I’m not 100% sure what you mean when asking:

But if you mean what exact hardware revision we were using (?), well then here is the output from u-boot starting on our test-board:

U-Boot SPL 2021.04-nboot-fsimx8mp-2023.09 (Sep 01 2023 - 09:16:24 +0200)
BOARD-ID: armStoneMX8MP-FERT4.100
U-Boot 2021.04-F+S-fsimx8mp-Y2023.09 (Aug 31 2023 - 12:56:23 +0000) for F&S
CPU:   i.MX8MP[8] rev1.1, 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C)
Reset: POR
Model: armStoneMX8MP
Board: armStoneMX8MP Rev 1.00 (2x LAN, WLAN, eMMC, 1x DRAM)
DRAM:  2 GiB

No, I meant what software version (sculpt release or genode got repo hash) you tested :slight_smile:

I am in the process of building it, so far I have a booting init and a few components and I am now wresting the build to include the depots in the image ^^;

(And about 45% of the platform book read :wink: )

… Learning curve in progress ^^;

We used it once as a demostrator at Embedded World 2025 last year. Please have a look here for the main repository:
GitHub - skalk/genode at sculpt-24.10.3-embedded-world
And here for the imx repository:
GitHub - skalk/genode-imx at sculpt-24.10.3-embedded_world_2025-armstone
But in theory it should still be possible to compile and run the latest Sculpt version (25.04), because the drivers did not change.

Thanks!

I’ll look at the repo’s tag, and try to build from there :slight_smile:

(still loading the learning curve, but this is getting quite exciting :slight_smile: )