Hello, MAix BiT

So, I've been wanting to tinker with riscv, but everyone seems to skimp out on RAM (my Z80 has more memory than these boards...) and I'm not looking to just goof off with a wee microcontroller. I can't really justify (or afford) the $1K pricetag of the HiFive Unleashed, no matter how shiny and pretty is. Fortunately, a while back I picked up a Sipeed MAix BiT board... with 8M of memory. I can work with that (I think). It has a bunch of other crap on it too, like a neural network accelerator, camera and LCD connectors, none of which I really need just yet. It also comes preloaded with Micropython, which is cool and all but not really my scene. The really nice thing is that it has a built in USB UART, which I hope will make my life easier.

A Sipeed MAix BiT RISC-V board sitting on a Thinkpad for scale.

The CPU itself is a Kendryte K210, which is a 400 MHz 64-bit dual-core CPU (also with said neural network accelerator).

The K210 architecture diagram.

I did some cursory glances at figuring out how to program it on the metal, but got distracted trying to build a Z80 laptop, as one does [1].

I forget why I was looking at RISC-V stuff again (do we ever know why we do these things?) on the bus this morning and somehow stumbled across the toolchain for this thing. Long story short, I finally got it built and have the simple demo standalone hello world example working.

It lives!

I wrote up some notes on setting up the toolchain and flashing the board that may be useful to others.

What's next? Tentatively, I'd like to see about starting to port xv6 over. That's a stretch, but it's a marathon, not a race, and so maybe I can hack on it here and there (and everywhere). The standalone SDK doesn't seem to have an SD card driver, so that might be a good first step: a stage one bootloader in flash memory that provides just enough support [2] to load up something off the SD card.

Of course, I still have a pipe dream of writing my own useful OS one of these days, so this might be a good candidate for that. Porting xv6 would be a good first step.

I still have this dream of doing something like the USBArmory but with a RISCV core, maybe an ATECC608A for a platform security module.

Also, I kind of picked up a Neutis dev kit during the Sparkfun sale, so that might end up distracting me for a bit. Chalk it up to Stockholm Syndrome or what have you, but I've had a weird hankering to work on a platform security module (e.g. a TPM) for small computers. If you're interested in something like that, maybe drop me a line?

I'll be tagging future RISC-V posts, including those exploring the Kendryte K210, with riscv.

[1]Which I still am working on, though admittedly the project's stalled. Right now there's a lot of hardware design that needs to happen, which for me means that I need large (multi-hour) blocks of uninterrupted side-project focus time - and these have been in short supply lately.
[2]Okay, with 16M of flash, I can probably do a lot better than "just enough" - maybe fit a shell in there even.

Tags: ,