Libre Computer Renegade

From Gentoo Wiki
Jump to: navigation, search

The Libre Computer Renegade (also known under the label Firefly ROC-RK3328-CC) is a Rockchip RK3328 (ARMv8-A, Cortex-A53) based single board computer. It's performance especially with regard to native compilation is rather limited (compile time of firefox-67: ca. 10h). However, Rockchip has been known for its relatively good open source support compared to other system on chip (SoC) manufacturers, especially since the Asus Chromebook C201 which is supported by Libreboot. But despite Libre Computer claiming intentions to liberate their products, too, there are no signs yet that they will deliver on their promise.

Hardware

Make/model Notes
Board Firefly ROC-RK3328-CC filename of device tree binary: rk3328-roc-cc.dtb
SoC Rockchip RK3328
RAM 4GB Samsung K4A8G165WB-BCRC 1GB / 2GB versions available, DDR4
Firmware proprietary (miniloader),

Trusted Firmware A (ATF)[1]

Boot media eMMC or SDXC eMMC 5.0 supported; to boot from eMMC SDXC must be removed and vice versa

SoC

Component Make/model Status Kernel driver(s) Kernel version Notes
CPU 4 x ARM Cortex-A53 (ARMv8-A) Works 5.2 current max @1,3GHz, specified max @1,4GHz
GPU 2G + 2P Mali-450 WIP Lima 5.2 info, code, specified max @500MHz
Ethernet MAC STMicroelectronics (Synopsys DW IP) Works stmmac

(rk_gmac-dwmac)

4.20 1 GBit, external PHY (see below)
USB 3.0 No 5.2 1 port
USB 2.0 Partial 4.20 1 of the 2 ports works
HDMI Works dwhdmi 4.20 xorg-server via fbdev works
Analog Audio I2S No N/A 5.2

Peripherals

Component Make/model Status Kernel driver(s) Kernel version Notes
Ethernet PHY Realtek RTL8211E Works 4.20 1 GBit, connected to MAC via RGMII[2]
PMIC Rockchip RK805 Works rk808 4.20 Power Management Integrated Circuit (Regulators, RTC, Clocking)[3]

Installing Gentoo

Consult Libre Computer Renegade/Installing Gentoo for instructions on how to install Gentoo on the Libre Computer Renegade.

Software development kit

The parts of Firefly's Linux SDK that are essential to get started with the Libre Computer Renegade can be obtained and installed as follows[4]:

First, assemble the DDR init binary rk3328_loader_ddr786_v1.06.243.bin needed for flashing to the eMMC:

user $git clone -b roc-rk3328-cc https://github.com/FireflyTeam/u-boot
user $git clone -b debian https://github.com/FireflyTeam/build
user $git clone -b master https://github.com/FireflyTeam/rkbin
user $./build/mk-uboot.sh roc-rk3328-cc

Then install rkdeveloptool:

user $./build/mk-uboot.sh roc-rk3328-cc
user $cd rkdeveloptool
user $autoreconf -i
user $./configure
user $make
root #make install

Maskrom Mode

To be able to flash to an eMMC installed on the Libre Computer Renegade the latter needs to be forced into the so called Maskrom Mode[5]:

  • Pull all the USB cables (including micro USB cable and male to male USB cable) out of the board to keep the board powered off and if applicable pull out the SD card
  • Use a male to male USB cable to connect the host system and the USB OTG port (lower one of double-decker, white) of the target device, for pictures see the ROC-RK3328-CC Manual
  • Connect the eMMC CLK and GND pads with metal tweezers while plugging in the micro USB cable to power on the board. Wait about 1 second before breaking the connection of the two pads

Flashing to eMMC

With rkdeveloptool data (in the following example the INPUT_FILE) can be flashed to an arbitrary offset (0x0 in the example) on an eMMC installed on the Libe Computer Renegade[6]:

root #rkdeveloptool db out/u-boot/rk3328_loader_ddr786_v1.06.243.bin
root #rkdeveloptool wl 0x0 INPUT_FILE
root #rkdeveloptool rd

Recovery

If a kernel upgrade goes wrong and a backup is at hand the boot partition can be restored by forcing the device into Maskrom Mode and flashing the backup boot partition to the eMMC:

root #rkdeveloptool db out/uboot/rk3328_loader_ddr786_v1.06.243.bin
root #rkdeveloptool wl 0x8000 /PATH/TO/ARBITRARY_BACKUP_LOCATION/rk3328-roc-cc-boot.img
root #rkdeveloptool rd

Recommended partition layout with offsets

Purpose[7] Start (Bytes) End (Bytes) Size (Bytes) Partition Offset
Partition 1 preloader (miniloader or U-Boot SPL) 32768 4128767 4096000 0x40
Partition 2 U-Boot 8388608 12582911 4194304 0x4000
Partition 3 trusted OS (ATF) 12582912 16777215 4194304 0x6000
Partition 4 boot partition 16777216 134217727 117440512 0x8000
Partition 5 root partition 134217728 arbitrary depends 0x40000

References

  1. ARM Trusted Firmware, ARM Information Center. Retrieved on June 21st, 2019
  2. Fuzhou Rockchip Electronics Co., Ltd., RK3328 Datasheet Rev1.1 (PDF), RK3328 - Rockchip open source Document. Retrieved on June 28th, 2019
  3. Fuzhou Rockchip Electronics Co., Ltd., RK805 Datasheet Rev1.1 (PDF), PINE64. Retrieved on June 28th, 2019
  4. Firefly Team, Compiling linux firmware, ROC-RK3328-CC Manual. Retrieved on May 31st, 2019
  5. Firefly Team, Flashing to the eMMC - Maskrom Mode, ROC-RK3328-CC Manual. Retrieved on June 1st, 2019
  6. Firefly Team, Flashing to the eMMC - rkdeveloptool, ROC-RK3328-CC Manual. Retrieved on June 1st, 2019
  7. Default storage map, Rockchip wiki. Retrieved on June 1st, 2019