Difference between revisions of "Quartz64"

From PINE64
Jump to navigation Jump to search
(→‎Troubleshooting: Add PHY info to troubleshooting)
(update tianocore and add more netbsd info.)
(41 intermediate revisions by 9 users not shown)
Line 1: Line 1:
The Quartz64 is the most recent Single Board Computer offering from Pine64, scheduled for release in 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.
[[File:Quartz64modelb.png|400px|thumb|right|The Quartz64 Model B]]
 
The '''Quartz64''' is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. 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.
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 a 128Mb SPI boot Flash, an eMMC module socket (supporting up to 128GB) and microSD slot. The board is equipped with 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, I<sup>2</sup>C, 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.
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, I<sup>2</sup>C, 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 ==
 
{{warning|Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as [https://pine64.com/product/serial-console-woodpecker-edition/ the woodpecker] if you want to use a Quartz64 at this stage.}}


== Software and OS Image Downloads ==
=== Manjaro ARM ===
[[File:Manjaro.png|right|100px]]


* TBD
Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.
 
==== Manjaro ARM with no desktop ====
 
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]
Note, manjaro currently ships with the linux-rc kernel. Currently (and temporarily/as of writing), usb3, pcie and sata devices will not be found unless you swap to the linux-quartz64 kernel <code>pacman -S linux-quartz64</code>.
 
==== Manjaro ARM with desktop environment ====
 
Since '''Dev 20211117''' with hdmi output (linux-rc)
 
* Gnome
* KDE Plasma
* Mate
* Sway
* XFCE
 
* [https://github.com/manjaro-arm/quartz64-bsp-images/releases Weekly images on Github]
 
Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.
 
=== 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 <tt>rk3566-quartz64-a.dtb.img.xz</tt>. On Linux, you can for example do this as follows, assuming your target device is <tt>/dev/sdb</tt>:
 
sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb
 
=== Arch Linux ARM (Unofficial, Highly Experimental) ===
 
See [[Installing Arch Linux ARM On The Quartz64]] for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.
 
=== 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.
 
* [https://github.com/jaredmcneill/quartz64_uefi jmcneill's Quartz64 UEFI Github]
 
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:
 
* [http://nycdn.netbsd.org/pub/NetBSD-daily/HEAD/ 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.


== SoC and Memory Specifications ==
== SoC and Memory Specifications ==
Line 22: Line 76:
* 512KB unified system L3 cache
* 512KB unified system L3 cache
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]


=== GPU (Graphics Processing Unit) Capabilities ===
=== GPU (Graphics Processing Unit) Capabilities ===
Line 39: Line 94:


=== System Memory ===
=== System Memory ===
* RAM Memory Variants: 2GB, 4GB, 8GB LPDDR4.
* RAM Memory Variants: 2GB (SOQuartz only), 4GB, 8GB LPDDR4.
* SPI Flash: 128Mbit / 16MByte


=== Network ===
=== Network ===
Line 48: Line 102:
=== Storage ===
=== Storage ===
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB
* microSD - bootable, supports SDHC and SDXC, storage up to 2TB
* USB - 2 ports on model B, 3 ports on model A USB 2.0 Host port, 1 USB 3.0 Host port
* 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)
* one native SATA 3.0 6Gb/s Port (only on model A, shared with USB 3.0 host port)
* optional eMMC module from 16GB up to 128GB
* optional eMMC module from 16GB up to 128GB
==== 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 ===
=== Expansion Ports ===
* HDMI
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)
* 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  
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B  
Line 62: Line 129:
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A
* 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
* 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). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.
==== Combo PHYs ====


[[File:rk3566 phy.png]]


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.


=== GPIO Pins ( Quartz64 Model A) ===
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!
Attention! GPIOs are 3.3V!
Line 80: Line 156:
| style="text-align:left;"| 5 V
| style="text-align:left;"| 5 V
|-
|-
| style="text-align:right;"| I2C3_SDA_M0
| style="text-align:right;"| I2C3_SDA_M0 <sup style="font-style:italic;color:green">a,b</sup>
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 3
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 4
| style="text-align:left;"| 5 V
| style="text-align:left;"| 5 V
|-
|-
| style="text-align:right;"| I2C3_SCL_M0
| style="text-align:right;"| I2C3_SCL_M0 <sup style="font-style:italic;color:green">a,b</sup>
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 5
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 6
Line 103: Line 179:
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 11
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 12
| style="text-align:left;"| UART0_TX
| style="text-align:left;"| UART0_TX <sup style="font-style:italic;color:green">a</sup>
|-
|-
| style="text-align:right;"| SPI1_MISO_M1
| style="text-align:right;"| SPI1_MISO_M1
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 13
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 14
| style="text-align:left;"| UART0_RX
| style="text-align:left;"| UART0_RX <sup style="font-style:italic;color:green">a</sup>
|-
|-
| style="text-align:right;"| SPI1_CLK_M1
| style="text-align:right;"| SPI1_CLK_M1
Line 118: Line 194:
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 17
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18
| style="text-align:center; background-color:black; color:gold; font-weight:bold;"| 18
| style="text-align:left;"| SPDIF_OUT
| style="text-align:left;"| SPDIF_OUT <sup style="font-style:italic;color:green">c</sup>
|-
|-
| style="text-align:right;"| GND
| style="text-align:right;"| GND
Line 126: Line 202:
|}
|}


