Introducing Ironclad for RISC-V

Jul 31, 2025 - By Cristian <streaksu@ironclad-os.org>

Ironclad’s ecosystem grows larger! In this article we will delve on the most recent addition to the list of Ironclad’s supported targets, and what RISC-V support adds to the project.

A tumoltuous past with portability

Back in the day Ironclad had an extensive array of architectures it was ported to, but none of these ports though really reached a reasonable completion degree. This lead me to drop most of them in a big purge, in order to make maintenance easier, and in order to focus on delivering a working OS for x86_64.

Since then, though, the project has grown! With the help of the community that has grown around Ironclad, for which I am forever grateful, we have been able to focus on dusting off the cobwebs of our portability layers, and deliver a port to RISC-V, with hopefully more ports coming in the future!

The second-degree benefits of porting Ironclad

Obviously the first-degree goal of porting Ironclad to a new architecture is the opportunity to run Ironclad on a different system, but there are other second-degree benefits, too.

Porting lets us better test our architectural abstraction layers, which can lead to better generalization of certain parts of the kernel, and running on different systems and ISAs with different memory architectures and orderings helps with discovering and diagnosing a wide range of memory-related bugs.

This all means that thanks to the RISC-V port, x86 Ironclad users can expect big improvements as well.

What systems are targetted?

The port should work on every 64 bit RISC-V system that supports a Limine-protocol compatible bootloader. It will also work on emulators like QEMU. The reference Limine-protocol bootloader, Limine, requires UEFI on RISC-V to work.

Where can this port be downloaded?

Gloire, our testing and primary FOSS distribution, has been ported to RISC-V alongside all of our userland utilities like util-ironclad. Instructions on how to run it on common emulators are provided on the project’s README.

Gloire booting on RISC-V Gloire booting TTY on RISC-V

We have not made a release yet since not everything works perfectly, certain ports like slim or certain bash features struggle to work reliably, but we have a solid 90% of it working. We expect to iron out these issues over the following days, and either make a stable release, or a testing release if the fixes take a bit longer.

Thanks to

This work would not have been possible without the great help of Michael Shires, Sean Weeks, Peter Palacios, and Christopher Greenblatt, as part of their senior design project at the school of engineering at PennState Behrend (PSB). Their code has served as base for big parts of the port – notably: the MMU and SBI code. Check their work out if you can!

Whats next?

Last blog post I announced we were working on USB support and how the next Gloire release will feature it. That has proven to need a bit more time than previously thought, so we expect to get working on that after ironing out the aforementioned growing issues of RISC-V. We will keep you informed!

Feedback

Thanks for sticking with the project! For any feedback, please join the community at our community channels! or alternatively, send me an email at streaksu@ironclad-os.org.