Well it’s actually an MCU/SoC I’d say, but it’s RISC-V, and as demonstrated can run Linux! Essentially just another community-led gem from the great people at Pine64.
For anyone that does not know, SBC is a Single Board Computer, eg can compute like an end user device. This is akin to a Raspberry Pi or similar. A MCU or MicroController Unit else SoC aka System on-a Chip is more like a dedicated device that you have to write your own firmware for such as an STM32 or ESP32 module.. This thing REALLY blurs those lines.
At this late time of writing there is also USB device support at 480Mbps, partially working ethernet, fully working GPIO, and wi-fi underway.
Or watch inline here;
For the code, it’s pretty much all on Github. Here is how Alex Horner linked and described the repo’s for you;
- https://github.com/arm000/linux-bl808 <- “This is where we have applied Bouffalo’s patches to the official 6.2 repo, and where we are building the various drivers to support the hardware. If I remember correctly, the linux/mboxic branch has the receiver half of the IRQ forwarding, the SD card driver and a modified version of the only driver Bouffalo gave us which is the UART one. If you instead use the crypto-sec-eng branch on my fork, which you can find via pull requests, I have also written a hardware TRNG driver and a full GPIO driver with support for IRQs, bias, input output etc too.“
- https://github.com/arm000/bl808_linux <- “This is indeed a heavily modified version of the Bouffalo Linux SDK, with IRQ forwarding added (since some peripherals like the SD Card and GPIO etc only have their IRQs hooked up to M0) and a complete rework of the build.sh script and the merge script. The Linux 5.10 kernel is completely redundant and unused at this point. To configure it to build the linux-bl808 kernel, you need to point it to the repo directory at the top of build.sh“
- https://github.com/openbouffalo/buildroot_bouffalo <- “This is the “easy mode” setup for your average user. It contains the kernel patches as a set of patch files and also builds a default rootfs on the SD card. If you’re looking to tinker, you can pretty much ignore the kernel part of this, and only bother using the rootfs it generates. The bl808_linux and linux-bl808 repos are set up such that generated sdcard.img files will boot fine. We’ll be developing the kernel in its own repo, then when we are happy with our work and consider it solid, will apply it as a set of patch files so that the buildroot generates a stable user friendly kernel for those who don’t want to tinker.“
- https://github.com/openbouffalo/OBLFR <- “This isn’t quite yet the new version of bl808_linux, but will make it there soon. I think it is being used by buildroot_bouffalo to generate the bootloader though, but you won’t need that if you use bl808_linux instead. It will also be an assortment of community examples and I think (if I remember back to my conversation with Gamiee and Fishwaldo) it will also end up being OpenBouffalo’s general version of the SDK. For all intents and purposes, I wouldn’t worry about using this if you just want Linux for now, I’d just use bl808_linux, until the wiki specifies more about its use (unless you don’t care about tinkering and just want whatever is currently in buildroot_bouffalo, which right now does not include GPIO and Hardware Random Number Generator).”