NixOS on ARM/PINE64 ROCK64: Difference between revisions
imported>Lopsided98 Update to account for upstream U-Boot |
imported>Lopsided98 No edit summary |
||
Line 13: | Line 13: | ||
|- | |- | ||
!Bootloader | !Bootloader | ||
| | | Upstream U-Boot | ||
|- | |- | ||
!Boot options | !Boot options |
Revision as of 04:48, 6 December 2019
PINE64 ROCK64 | |
---|---|
Manufacturer | PINE64 (Pine Microsystems Inc.) |
Architecture | AArch64 |
Bootloader | Upstream U-Boot |
Boot options | SD, eMMC, SPI NOR Flash |
The ROCK64 is a single board computer built around the Rockchip RK3328 SoC.
There are three models of the board, with 1, 2 or 4 GB of RAM. It can boot from an microSD card or an eMMC. It also has a 128 Mbit SPI flash that can be used to store the bootloader.
Status
This board has upstream U-Boot and kernel support, although the mainline kernel may still be missing some features. NixOS can be installed using manual partitioning and nixos-install
or by modifying the aarch64 installation image as described in the next section.
U-Boot for this board is packaged in nixpkgs, and Hydra builds can be found here: https://hydra.nixos.org/job/nixpkgs/trunk/ubootRock64.aarch64-linux This bootloader is not entirely open, incorporating a binary blob for the tertiary program loader (TPL).
Board-specific installation notes
U-Boot needs to be copied to specific sectors on the microSD card, eMMC or image with dd
. Download/build U-Boot for the board, and write idbloader.img
and u-boot.itb
to the correct locations with (replace /dev/mmcblkX
with the correct path to the card or image):
dd if=idbloader.img of=/dev/mmcblkX conv=fsync,notrunc bs=512 seek=64
dd if=u-boot.itb of=/dev/mmcblkX conv=fsync,notrunc bs=512 seek=16384
Serial console
The ROCK64 uses a GPIO pinout compatible with the Raspberry Pi 2 and newer. This means that the following pins can be used to connect a serial adapter:
Pi-2 Bus | |
---|---|
Pin | Function |
6 | GND |
8 | UART0_TX |
10 | UART0_RX |
The serial console runs at 1500000 baud in the bootloader. When using the standard NixOS aarch64 sd image, set console=ttyS2,115200n8
as kernel option in extlinux/extlinux.conf
on the boot partition of the sdimage to get a serial linux console. For debugging, console=uart8250,mmio32,0xff130000
should give you an early UART console, before the full serial console is up.
Compatibility notes
Mainline kernel | ayufan-rock64/linux-mainline-kernel | |
---|---|---|
Ethernet | Works | Works |
USB | As of 5.4, USB 3.0 does not work | Works |
HDMI | Works | Works |
Downstream kernel
To use all hardware functionality, it is currently necessary to use a downstream kernel:
- ayufan-rock64/linux-kernel 4.4 based on Rockchip BSP
- ayufan-rock64/linux-mainline-kernel mainline based, with potentially fewer hardware features supported. This kernel is not based on a kernel stable branch, so it may have more bugs (unrelated to the hardware).