Hi,
at the moment, I am already able to run sculpt+base-hw and sculpt+sel4 on armv8 (armstone, and toradex verdin imx8mp), and the imx95 port is moving forward. I would also like to try pushing for NOVAe (and later Fiasco.OC/others) on the same boards.
Before I invest into this, I would like to reach out to check if my understanding is correct so far:
it looks to me that the NOVA (not NOVAe) is mature on x86 but cannot support ARM. base-novae seems to be carried as a signle, rebased forward feature commit, tracking Genode Releases up to 26.08-WiP. I guess that would be also called somewhat mature (yet lacking some features such as vmm, priorities integration, etc… see below).
on the other hand, ARM looks like an early, paused WiP: The only two ARM-specific commits I can find are d025c82 “novae: add ARM support - WiP” (2025-03-15) and c1ed7e2 “novae: continue arm64 support - WiP” (2025-04-08); the novae_arm64 branch does not appear to have advanced since, and novae_26_05 seems to carry the same ARM state.
Specifically, on the ARM spec I see:
include/spec/arm_64/novae/syscalls.h:create_vcpu,sc_ctrl,assign_int,call,reply,create_pdall returnerror("not implemented")(real bodies#if 0, several still x86-shaped);src/core/spec/arm_v8/pager.cc:copy_state{from,to}_utcbnot implemented;src/core/platform.cc(arm): _cpus = Affinity::Space(1,1) (“restrict to …”) and an error(“ram HARDCODED …”) block;- the QEMU-virt board is the only ARM target wired (
kernel-novae-virt_qemu_arm_v8a.mk), andtool/run/boot_dirnovae accepts only QEMU + image/uefi (multiboot2/GRUB) on ARM.
As for the VM, the kernel-agnostic parts looks reusable, but the per-kernel ARM parts ar stubbed. Even the entire ARM VMM (repos/o s/src/server/vmm) is build-gated (REQUIRES = hw). on base-novae, the per-kernel pieces are abstent or stubbed.
Let me know if I am missing anything on the current status?
As for my questions:
- In the r24.x NOVA ARM build, is EL2 virtualization actually functional, i.e. are
create_vcpu,EC_GET/SET_VCPU_STATE,guest-spacePDs (space_gst), gich-based vGIC injection, andstage-2/vmidusable from user level today? - Which ARM SoCs has the NOVA kernel actually been brought up on? i.MX 8M is on the board list, does that include i.MX8M Plus, and is anything like i.MX95 (Cortex-A55, GIC-700, LPUART) in scope?
- What is the real status of novae_arm64? Was the 2025-04 paused due to a specific blocker
(e.g. the cap re-routing model, priority handling, the boot path), or simply available time/priority? - Is ARMv8 for Genode/NOVAe on the Genode Labs roadmap, and on what horizon?
- Is there newer ARM NOVAe work than the public novae_arm64 branch?
As I am looking to build a benchmark, I might be able to contribute board bring-up for i.MX8M Plus / i.MX95, and I would much rather do this with the project than as a private fork. Would such contributions be welcome upstream, and in what shape? (branch?)
Thanks!