Source: Page28 https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf
====Notes====
<ol style="list-style-type:lower-alpha">
  <li>can be a PWM pin</li>
  <li>pulled high to 3.3V through 2.2kOhm resistor</li>
  <li>low-pass filtered with cutoff of 220 MHz</li>
</ol>
 
Source: Page 28 of [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf the board schematics].


== Quartz64 Board Information, Schematics, and Certifications ==
== Quartz64 Board Information, Schematics, and Certifications ==
Line 133: Line 216:


* Quartz64 Model "A" SBC Schematic and PCB Board Resource:
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:
** [https://wiki.pine64.org/images/3/31/Quartz64_model-A_schematic_v1.0_20201215.pdf Quartz64 Model "A" SBC Schematic ver 1.0 20201215 PDF file]
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v2.0_20210427.pdf Quartz64 Model "A" SBC Schematic ver 2.0 20210427 PDF file]
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v1.0_20201124.pdf Quartz64 Model "A" SBC Schematic ver 1.0 20201124 PDF file]
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V2.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V1.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]


* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm
Line 144: Line 226:
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]


* Certification:
* Certifications:
** Not yet available
** 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.
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20CE%20certification-S21051101701001.pdf Quartz64 model-A CE Certificate]
** [https://files.pine64.org/doc/cert/Quartz64%20Model-A%20FCC%20certification-S21051101702001.pdf Quartz64 model-A FCC Certificate]


== Datasheets for Components and Peripherals ==
== Datasheets for Components and Peripherals ==
* Rockchip RK3566 SoC information:
* Rockchip RK3566 SoC information:
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]
* Rockchip PMU (Power Management Unit) Information:
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet for Quartz64 model A]
** [https://www.rockchip.fr/RK809%20datasheet%20V1.01.pdf Rockchip RK809 ver 1.01 datasheet for Quartz64 model B and SOQuartz]
* LPDDR4 (200 Balls) SDRAM:
* LPDDR4 (200 Balls) SDRAM:
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]
Line 164: Line 251:
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]
* LCD Touch Screen Panel information:
* LCD Touch Screen Panel information:
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]
Line 171: Line 259:
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]
* WiFi/BT module info:
* WiFi/BT module info:
** [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet]]
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]
* Enclosure information:
* Enclosure information:
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]
Line 187: Line 275:


* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]
* [https://gitlab.com/pine64-org/quartz-bsp Quartz64 BSP Gitlab Page]
== BSP Linux SDK ==
=== BSP Linux SDK ver 4.19 for Quartz64 model A SBC  ===
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed
** File Size: 32.67.00GB


== Android SDK ==
== Android SDK ==


=== Android 11 SDK for Quart64 model A SBC  ===
=== Android 11 SDK for Quartz64 model A SBC  ===
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b
Line 197: Line 294:




=== Android 11 Production Test Build for Quart64 model A SBC ===
=== Android 11 Production Test Build for Quartz64 model A SBC ===


==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====
==== Android 11 Stock Image [eMMC Boot] using DD method [20210604] ====
Line 221: Line 318:




==== Android 11 Production Test Build for Quart64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====
==== Android 11 Production Test Build for Quartz64 model A SBC [eMMC Boot] using ROCKChip tools method [20210604] ====
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in
* Please unzip first and then using [https://files.pine64.org/os/Quartz64//android/RKDevTool_Release_v2.84.zip Rockchip Android tool ver 2.84] to flash in
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first  
* For Windows OS environment, please install the [https://files.pine64.org/os/Quartz64/android/DriverAssitant_v5.1.1.zip DriverAssistant v5.11] driver first  
Line 230: Line 327:
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3
*** MD5 (GZip file): 800f867fdd0d1b2bd7822c156b6067e3
*** File Size: 812MB
*** File Size: 812MB
=== 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.
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz 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 ==
All enclosures that fit the ROCKPro64 should fit the Quartz64, 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]]
(Please expand this section with more cases known to work.)


== Troubleshooting ==
== Troubleshooting ==
Line 240: Line 355:


Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.
Make sure the kernel is built with <code>CONFIG_MOTORCOMM_PHY</code> set to <code>y</code>. Building it as a module (<code>m</code>) and then relying on module auto-loading is unlikely to work as the PHY chip lacks its manufacturer ID.
=== "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.
[[File:Quartz64-audio-jack-spacer-issue.jpg]]
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) [https://wiki.debian.org/DebianTesting use the current Debian Testing version ], called "Bookworm".




[[Category:Quartz64]]
[[Category:Quartz64]]

Revision as of 00:39, 16 January 2022

The Quartz64 Model B

The Quartz64 is the most recent Single Board Computer offering from PINE64, initially released in June of 2021. 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

Warning: Software for the Quartz64 is still early in development, and therefore currently lacks features such as the ability to produce video output. You are strongly encouraged to procure a 3.3V UART serial adapter capable of running at 1.5 mbauds, such as the woodpecker if you want to use a Quartz64 at this stage.

Manjaro ARM

Manjaro ARM is a user friendly rolling release distribution, based on Arch Linux ARM.

Manjaro ARM with no desktop

Note, manjaro currently ships with the linux-rc kernel. Currently (and temporarily/as of writing), usb3, pcie and sata devices will not be found unless you swap to the linux-quartz64 kernel pacman -S linux-quartz64.

Manjaro ARM with desktop environment

Since Dev 20211117 with hdmi output (linux-rc)

  • Gnome
  • KDE Plasma
  • Mate
  • Sway
  • XFCE

Note: Video out only working on 4 GB boards with 1080p monitors right now as the VOP2 patches are very early.

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/sdb:

sudo -i; xzcat /path/to/rk3566-quartz64-a.dtb.img.xz > /dev/sdb

Arch Linux ARM (Unofficial, Highly Experimental)

See Installing Arch Linux ARM On The Quartz64 for detailed instructions. Users who are not feeling adventurous are advised to hold off until kernel 5.16 is released and packaged.

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.

SoC and Memory Specifications

RK3566 icon.png

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 16GB up to 128GB

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). As an example, PCIe-to-PCI bridges work, whereas they didn't on the ROCKPro64.

Combo PHYs

Rk3566 phy.png

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 Nr. Pin Nr. 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

  1. can be a PWM pin
  2. pulled high to 3.3V through 2.2kOhm resistor
  3. low-pass filtered with cutoff of 220 MHz

Source: Page 28 of the board schematics.

Quartz64 Board Information, Schematics, and Certifications

  • Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm
  • Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID center-positive Barrel DC Jack connector
  • Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm
  • Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector
  • 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

Datasheets for Components and Peripherals

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


Android SDK

Android 11 SDK for Quartz64 model A SBC


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
  • DD image for 16GB eMMC module
  • DD image for 32GB eMMC module
  • DD image for 64GB eMMC module


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


Android 11 eink SDK for Quartz64 model A SBC


Enclosures

All enclosures that fit the ROCKPro64 should fit the Quartz64, as the I/O has been laid out the same on purpose.

(Please expand this section with more cases known to work.)

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 as the PHY chip lacks its manufacturer ID.

"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.

Quartz64-audio-jack-spacer-issue.jpg

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".