Automating RISC-V Firmware Testing
As we push the boundaries of open-source silicon, efficient and automated validation becomes not just a nice-to-have but a critical necessity.
That's where LAVA (Linaro Automated Validation Architecture) comes in. LAVA is a powerful, open-source framework for deploying operating systems onto physical and virtual hardware, enabling the automatic running of tests. It's an absolute game-changer for projects that require customized tests to run on a variety of different types of hardware, firmware deployment, boot testing, bootloader testing, and pre-compiled binary validation, especially in the rapidly evolving RISC-V ecosystem.
We have recently been diving deep into setting up a custom LAVA lab for RISC-V firmware testing, which includes U-Boot, Linux Kernel, and OpenSBI images. This document highlights how LAVA is integrated into our RISC-V custom lab for U-Boot testing.
Why LAVA for RISC-V Testing?
Lava streamlines the process of quickly deploying the latest RISC-V firmware binaries, operating system images, or application binaries to a fleet of real boards, running defined test suites, and providing instant, actionable results – all automated.
How LAVA Automates RISC-V firmware Testing in our Custom Lab
The RISC-V devices in Cloud-V's LAVA lab are connected through an x86 machine that serves as the LAVA master. Users submit their test jobs to this machine using lavacli, which then schedules and runs the tests on the RISC-V hardware boards. The architecture is illustrated in the following diagram.
This LAVA-RISC-V lab is a testament to what's possible in open-source hardware automation.
If you are interested in testing OpenSBI, U-Boot, and Linux Kernel through CI on a range of RISC-V boards in an automated way, check out Cloud-V’s custom LAVA lab setup.
We have successfully integrated a BananaPi-F3 board with LAVA, enabling seamless job submission, automated retrieval of pre-compiled binaries from Git, and hands-free booting on the connected hardware.
Useful links
Getting Started with Linaro's LAVA on Cloud-V
GitHub Repository for setting up Banana Pi F3 with LAVA