Firefly RK3399 Development Platform
This board is a development platform for the Rockchip RK3399 six-core server-class 64-bit ARM CPU. Unlike the SBC-AM57x, this chip does not include any dedicated DSP hardware as such, but it has an additional 4 cores of ARM hardware instead. Hopefully its Linux support is a little more fully baked - at least to the point where we can set up a reliable built process and drivers. Once I have the documentation further along, I'll update this section to include a little about it's viability.
The most important aspects of this board is the fact that this board has a considerably lower price point than the SBC-AM57x and include 8(!) channels of I2S audio outputs straight out of the box.
Unfortunately, none of the USB ports are available through the pin headers, so this board will maintain the original 'b design of having all of the modular interfaces on the panel and all of the computer interfaces on the rear.
Building rkflashtools
rkflashtools is a command line interface that will allow us to flash the emmc with a pre-built Ubuntu image. The Firefly wiki has a fair level of documentation for flashing the emmc from a Linux or Windows host, but nothing about OS X. Since I'm on OS X, this document will explain that process. Otherwise, check out their wiki.
Begin by installing dependencies using homebrew and checking out the source code from github.
$ brew install libusb $ git clone https://github.com/crewrktablets/rkflashtools.git $ cd rkflashtools
At this point you will need to edit the Makefile. While there are supposed to be ways to add include and lib paths from the command line, they don't seem to be working in my case. Add the -I and -L parameters and their values as below.
all: rkflashtool rkflashtool: rkflashtool.c gcc -I /usr/local/Cellar/libusb/1.0.21/include -L /usr/local/Cellar/libusb/1.0.21/lib -o rkflashtool rkflashtool.c -lusb-1.0 -O2 -W -Wall -s param: sudo ./rkflashtool r 0x0000 0x2000 > /tmp/parm
Then build...
$ make
Assuming it works, you can test it just to make sure it'll run.
$ ./rkflashtool rkflashtool: info: rkflashtool v3.3 rkflashtool: fatal: usage: rkflashtool b reboot device rkflashtool m offset size >file read 0x80 bytes DRAM rkflashtool i offset blocks >file read IDB flash rkflashtool r offset size >file read flash rkflashtool w offset size <file write flash rkflashtool p >file fetch parameters offset and size are in units of 512 bytes