If there’s one thing the Raspberry Pi community does well, it’s push the boundaries of what these boards are capable of. Maker Vlad Tomoiagă has done just that with this exciting RISC-V emulator project. Based on Mini-rv32ima, created by CNLohr, this Pico version, dubbed Pico-rv32ima, is able to run Linux.
The project relies on the Mini-rv32ima emulator core which enables the Pico to run Linux. According to Tomoiagă, it uses two 8 MB SPI PSRAM chips as memory with 4 kB of cache to prevent bottlenecking from the SPI interface. Tomoiagă explains this idea came from the uc32-rvima project created by a maker known as xhackerustc.
When the Raspberry Pi Pico is booted, the Linux image is copied over to the RAM before loading Linux kernel text to the console. It takes about one minute and thirty seconds for the system to completely boot. Tomoiagă was kind enough to share a video demonstration of the boot process for any interested parties.
It doesn’t take too much hardware to recreate this project but Tomoiagă warns that the project both overclocks and overvolts the RP2040 processor and to proceed at your own risk. Because the Pico is an affordable board, the risk isn’t all that high and we think the end result is well worth living on the edge for. You’ll need a Raspberry Pi Pico but you can many of the best RP2040 boards along with a microSD card. Two 8 MB SPI PSRAM chips are necessary. In this case, Tomoiagă is using LY68L6400 chips.
The SD card connects via SPI interface. The console can be accessed over UART, USB-CDC, or on a display. In an example, Tomoiagă is using an ST7735 display which has a resolution of 128 x 160px. This is paired with a PS2 keyboard for user input. The code used in this project was primarily written in C and is available on the official project page at GitHub.
If you want to make this Raspberry Pi project yourself or just get a closer look at how it works, visit the project’s GitHub page and be sure to follow Vlad Tomoiagă for more cool projects as well as any future updates on this one.