Difference between revisions of "Quartz64"
m (led name) |
(model A SATA how-to) |
||
Line 558: | Line 558: | ||
Upon rebooting, you will now notice that the heartbeat LED will blink during boot-up, but stops blinking as soon as the multi-user target is reached (i.e. the user can log in). | Upon rebooting, you will now notice that the heartbeat LED will blink during boot-up, but stops blinking as soon as the multi-user target is reached (i.e. the user can log in). | ||
=== SATA on model A === | |||
On model A USB 3.0 and SATA ports are using the same I/O line and can't be used simultaneously. By default USB 3.0 is enabled in linux device tree and SATA is disabled. FDT modifications are required to turn SATA on. | |||
Following script is tested on Monjaro but should work on the other distros with minimal changes. Device tree compiler package usually provides fdtput command (on Manjaro run: <code> pacman -S dtc</code>) | |||
# cp /boot/dtbs/rockchip/rk3566-quartz64-a.dtb /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb | |||
# fdtput -t s -v /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb /usb@fd000000 status disabled | |||
# fdtput -t s -v /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb /sata@fc400000 status okay | |||
# sed -i 's#^FDT /dtbs/rockchip/rk3566-quartz64-a.dtb$#FDT /dtbs/rockchip/rk3566-quartz64-a-sata.dtb#' /boot/extlinux/extlinux.conf | |||
# systemctl reboot | |||
[[Category:Quartz64]] | [[Category:Quartz64]] |
Revision as of 20:15, 25 September 2022
The Quartz64 is the most recent Single Board Computer offering from PINE64, with Model A initially released in June of 2021 and Model B in May of 2022. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.
Key features include a PCIe x4 open ended slot (model A) or m.2 (model B) using one Gen2 lane electrically, and the use of LPDDR4 RAM.
The Quartz64 has three LPDDR4 system memory options: 2GB, 4GB or 8GB. For booting, there is an eMMC module socket (supporting up to 128GB) and microSD slot, as well as a footprint to solder on an SPI flash chip. The board is equipped with HDMI, 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, SATA (model A), GPIO Bus, MiPi DSI interface, e-ink interface (model A), eDP interface (model A), touch Panel interface (model A), MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.
Software releases
Armbian
Armbian is a base operating system platform for single board computers
- Lightweight Debian or Ubuntu based Linux distribution specialised for ARM development boards
- Each system is compiled, assembled and optimised by Armbian Build Tools
- It has powerful build and software development tools to make custom builds
Download latest, as fresh as possible, upon code change, images
Support on Armbian forums https://forum.armbian.com/forum/96-upcoming-hardware-wip/
Manjaro ARM
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.
Most of the hardware support is already available in the mainline kernel. If some devices doesn't work it is possible to swap to the linux-quartz64 kernel pacman -S linux-quartz64
.
Following desktop options available:
- Gnome
- KDE Plasma
- Mate
- Sway
- XFCE
as well as minimal image without desktop.
pgwipeout's Quartz64 CI
pgwipeout provides continuously rebuilt set of images for Quartz64 devices which includes a Debian installer and a buildroot rescue environment. It is aimed at advanced users who generally know their way around a Linux system, and as a baseline for whether something is working or not. Works on both SD cards and eMMC, uses pgwipeout's patched kernel. Kernels aren't auto-updated on the installed system, so the user manually has to do this by mounting the actual correct boot partition.
Download: https://gitlab.com/pgwipeout/quartz64_ci/-/pipelines (Click the three dots on the right, download the merge-job archive.)
For Quartz64 Model A, flash rk3566-quartz64-a.dtb.img.xz. On Linux, you can for example do this as follows, assuming your target device is /dev/sdX:
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdX
For Quartz64 Model B, use rk3566-quartz64-b.dtb.img.xz instead.
For line by line instructions to boot Quartz64 CI on a microSD card and use it to install Debian onto an eMMC follow these instructions https://wiki.pine64.org/wiki/Installing_Debian_on_the_Quartz64
Arch Linux ARM (Unofficial)
See Installing Arch Linux ARM On The Quartz64 for detailed instructions.
Tianocore EDK II port by jmcneill
This (as of 2021-12-30) is a work in progress to enable UEFI enabled systems, and is able to bring up SD, eMMC, USB, PCIe with SATA and NVMe, HDMI, thermal sensors, TRNG, as well as general Cortex A-55 features. Known to work with NetBSD -current, and the ESXi Arm fling version 1.8.
The sdcard image should be written to an microSD card and installed. Currently, using this card also for the OS may be problematic.
NetBSD
NetBSD relies upon the UEFI support in Tianocore. Before NetBSD 10 is released, the latest version of NetBSD-current should be used:
- NetBSD daily builds top level from inside here, navigate to a date, and inside the images/ subdirectory are installable images. Use the one called "NetBSD-<version>-evbarm-aarch64-install.img.gz". This image can be written to a supported device, such as the eMMC interface, any USB storage device, NVMe, and PCIe AHCI SATA are all supported with builds after 2022-01-15.
- Currently this can not be shared with the EDK2 port, ie, microSD for EDK2 and some other media for NetBSD.
SoC and Memory Specifications
- Based on Rockchip RK3566
CPU Architecture
- Quad-core ARM Cortex-A55@1.8GHz
- AArch32 for full backwards compatibility with ARMv7
- ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
- Includes VFP hardware to support single and double-precision operations
- ARMv8 Cryptography Extensions
- Integrated 32KB L1 instruction cache and 32KB L1 data cache per core
- 512KB unified system L3 cache
- TrustZone technology support
- 22nm process, believed to be FD-SOI
GPU (Graphics Processing Unit) Capabilities
- Mali-G52 2EE Bifrost GPU@800MHz
- 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop
- 128KB L2 Cache configurations
- Supports OpenGL ES 1.1, 2.0, and 3.2
- Supports Vulkan 1.0 and 1.1
- Supports OpenCL 2.0 Full Profile
- Supports 1600 Mpix/s fill rate when at 800MHz clock frequency
- Supports 38.4 GLOP/s when at 800MHz clock frequency
NPU (Neural Processing Unit) Capabilities
- Neural network acceleration engine with processing performance of up to 0.8 TOPS
- Supports integer 8 and integer 16 convolution operations
- Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet
System Memory
- RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.
Network
- 10/100/1000Mbps Ethernet
- WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, built in on model B)
Storage
- microSD - bootable, supports SDHC and SDXC, storage up to 2TB
- USB
- Model A: 2 USB 2.0 host ports, 1 USB 2.0 OTG port, 1 USB 3.0 host port
- Model B: 1 USB 2.0 host port, 1 USB 2.0 OTG port, 1 USB 3.0 host port
- one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)
- optional eMMC module from 8GB up to 128GB
- 64 Mbit (8 MByte) SPI flash (Model B only), part number 25Q64DWZPIG in the schematic
eMMC Speeds
On a 64 GB eMMC module:
$ sudo hdparm -tT /dev/mmcblk1 /dev/mmcblk1: Timing cached reads: 2368 MB in 2.00 seconds = 1184.46 MB/sec Timing buffered disk reads: 452 MB in 3.01 seconds = 149.98 MB/sec
Expansion Ports
- HDMI
- eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)
- DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B
- CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B
- TP - Touch Panel Port, SPI with interrupt on model A
- RTC - Real Time Clock Battery Connector
- VBAT - Lithium Battery Connector with temperature sensor input on model A
- Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B
- 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A
- PCIe x4 open ended slot on model A, m.2 slot on model B, one Gen2 lane due to SoC constraints
- On Model A, the slot provides 10W of power for the 3.3V supply and however much power your 12V input power supply provides on the 12V supply
The PCIe implementation on the RK3566 is much more compatible with a wide range of devices compared to the one on the RK3399 used on the ROCKPro64. This means a lot more devices should work (excluding dGPUs due to a lack of cache snooping ability).
Combo PHYs
Several of the I/O options on the RK3566 used in the Quartz64 are using the same I/O lines, meaning that they cannot be used at the same time. The above diagram illustrates how they are connected.
In particular, USB 3.0 and the SATA connector on the board are mutually exclusive, and the PCI-e 2.0 lane can be reconfigured into a second SATA port, though an adapter cable needs to be fashioned for this to be useful.
GPIO Pins (Quartz64 Model A)
Attention! GPIOs are 3.3V!
Assigned To | Pin no. | Pin no. | Assigned To |
---|---|---|---|
3.3 V | 1 | 2 | 5 V |
I2C3_SDA_M0 a,b | 3 | 4 | 5 V |
I2C3_SCL_M0 a,b | 5 | 6 | GND |
CPU_REFCLK_OUT | 7 | 8 | UART2_TX_M0_DEBUG |
GND | 9 | 10 | UART2_RX_M0_DEBUG |
SPI1_MOSI_M1 | 11 | 12 | UART0_TX a |
SPI1_MISO_M1 | 13 | 14 | UART0_RX a |
SPI1_CLK_M1 | 15 | 16 | GND |
SPI1_CS0_M1 | 17 | 18 | SPDIF_OUT c |
GND | 19 | 20 | 3.3V |
Notes
- can be a PWM pin
- pulled high to 3.3V through 2.2kOhm resistor
- low-pass filtered with cutoff of 220 MHz
Source: Page 28 of the board schematics.
GPIO Pins (Quartz64 Model B)
Attention! GPIOs are 3.3V!
Interesting alternate pin configurations are listed in [brackets].
Assigned To | Pin no. | Pin no. | Assigned To |
---|---|---|---|
3.3 V | 1 | 2 | 5 V |
[I2C3_SDA_M0] GPIO1_A0_3V3 | 3 | 4 | 5 V |
[I2C3_SCL_M0] GPIO1_A1_3V3 | 5 | 6 | GND |
GPIO3_C4_3V3 | 7 | 8 | UART2_TX |
GND | 9 | 10 | UART2_RX |
[SPI1_CS0_M1] GPIO3_A1_3V3 | 11 | 12 | GPIO3_A3_3V3 |
GPIO3_A2_3V3 | 13 | 14 | GND |
GPIO3_B0_3V3 | 15 | 16 | GPIO3_B1_3V3 |
3.3V | 17 | 18 | GPIO3_B2_3V3 |
GPIO4_C3_3V3 | 19 | 20 | GND |
GPIO4_C5_3V3 | 21 | 22 | GPIO3_C1_3V3 [SPI1_MOSI_M1] |
GPIO4_C2_3V3 | 23 | 24 | GPIO4_C6_3V3 |
GND | 25 | 26 | GPIO4_D1_3V3 |
I2C4_SDA_M0 | 27 | 28 | I2C4_SCL_M0 |
GPIO3_B3_3V3 | 29 | 30 | GND |
GPIO3_B4_3V3 | 31 | 32 | GPIO3_C2_3V3 [SPI1_MISO_M1] |
[SPI1_CLK_M1] GPIO3_C3_3V3 | 33 | 34 | GND |
GPIO3_A4_3V3 | 35 | 36 | GPIO3_A7_3V3 |
[SPDIF_TX_M0] GPIO1_A4_3V3 | 37 | 38 | GPIO3_A6_3V3 |
GND | 39 | 40 | GPIO3_A5_3V3 |
Source: Page 24 of the board schematics.
Quartz64 Board Information, Schematics, and Certifications
Model "A"
- Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm
- Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector
- Quartz64 Model "A" SBC Schematic and PCB Board Resource:
- Certifications:
- Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submit the SBC for FCC and CE certification and obtain the certificates to proof that SBC board is capable on passing the testing. Please note a final commercial product needs to performs its owns testing and obtains its owns certificates.
- Quartz64 model-A CE Certificate
- Quartz64 model-A FCC Certificate
Model "B"
- Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm
- Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID center-positive Barrel DC Jack connector
- Quartz64 Model "B" SBC Schematic and PCB Board Resource:
- Please note that v1.2 and V1.3 schematic and component placement are identical, just some component value changed.
- Note: Model B uses a Molex PicoBlade compatible connector for the RTC battery. The Pine64 Backup Battery Holders come with a JST PH type connector. To use the Pine64 RTC Backup Battery Holder, the connector on the battery holder will need to be modified with a PicoBlade type connector.
Datasheets for Components and Peripherals
- Rockchip RK3566 SoC information:
- Rockchip PMU (Power Management Unit) Information:
- LPDDR4 (200 Balls) SDRAM:
- eMMC information:
- SPI NOR Flash information:
- E-ink Panel information:
- LCD Touch Screen Panel information:
- Ethernet PHY information:
- WiFi/BT module info:
- Enclosure information:
- Connector information:
Development efforts
Main Article: Quartz64 Development
Information and resources of the ongoing development effort for the Quartz64 can be found on the Quartz64 Development page, where the current status of various board functions can be found, and whether they have landed in upstream.
BSP Linux SDK
BSP Linux SDK ver 4.19 for Quartz64 model A SBC
- Direct Download from pine64.org
- MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed
- File Size: 32.67.00GB
Android SDK
Android 11 SDK for Quartz64 model A SBC
- Direct Download from pine64.org
- MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b
- File Size: 79.00GB
- Just the boot blobs (<1MB): File:Rk35-blobs.tar.gz
Android 11 Production Test Build for Quartz64 model A SBC
Android 11 Stock Image [eMMC Boot] using DD method [20210604]
- DD image to eMMC module using USB adapter for eMMC module and boot. Highly recommend using Etcher
- This is test build that used during product testing
- Please allow 3-5 minutes boot up time on first time for initialization
- DD image for 8GB eMMC module
- Direct download from pine64.org
- MD5 (GZip file): e4365753e584d9fce1b8f10f095eede6
- File Size: 819MB
- Direct download from pine64.org
- DD image for 16GB eMMC module
- Direct download from pine64.org
- MD5 (GZip file): 491c5f7744b0ca0b74ae76e607051836
- File Size: 1.10GB
- Direct download from pine64.org
- DD image for 32GB eMMC module
- Direct download from pine64.org
- MD5 (GZip file): 47a6f0cdac8bad06cb920743849a8894
- File Size: 846MB
- Direct download from pine64.org
- DD image for 64GB eMMC module
- Direct download from pine64.org
- MD5 (GZip file): 4e2fed6f5db0d55afdc8a142fc0c4fe1
- File Size: 884MB
- Direct download from pine64.org
Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604]
- Please unzip first and then using Rockchip Android tool ver 2.84 to flash in
- For Windows OS environment, please install the DriverAssistant v5.11 driver first
- This is test build that used during product testing
- The OTG port located at top USB 2.0 port on top of USB 3.0 port, needs USB type A to type A cable.
- Please allow 3-5 minutes boot up time on first time for initialization
- Direct download from pine64.org
- MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3
- File Size: 812MB
- Direct download from pine64.org
Android 11 eink SDK for Quartz64 model A SBC
- The is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC.
- Direct Download from pine64.org
- MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672
- File Size: 72.88GB
- Just the boot blobs (<1MB): File:Rk35-blobs.tar.gz
Enclosures
(Please expand this section with more cases known to work.)
Model "A"
All enclosures that fit the ROCKPro64 should fit the Quartz64 Model "A", as the I/O has been laid out the same on purpose.
- "Model A" Acrylic Open Enclosure - but see the troubleshooting section below.
- ROCKPro64 ABS Enclosure
- RockPro64 Premium Aluminium Case
- ROCKPro64#3D_printable_ITX_mounting_brackets (Not an enclosure but allows to mount the board in an ATX/ITX case)
Model "B"
- "Model B" Acrylic Open Enclosure
- the ROCK64 aluminium enclosure does not work, as the DC input jack is placed differently
Troubleshooting
Stability/Boot Issues With Missing Battery Shunt
If there is no battery plugged into the board, the jumper labelled "ON/OFF_BATT" must be in place. If this is set wrong, stability issues such as failures to boot will occur.
No Ethernet Connectivity
Make sure the kernel is built with CONFIG_MOTORCOMM_PHY
set to y
. Building it as a module (m
) and then relying on module auto-loading is unlikely to work, because if the generic PHY driver is built in it will bind to the PHY first, unless you include the motorcomm module in your initramfs.
"Model A" Acrylic Case Doesn't Fit
The Quartz64 does not really fit onto the bottom plate of the "Model A" Acrylic Open Enclosure. This is because the "Mic" connector at the bottom of the board interferes with one of the posts. A workaround is to find out which post that is (you have a 50% chance of guessing it right, accounting for rotating the board) and then filing away the corner of the post pointing inwards by a few millimetres.
An alternate solution may be to place plastic spacers with a smaller outer diameter in between the acrylic bottom plate posts and the SBC board.
No GPU Acceleration with Debian "Bullseye" Userland
Debian Bullseye ships a Mesa version that is too old to contain the required patches for the RK356x SoC's GPU. You can (at your own risk) use the current Debian Testing version , called "Bookworm".
How-To
Connect Debug UART
The easiest way to get debug output is to connect a 3.3V 1.5mbaud capable UART adapter to the board.
To connect it, connect the ground lead to pin 6, and the RX/TX leads to pins 8 and 10 (consider swapping them if you get no output, things are often mislabelled). These pins are "UART2" in the above GPIO table.
Open a serial terminal at 1500000 bauds, e.g.
$ picocom -b 1500000 /dev/ttyUSB0
Disable Heartbeat LED (Linux)
The flashing LED is called the "heartbeat LED", it blinks in a heart rhythm like fashion once the kernel is running. To disable it, you can run
# echo none > /sys/class/leds/user-led/trigger
On model A LED device is called "diy-led", not "user-led".
On a system with systemd, you can do this as soon as the system is ready to be logged in with a systemd unit like this:
[Unit] Description=Turn off heartbeat LED Wants=multi-user.target After=multi-user.target [Install] WantedBy=multi-user.target [Service] Type=simple ExecStart=sh -c 'echo none > /sys/class/leds/user-led/trigger'
Place it in /etc/systemd/system/user-led.service, and run
# systemctl daemon-reload # systemctl enable user-led.service
Upon rebooting, you will now notice that the heartbeat LED will blink during boot-up, but stops blinking as soon as the multi-user target is reached (i.e. the user can log in).
SATA on model A
On model A USB 3.0 and SATA ports are using the same I/O line and can't be used simultaneously. By default USB 3.0 is enabled in linux device tree and SATA is disabled. FDT modifications are required to turn SATA on.
Following script is tested on Monjaro but should work on the other distros with minimal changes. Device tree compiler package usually provides fdtput command (on Manjaro run: pacman -S dtc
)
# cp /boot/dtbs/rockchip/rk3566-quartz64-a.dtb /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb # fdtput -t s -v /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb /usb@fd000000 status disabled # fdtput -t s -v /boot/dtbs/rockchip/rk3566-quartz64-a-sata.dtb /sata@fc400000 status okay # sed -i 's#^FDT /dtbs/rockchip/rk3566-quartz64-a.dtb$#FDT /dtbs/rockchip/rk3566-quartz64-a-sata.dtb#' /boot/extlinux/extlinux.conf # systemctl reboot