Show HN: Miralis – a RISC-V virtual firmware monitor https://ift.tt/kPMuA1X
Show HN: Miralis – a RISC-V virtual firmware monitor Miralis is a RISC-V firmware that virtualizes RISC-V firmware. In other words, it runs firmware in user-space (M-mode software in U-mode). The fact that this is even possible is interesting: indeed, not all ISAs are virtualizable, and the same applies for their firmware mode. It all boils down to the virtualization requirements [1], which is a great read if you haven't come across it yet. Arm's EL3 cannot be virtualized, for instance, because some instructions, such as `cpsid`, are sensitive but do not trap (`cpsid` is a nop in user-space). If you have a VisionFive 2 or a HiFive Premier P550, you can try it out, the instructions are in the documentation [2, 3]. Of course, it runs on QEMU too. As Miralis is a research project, we have also been using it as a vehicle to explore other research ideas, such as automated verification of hypervisors [4]. For instance, we verified instruction emulation by comparing Miralis' implementation with the reference RISC-V executable specification [5], which we translated to Rust. It has been fun working on Miralis, I hope you'll find it interesting too! [1]: https://ift.tt/8QzekdF [2]: https://ift.tt/IYi47cn... [3]: https://ift.tt/J0NxGUW... [4]: https://ift.tt/Y3mGXMk... [5]: https://ift.tt/KZmMg3T https://ift.tt/e9n87mg May 10, 2025 at 11:28PM
Comments
Post a Comment